| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409 |
- // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
- package secretsmanager
- import (
- "fmt"
- "time"
- "github.com/aws/aws-sdk-go/aws"
- "github.com/aws/aws-sdk-go/aws/awsutil"
- "github.com/aws/aws-sdk-go/aws/request"
- "github.com/aws/aws-sdk-go/private/protocol"
- "github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
- )
- const opCancelRotateSecret = "CancelRotateSecret"
- // CancelRotateSecretRequest generates a "aws/request.Request" representing the
- // client's request for the CancelRotateSecret operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See CancelRotateSecret for more information on using the CancelRotateSecret
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the CancelRotateSecretRequest method.
- // req, resp := client.CancelRotateSecretRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/CancelRotateSecret
- func (c *SecretsManager) CancelRotateSecretRequest(input *CancelRotateSecretInput) (req *request.Request, output *CancelRotateSecretOutput) {
- op := &request.Operation{
- Name: opCancelRotateSecret,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &CancelRotateSecretInput{}
- }
- output = &CancelRotateSecretOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // CancelRotateSecret API operation for AWS Secrets Manager.
- //
- // Disables automatic scheduled rotation and cancels the rotation of a secret
- // if one is currently in progress.
- //
- // To re-enable scheduled rotation, call RotateSecret with AutomaticallyRotateAfterDays
- // set to a value greater than 0. This will immediately rotate your secret and
- // then enable the automatic schedule.
- //
- // If you cancel a rotation that is in progress, it can leave the VersionStage
- // labels in an unexpected state. Depending on what step of the rotation was
- // in progress, you might need to remove the staging label AWSPENDING from the
- // partially created version, specified by the VersionId response value. You
- // should also evaluate the partially rotated new version to see if it should
- // be deleted, which you can do by removing all staging labels from the new
- // version's VersionStage field.
- //
- // To successfully start a rotation, the staging label AWSPENDING must be in
- // one of the following states:
- //
- // * Not be attached to any version at all
- //
- // * Attached to the same version as the staging label AWSCURRENT
- //
- // If the staging label AWSPENDING is attached to a different version than the
- // version with AWSCURRENT then the attempt to rotate fails.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:CancelRotateSecret
- //
- // Related operations
- //
- // * To configure rotation for a secret or to manually trigger a rotation,
- // use RotateSecret.
- //
- // * To get the rotation configuration details for a secret, use DescribeSecret.
- //
- // * To list all of the currently available secrets, use ListSecrets.
- //
- // * To list all of the versions currently associated with a secret, use
- // ListSecretVersionIds.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation CancelRotateSecret for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/CancelRotateSecret
- func (c *SecretsManager) CancelRotateSecret(input *CancelRotateSecretInput) (*CancelRotateSecretOutput, error) {
- req, out := c.CancelRotateSecretRequest(input)
- return out, req.Send()
- }
- // CancelRotateSecretWithContext is the same as CancelRotateSecret with the addition of
- // the ability to pass a context and additional request options.
- //
- // See CancelRotateSecret for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) CancelRotateSecretWithContext(ctx aws.Context, input *CancelRotateSecretInput, opts ...request.Option) (*CancelRotateSecretOutput, error) {
- req, out := c.CancelRotateSecretRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opCreateSecret = "CreateSecret"
- // CreateSecretRequest generates a "aws/request.Request" representing the
- // client's request for the CreateSecret operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See CreateSecret for more information on using the CreateSecret
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the CreateSecretRequest method.
- // req, resp := client.CreateSecretRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/CreateSecret
- func (c *SecretsManager) CreateSecretRequest(input *CreateSecretInput) (req *request.Request, output *CreateSecretOutput) {
- op := &request.Operation{
- Name: opCreateSecret,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &CreateSecretInput{}
- }
- output = &CreateSecretOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // CreateSecret API operation for AWS Secrets Manager.
- //
- // Creates a new secret. A secret in Secrets Manager consists of both the protected
- // secret data and the important information needed to manage the secret.
- //
- // Secrets Manager stores the encrypted secret data in one of a collection of
- // "versions" associated with the secret. Each version contains a copy of the
- // encrypted secret data. Each version is associated with one or more "staging
- // labels" that identify where the version is in the rotation cycle. The SecretVersionsToStages
- // field of the secret contains the mapping of staging labels to the active
- // versions of the secret. Versions without a staging label are considered deprecated
- // and are not included in the list.
- //
- // You provide the secret data to be encrypted by putting text in either the
- // SecretString parameter or binary data in the SecretBinary parameter, but
- // not both. If you include SecretString or SecretBinary then Secrets Manager
- // also creates an initial secret version and automatically attaches the staging
- // label AWSCURRENT to the new version.
- //
- // If you call an operation that needs to encrypt or decrypt the SecretString
- // or SecretBinary for a secret in the same account as the calling user and
- // that secret doesn't specify a AWS KMS encryption key, Secrets Manager uses
- // the account's default AWS managed customer master key (CMK) with the alias
- // aws/secretsmanager. If this key doesn't already exist in your account then
- // Secrets Manager creates it for you automatically. All users and roles in
- // the same AWS account automatically have access to use the default CMK. Note
- // that if an Secrets Manager API call results in AWS having to create the account's
- // AWS-managed CMK, it can result in a one-time significant delay in returning
- // the result.
- //
- // If the secret is in a different AWS account from the credentials calling
- // an API that requires encryption or decryption of the secret value then you
- // must create and use a custom AWS KMS CMK because you can't access the default
- // CMK for the account using credentials from a different AWS account. Store
- // the ARN of the CMK in the secret when you create the secret or when you update
- // it by including it in the KMSKeyId. If you call an API that must encrypt
- // or decrypt SecretString or SecretBinary using credentials from a different
- // account then the AWS KMS key policy must grant cross-account access to that
- // other account's user or role for both the kms:GenerateDataKey and kms:Decrypt
- // operations.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:CreateSecret
- //
- // * kms:GenerateDataKey - needed only if you use a customer-managed AWS
- // KMS key to encrypt the secret. You do not need this permission to use
- // the account's default AWS managed CMK for Secrets Manager.
- //
- // * kms:Decrypt - needed only if you use a customer-managed AWS KMS key
- // to encrypt the secret. You do not need this permission to use the account's
- // default AWS managed CMK for Secrets Manager.
- //
- // * secretsmanager:TagResource - needed only if you include the Tags parameter.
- //
- //
- // Related operations
- //
- // * To delete a secret, use DeleteSecret.
- //
- // * To modify an existing secret, use UpdateSecret.
- //
- // * To create a new version of a secret, use PutSecretValue.
- //
- // * To retrieve the encrypted secure string and secure binary values, use
- // GetSecretValue.
- //
- // * To retrieve all other details for a secret, use DescribeSecret. This
- // does not include the encrypted secure string and secure binary values.
- //
- // * To retrieve the list of secret versions associated with the current
- // secret, use DescribeSecret and examine the SecretVersionsToStages response
- // value.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation CreateSecret for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // * ErrCodeLimitExceededException "LimitExceededException"
- // The request failed because it would exceed one of the Secrets Manager internal
- // limits.
- //
- // * ErrCodeEncryptionFailure "EncryptionFailure"
- // Secrets Manager can't encrypt the protected secret text using the provided
- // KMS key. Check that the customer master key (CMK) is available, enabled,
- // and not in an invalid state. For more information, see How Key State Affects
- // Use of a Customer Master Key (http://docs.aws.amazon.com/kms/latest/developerguide/key-state.html).
- //
- // * ErrCodeResourceExistsException "ResourceExistsException"
- // A resource with the ID you requested already exists.
- //
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocumentException"
- // The policy document that you provided isn't valid.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // * ErrCodePreconditionNotMetException "PreconditionNotMetException"
- // The request failed because you did not complete all the prerequisite steps.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/CreateSecret
- func (c *SecretsManager) CreateSecret(input *CreateSecretInput) (*CreateSecretOutput, error) {
- req, out := c.CreateSecretRequest(input)
- return out, req.Send()
- }
- // CreateSecretWithContext is the same as CreateSecret with the addition of
- // the ability to pass a context and additional request options.
- //
- // See CreateSecret for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) CreateSecretWithContext(ctx aws.Context, input *CreateSecretInput, opts ...request.Option) (*CreateSecretOutput, error) {
- req, out := c.CreateSecretRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opDeleteResourcePolicy = "DeleteResourcePolicy"
- // DeleteResourcePolicyRequest generates a "aws/request.Request" representing the
- // client's request for the DeleteResourcePolicy operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See DeleteResourcePolicy for more information on using the DeleteResourcePolicy
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the DeleteResourcePolicyRequest method.
- // req, resp := client.DeleteResourcePolicyRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/DeleteResourcePolicy
- func (c *SecretsManager) DeleteResourcePolicyRequest(input *DeleteResourcePolicyInput) (req *request.Request, output *DeleteResourcePolicyOutput) {
- op := &request.Operation{
- Name: opDeleteResourcePolicy,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DeleteResourcePolicyInput{}
- }
- output = &DeleteResourcePolicyOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // DeleteResourcePolicy API operation for AWS Secrets Manager.
- //
- // Deletes the resource-based permission policy that's attached to the secret.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:DeleteResourcePolicy
- //
- // Related operations
- //
- // * To attach a resource policy to a secret, use PutResourcePolicy.
- //
- // * To retrieve the current resource-based policy that's attached to a secret,
- // use GetResourcePolicy.
- //
- // * To list all of the currently available secrets, use ListSecrets.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation DeleteResourcePolicy for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/DeleteResourcePolicy
- func (c *SecretsManager) DeleteResourcePolicy(input *DeleteResourcePolicyInput) (*DeleteResourcePolicyOutput, error) {
- req, out := c.DeleteResourcePolicyRequest(input)
- return out, req.Send()
- }
- // DeleteResourcePolicyWithContext is the same as DeleteResourcePolicy with the addition of
- // the ability to pass a context and additional request options.
- //
- // See DeleteResourcePolicy for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) DeleteResourcePolicyWithContext(ctx aws.Context, input *DeleteResourcePolicyInput, opts ...request.Option) (*DeleteResourcePolicyOutput, error) {
- req, out := c.DeleteResourcePolicyRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opDeleteSecret = "DeleteSecret"
- // DeleteSecretRequest generates a "aws/request.Request" representing the
- // client's request for the DeleteSecret operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See DeleteSecret for more information on using the DeleteSecret
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the DeleteSecretRequest method.
- // req, resp := client.DeleteSecretRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/DeleteSecret
- func (c *SecretsManager) DeleteSecretRequest(input *DeleteSecretInput) (req *request.Request, output *DeleteSecretOutput) {
- op := &request.Operation{
- Name: opDeleteSecret,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DeleteSecretInput{}
- }
- output = &DeleteSecretOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // DeleteSecret API operation for AWS Secrets Manager.
- //
- // Deletes an entire secret and all of its versions. You can optionally include
- // a recovery window during which you can restore the secret. If you don't specify
- // a recovery window value, the operation defaults to 30 days. Secrets Manager
- // attaches a DeletionDate stamp to the secret that specifies the end of the
- // recovery window. At the end of the recovery window, Secrets Manager deletes
- // the secret permanently.
- //
- // At any time before recovery window ends, you can use RestoreSecret to remove
- // the DeletionDate and cancel the deletion of the secret.
- //
- // You cannot access the encrypted secret information in any secret that is
- // scheduled for deletion. If you need to access that information, you must
- // cancel the deletion with RestoreSecret and then retrieve the information.
- //
- // There is no explicit operation to delete a version of a secret. Instead,
- // remove all staging labels from the VersionStage field of a version. That
- // marks the version as deprecated and allows Secrets Manager to delete it as
- // needed. Versions that do not have any staging labels do not show up in ListSecretVersionIds
- // unless you specify IncludeDeprecated.
- //
- // The permanent secret deletion at the end of the waiting period is performed
- // as a background task with low priority. There is no guarantee of a specific
- // time after the recovery window for the actual delete operation to occur.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:DeleteSecret
- //
- // Related operations
- //
- // * To create a secret, use CreateSecret.
- //
- // * To cancel deletion of a version of a secret before the recovery window
- // has expired, use RestoreSecret.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation DeleteSecret for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/DeleteSecret
- func (c *SecretsManager) DeleteSecret(input *DeleteSecretInput) (*DeleteSecretOutput, error) {
- req, out := c.DeleteSecretRequest(input)
- return out, req.Send()
- }
- // DeleteSecretWithContext is the same as DeleteSecret with the addition of
- // the ability to pass a context and additional request options.
- //
- // See DeleteSecret for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) DeleteSecretWithContext(ctx aws.Context, input *DeleteSecretInput, opts ...request.Option) (*DeleteSecretOutput, error) {
- req, out := c.DeleteSecretRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opDescribeSecret = "DescribeSecret"
- // DescribeSecretRequest generates a "aws/request.Request" representing the
- // client's request for the DescribeSecret operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See DescribeSecret for more information on using the DescribeSecret
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the DescribeSecretRequest method.
- // req, resp := client.DescribeSecretRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/DescribeSecret
- func (c *SecretsManager) DescribeSecretRequest(input *DescribeSecretInput) (req *request.Request, output *DescribeSecretOutput) {
- op := &request.Operation{
- Name: opDescribeSecret,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DescribeSecretInput{}
- }
- output = &DescribeSecretOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // DescribeSecret API operation for AWS Secrets Manager.
- //
- // Retrieves the details of a secret. It does not include the encrypted fields.
- // Only those fields that are populated with a value are returned in the response.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:DescribeSecret
- //
- // Related operations
- //
- // * To create a secret, use CreateSecret.
- //
- // * To modify a secret, use UpdateSecret.
- //
- // * To retrieve the encrypted secret information in a version of the secret,
- // use GetSecretValue.
- //
- // * To list all of the secrets in the AWS account, use ListSecrets.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation DescribeSecret for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/DescribeSecret
- func (c *SecretsManager) DescribeSecret(input *DescribeSecretInput) (*DescribeSecretOutput, error) {
- req, out := c.DescribeSecretRequest(input)
- return out, req.Send()
- }
- // DescribeSecretWithContext is the same as DescribeSecret with the addition of
- // the ability to pass a context and additional request options.
- //
- // See DescribeSecret for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) DescribeSecretWithContext(ctx aws.Context, input *DescribeSecretInput, opts ...request.Option) (*DescribeSecretOutput, error) {
- req, out := c.DescribeSecretRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opGetRandomPassword = "GetRandomPassword"
- // GetRandomPasswordRequest generates a "aws/request.Request" representing the
- // client's request for the GetRandomPassword operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See GetRandomPassword for more information on using the GetRandomPassword
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the GetRandomPasswordRequest method.
- // req, resp := client.GetRandomPasswordRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/GetRandomPassword
- func (c *SecretsManager) GetRandomPasswordRequest(input *GetRandomPasswordInput) (req *request.Request, output *GetRandomPasswordOutput) {
- op := &request.Operation{
- Name: opGetRandomPassword,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &GetRandomPasswordInput{}
- }
- output = &GetRandomPasswordOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // GetRandomPassword API operation for AWS Secrets Manager.
- //
- // Generates a random password of the specified complexity. This operation is
- // intended for use in the Lambda rotation function. Per best practice, we recommend
- // that you specify the maximum length and include every character type that
- // the system you are generating a password for can support.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:GetRandomPassword
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation GetRandomPassword for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/GetRandomPassword
- func (c *SecretsManager) GetRandomPassword(input *GetRandomPasswordInput) (*GetRandomPasswordOutput, error) {
- req, out := c.GetRandomPasswordRequest(input)
- return out, req.Send()
- }
- // GetRandomPasswordWithContext is the same as GetRandomPassword with the addition of
- // the ability to pass a context and additional request options.
- //
- // See GetRandomPassword for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) GetRandomPasswordWithContext(ctx aws.Context, input *GetRandomPasswordInput, opts ...request.Option) (*GetRandomPasswordOutput, error) {
- req, out := c.GetRandomPasswordRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opGetResourcePolicy = "GetResourcePolicy"
- // GetResourcePolicyRequest generates a "aws/request.Request" representing the
- // client's request for the GetResourcePolicy operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See GetResourcePolicy for more information on using the GetResourcePolicy
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the GetResourcePolicyRequest method.
- // req, resp := client.GetResourcePolicyRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/GetResourcePolicy
- func (c *SecretsManager) GetResourcePolicyRequest(input *GetResourcePolicyInput) (req *request.Request, output *GetResourcePolicyOutput) {
- op := &request.Operation{
- Name: opGetResourcePolicy,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &GetResourcePolicyInput{}
- }
- output = &GetResourcePolicyOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // GetResourcePolicy API operation for AWS Secrets Manager.
- //
- // Retrieves the JSON text of the resource-based policy document that's attached
- // to the specified secret. The JSON request string input and response output
- // are shown formatted with white space and line breaks for better readability.
- // Submit your input as a single line JSON string.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:GetResourcePolicy
- //
- // Related operations
- //
- // * To attach a resource policy to a secret, use PutResourcePolicy.
- //
- // * To delete the resource-based policy that's attached to a secret, use
- // DeleteResourcePolicy.
- //
- // * To list all of the currently available secrets, use ListSecrets.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation GetResourcePolicy for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/GetResourcePolicy
- func (c *SecretsManager) GetResourcePolicy(input *GetResourcePolicyInput) (*GetResourcePolicyOutput, error) {
- req, out := c.GetResourcePolicyRequest(input)
- return out, req.Send()
- }
- // GetResourcePolicyWithContext is the same as GetResourcePolicy with the addition of
- // the ability to pass a context and additional request options.
- //
- // See GetResourcePolicy for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) GetResourcePolicyWithContext(ctx aws.Context, input *GetResourcePolicyInput, opts ...request.Option) (*GetResourcePolicyOutput, error) {
- req, out := c.GetResourcePolicyRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opGetSecretValue = "GetSecretValue"
- // GetSecretValueRequest generates a "aws/request.Request" representing the
- // client's request for the GetSecretValue operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See GetSecretValue for more information on using the GetSecretValue
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the GetSecretValueRequest method.
- // req, resp := client.GetSecretValueRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/GetSecretValue
- func (c *SecretsManager) GetSecretValueRequest(input *GetSecretValueInput) (req *request.Request, output *GetSecretValueOutput) {
- op := &request.Operation{
- Name: opGetSecretValue,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &GetSecretValueInput{}
- }
- output = &GetSecretValueOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // GetSecretValue API operation for AWS Secrets Manager.
- //
- // Retrieves the contents of the encrypted fields SecretString or SecretBinary
- // from the specified version of a secret, whichever contains content.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:GetSecretValue
- //
- // * kms:Decrypt - required only if you use a customer-managed AWS KMS key
- // to encrypt the secret. You do not need this permission to use the account's
- // default AWS managed CMK for Secrets Manager.
- //
- // Related operations
- //
- // * To create a new version of the secret with different encrypted information,
- // use PutSecretValue.
- //
- // * To retrieve the non-encrypted details for the secret, use DescribeSecret.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation GetSecretValue for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // * ErrCodeDecryptionFailure "DecryptionFailure"
- // Secrets Manager can't decrypt the protected secret text using the provided
- // KMS key.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/GetSecretValue
- func (c *SecretsManager) GetSecretValue(input *GetSecretValueInput) (*GetSecretValueOutput, error) {
- req, out := c.GetSecretValueRequest(input)
- return out, req.Send()
- }
- // GetSecretValueWithContext is the same as GetSecretValue with the addition of
- // the ability to pass a context and additional request options.
- //
- // See GetSecretValue for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) GetSecretValueWithContext(ctx aws.Context, input *GetSecretValueInput, opts ...request.Option) (*GetSecretValueOutput, error) {
- req, out := c.GetSecretValueRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opListSecretVersionIds = "ListSecretVersionIds"
- // ListSecretVersionIdsRequest generates a "aws/request.Request" representing the
- // client's request for the ListSecretVersionIds operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See ListSecretVersionIds for more information on using the ListSecretVersionIds
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the ListSecretVersionIdsRequest method.
- // req, resp := client.ListSecretVersionIdsRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/ListSecretVersionIds
- func (c *SecretsManager) ListSecretVersionIdsRequest(input *ListSecretVersionIdsInput) (req *request.Request, output *ListSecretVersionIdsOutput) {
- op := &request.Operation{
- Name: opListSecretVersionIds,
- HTTPMethod: "POST",
- HTTPPath: "/",
- Paginator: &request.Paginator{
- InputTokens: []string{"NextToken"},
- OutputTokens: []string{"NextToken"},
- LimitToken: "MaxResults",
- TruncationToken: "",
- },
- }
- if input == nil {
- input = &ListSecretVersionIdsInput{}
- }
- output = &ListSecretVersionIdsOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // ListSecretVersionIds API operation for AWS Secrets Manager.
- //
- // Lists all of the versions attached to the specified secret. The output does
- // not include the SecretString or SecretBinary fields. By default, the list
- // includes only versions that have at least one staging label in VersionStage
- // attached.
- //
- // Always check the NextToken response parameter when calling any of the List*
- // operations. These operations can occasionally return an empty or shorter
- // than expected list of results even when there are more results available.
- // When this happens, the NextToken response parameter contains a value to pass
- // to the next call to the same API to request the next part of the list.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:ListSecretVersionIds
- //
- // Related operations
- //
- // * To list the secrets in an account, use ListSecrets.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation ListSecretVersionIds for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
- // You provided an invalid NextToken value.
- //
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/ListSecretVersionIds
- func (c *SecretsManager) ListSecretVersionIds(input *ListSecretVersionIdsInput) (*ListSecretVersionIdsOutput, error) {
- req, out := c.ListSecretVersionIdsRequest(input)
- return out, req.Send()
- }
- // ListSecretVersionIdsWithContext is the same as ListSecretVersionIds with the addition of
- // the ability to pass a context and additional request options.
- //
- // See ListSecretVersionIds for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) ListSecretVersionIdsWithContext(ctx aws.Context, input *ListSecretVersionIdsInput, opts ...request.Option) (*ListSecretVersionIdsOutput, error) {
- req, out := c.ListSecretVersionIdsRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- // ListSecretVersionIdsPages iterates over the pages of a ListSecretVersionIds operation,
- // calling the "fn" function with the response data for each page. To stop
- // iterating, return false from the fn function.
- //
- // See ListSecretVersionIds method for more information on how to use this operation.
- //
- // Note: This operation can generate multiple requests to a service.
- //
- // // Example iterating over at most 3 pages of a ListSecretVersionIds operation.
- // pageNum := 0
- // err := client.ListSecretVersionIdsPages(params,
- // func(page *ListSecretVersionIdsOutput, lastPage bool) bool {
- // pageNum++
- // fmt.Println(page)
- // return pageNum <= 3
- // })
- //
- func (c *SecretsManager) ListSecretVersionIdsPages(input *ListSecretVersionIdsInput, fn func(*ListSecretVersionIdsOutput, bool) bool) error {
- return c.ListSecretVersionIdsPagesWithContext(aws.BackgroundContext(), input, fn)
- }
- // ListSecretVersionIdsPagesWithContext same as ListSecretVersionIdsPages except
- // it takes a Context and allows setting request options on the pages.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) ListSecretVersionIdsPagesWithContext(ctx aws.Context, input *ListSecretVersionIdsInput, fn func(*ListSecretVersionIdsOutput, bool) bool, opts ...request.Option) error {
- p := request.Pagination{
- NewRequest: func() (*request.Request, error) {
- var inCpy *ListSecretVersionIdsInput
- if input != nil {
- tmp := *input
- inCpy = &tmp
- }
- req, _ := c.ListSecretVersionIdsRequest(inCpy)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return req, nil
- },
- }
- cont := true
- for p.Next() && cont {
- cont = fn(p.Page().(*ListSecretVersionIdsOutput), !p.HasNextPage())
- }
- return p.Err()
- }
- const opListSecrets = "ListSecrets"
- // ListSecretsRequest generates a "aws/request.Request" representing the
- // client's request for the ListSecrets operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See ListSecrets for more information on using the ListSecrets
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the ListSecretsRequest method.
- // req, resp := client.ListSecretsRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/ListSecrets
- func (c *SecretsManager) ListSecretsRequest(input *ListSecretsInput) (req *request.Request, output *ListSecretsOutput) {
- op := &request.Operation{
- Name: opListSecrets,
- HTTPMethod: "POST",
- HTTPPath: "/",
- Paginator: &request.Paginator{
- InputTokens: []string{"NextToken"},
- OutputTokens: []string{"NextToken"},
- LimitToken: "MaxResults",
- TruncationToken: "",
- },
- }
- if input == nil {
- input = &ListSecretsInput{}
- }
- output = &ListSecretsOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // ListSecrets API operation for AWS Secrets Manager.
- //
- // Lists all of the secrets that are stored by Secrets Manager in the AWS account.
- // To list the versions currently stored for a specific secret, use ListSecretVersionIds.
- // The encrypted fields SecretString and SecretBinary are not included in the
- // output. To get that information, call the GetSecretValue operation.
- //
- // Always check the NextToken response parameter when calling any of the List*
- // operations. These operations can occasionally return an empty or shorter
- // than expected list of results even when there are more results available.
- // When this happens, the NextToken response parameter contains a value to pass
- // to the next call to the same API to request the next part of the list.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:ListSecrets
- //
- // Related operations
- //
- // * To list the versions attached to a secret, use ListSecretVersionIds.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation ListSecrets for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
- // You provided an invalid NextToken value.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/ListSecrets
- func (c *SecretsManager) ListSecrets(input *ListSecretsInput) (*ListSecretsOutput, error) {
- req, out := c.ListSecretsRequest(input)
- return out, req.Send()
- }
- // ListSecretsWithContext is the same as ListSecrets with the addition of
- // the ability to pass a context and additional request options.
- //
- // See ListSecrets for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) ListSecretsWithContext(ctx aws.Context, input *ListSecretsInput, opts ...request.Option) (*ListSecretsOutput, error) {
- req, out := c.ListSecretsRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- // ListSecretsPages iterates over the pages of a ListSecrets operation,
- // calling the "fn" function with the response data for each page. To stop
- // iterating, return false from the fn function.
- //
- // See ListSecrets method for more information on how to use this operation.
- //
- // Note: This operation can generate multiple requests to a service.
- //
- // // Example iterating over at most 3 pages of a ListSecrets operation.
- // pageNum := 0
- // err := client.ListSecretsPages(params,
- // func(page *ListSecretsOutput, lastPage bool) bool {
- // pageNum++
- // fmt.Println(page)
- // return pageNum <= 3
- // })
- //
- func (c *SecretsManager) ListSecretsPages(input *ListSecretsInput, fn func(*ListSecretsOutput, bool) bool) error {
- return c.ListSecretsPagesWithContext(aws.BackgroundContext(), input, fn)
- }
- // ListSecretsPagesWithContext same as ListSecretsPages except
- // it takes a Context and allows setting request options on the pages.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) ListSecretsPagesWithContext(ctx aws.Context, input *ListSecretsInput, fn func(*ListSecretsOutput, bool) bool, opts ...request.Option) error {
- p := request.Pagination{
- NewRequest: func() (*request.Request, error) {
- var inCpy *ListSecretsInput
- if input != nil {
- tmp := *input
- inCpy = &tmp
- }
- req, _ := c.ListSecretsRequest(inCpy)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return req, nil
- },
- }
- cont := true
- for p.Next() && cont {
- cont = fn(p.Page().(*ListSecretsOutput), !p.HasNextPage())
- }
- return p.Err()
- }
- const opPutResourcePolicy = "PutResourcePolicy"
- // PutResourcePolicyRequest generates a "aws/request.Request" representing the
- // client's request for the PutResourcePolicy operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See PutResourcePolicy for more information on using the PutResourcePolicy
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the PutResourcePolicyRequest method.
- // req, resp := client.PutResourcePolicyRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/PutResourcePolicy
- func (c *SecretsManager) PutResourcePolicyRequest(input *PutResourcePolicyInput) (req *request.Request, output *PutResourcePolicyOutput) {
- op := &request.Operation{
- Name: opPutResourcePolicy,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &PutResourcePolicyInput{}
- }
- output = &PutResourcePolicyOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // PutResourcePolicy API operation for AWS Secrets Manager.
- //
- // Attaches the contents of the specified resource-based permission policy to
- // a secret. A resource-based policy is optional. Alternatively, you can use
- // IAM identity-based policies that specify the secret's Amazon Resource Name
- // (ARN) in the policy statement's Resources element. You can also use a combination
- // of both identity-based and resource-based policies. The affected users and
- // roles receive the permissions that are permitted by all of the relevant policies.
- // For more information, see Using Resource-Based Policies for AWS Secrets Manager
- // (http://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-based-policies.html).
- // For the complete description of the AWS policy syntax and grammar, see IAM
- // JSON Policy Reference (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)
- // in the IAM User Guide.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:PutResourcePolicy
- //
- // Related operations
- //
- // * To retrieve the resource policy that's attached to a secret, use GetResourcePolicy.
- //
- // * To delete the resource-based policy that's attached to a secret, use
- // DeleteResourcePolicy.
- //
- // * To list all of the currently available secrets, use ListSecrets.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation PutResourcePolicy for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocumentException"
- // The policy document that you provided isn't valid.
- //
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/PutResourcePolicy
- func (c *SecretsManager) PutResourcePolicy(input *PutResourcePolicyInput) (*PutResourcePolicyOutput, error) {
- req, out := c.PutResourcePolicyRequest(input)
- return out, req.Send()
- }
- // PutResourcePolicyWithContext is the same as PutResourcePolicy with the addition of
- // the ability to pass a context and additional request options.
- //
- // See PutResourcePolicy for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) PutResourcePolicyWithContext(ctx aws.Context, input *PutResourcePolicyInput, opts ...request.Option) (*PutResourcePolicyOutput, error) {
- req, out := c.PutResourcePolicyRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opPutSecretValue = "PutSecretValue"
- // PutSecretValueRequest generates a "aws/request.Request" representing the
- // client's request for the PutSecretValue operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See PutSecretValue for more information on using the PutSecretValue
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the PutSecretValueRequest method.
- // req, resp := client.PutSecretValueRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/PutSecretValue
- func (c *SecretsManager) PutSecretValueRequest(input *PutSecretValueInput) (req *request.Request, output *PutSecretValueOutput) {
- op := &request.Operation{
- Name: opPutSecretValue,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &PutSecretValueInput{}
- }
- output = &PutSecretValueOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // PutSecretValue API operation for AWS Secrets Manager.
- //
- // Stores a new encrypted secret value in the specified secret. To do this,
- // the operation creates a new version and attaches it to the secret. The version
- // can contain a new SecretString value or a new SecretBinary value. You can
- // also specify the staging labels that are initially attached to the new version.
- //
- // The Secrets Manager console uses only the SecretString field. To add binary
- // data to a secret with the SecretBinary field you must use the AWS CLI or
- // one of the AWS SDKs.
- //
- // * If this operation creates the first version for the secret then Secrets
- // Manager automatically attaches the staging label AWSCURRENT to the new
- // version.
- //
- // * If another version of this secret already exists, then this operation
- // does not automatically move any staging labels other than those that you
- // explicitly specify in the VersionStages parameter.
- //
- // * If this operation moves the staging label AWSCURRENT from another version
- // to this version (because you included it in the StagingLabels parameter)
- // then Secrets Manager also automatically moves the staging label AWSPREVIOUS
- // to the version that AWSCURRENT was removed from.
- //
- // * This operation is idempotent. If a version with a VersionId with the
- // same value as the ClientRequestToken parameter already exists and you
- // specify the same secret data, the operation succeeds but does nothing.
- // However, if the secret data is different, then the operation fails because
- // you cannot modify an existing version; you can only create new ones.
- //
- // If you call an operation that needs to encrypt or decrypt the SecretString
- // or SecretBinary for a secret in the same account as the calling user and
- // that secret doesn't specify a AWS KMS encryption key, Secrets Manager uses
- // the account's default AWS managed customer master key (CMK) with the alias
- // aws/secretsmanager. If this key doesn't already exist in your account then
- // Secrets Manager creates it for you automatically. All users and roles in
- // the same AWS account automatically have access to use the default CMK. Note
- // that if an Secrets Manager API call results in AWS having to create the account's
- // AWS-managed CMK, it can result in a one-time significant delay in returning
- // the result.
- //
- // If the secret is in a different AWS account from the credentials calling
- // an API that requires encryption or decryption of the secret value then you
- // must create and use a custom AWS KMS CMK because you can't access the default
- // CMK for the account using credentials from a different AWS account. Store
- // the ARN of the CMK in the secret when you create the secret or when you update
- // it by including it in the KMSKeyId. If you call an API that must encrypt
- // or decrypt SecretString or SecretBinary using credentials from a different
- // account then the AWS KMS key policy must grant cross-account access to that
- // other account's user or role for both the kms:GenerateDataKey and kms:Decrypt
- // operations.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:PutSecretValue
- //
- // * kms:GenerateDataKey - needed only if you use a customer-managed AWS
- // KMS key to encrypt the secret. You do not need this permission to use
- // the account's default AWS managed CMK for Secrets Manager.
- //
- // Related operations
- //
- // * To retrieve the encrypted value you store in the version of a secret,
- // use GetSecretValue.
- //
- // * To create a secret, use CreateSecret.
- //
- // * To get the details for a secret, use DescribeSecret.
- //
- // * To list the versions attached to a secret, use ListSecretVersionIds.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation PutSecretValue for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // * ErrCodeLimitExceededException "LimitExceededException"
- // The request failed because it would exceed one of the Secrets Manager internal
- // limits.
- //
- // * ErrCodeEncryptionFailure "EncryptionFailure"
- // Secrets Manager can't encrypt the protected secret text using the provided
- // KMS key. Check that the customer master key (CMK) is available, enabled,
- // and not in an invalid state. For more information, see How Key State Affects
- // Use of a Customer Master Key (http://docs.aws.amazon.com/kms/latest/developerguide/key-state.html).
- //
- // * ErrCodeResourceExistsException "ResourceExistsException"
- // A resource with the ID you requested already exists.
- //
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/PutSecretValue
- func (c *SecretsManager) PutSecretValue(input *PutSecretValueInput) (*PutSecretValueOutput, error) {
- req, out := c.PutSecretValueRequest(input)
- return out, req.Send()
- }
- // PutSecretValueWithContext is the same as PutSecretValue with the addition of
- // the ability to pass a context and additional request options.
- //
- // See PutSecretValue for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) PutSecretValueWithContext(ctx aws.Context, input *PutSecretValueInput, opts ...request.Option) (*PutSecretValueOutput, error) {
- req, out := c.PutSecretValueRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opRestoreSecret = "RestoreSecret"
- // RestoreSecretRequest generates a "aws/request.Request" representing the
- // client's request for the RestoreSecret operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See RestoreSecret for more information on using the RestoreSecret
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the RestoreSecretRequest method.
- // req, resp := client.RestoreSecretRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/RestoreSecret
- func (c *SecretsManager) RestoreSecretRequest(input *RestoreSecretInput) (req *request.Request, output *RestoreSecretOutput) {
- op := &request.Operation{
- Name: opRestoreSecret,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &RestoreSecretInput{}
- }
- output = &RestoreSecretOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // RestoreSecret API operation for AWS Secrets Manager.
- //
- // Cancels the scheduled deletion of a secret by removing the DeletedDate time
- // stamp. This makes the secret accessible to query once again.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:RestoreSecret
- //
- // Related operations
- //
- // * To delete a secret, use DeleteSecret.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation RestoreSecret for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/RestoreSecret
- func (c *SecretsManager) RestoreSecret(input *RestoreSecretInput) (*RestoreSecretOutput, error) {
- req, out := c.RestoreSecretRequest(input)
- return out, req.Send()
- }
- // RestoreSecretWithContext is the same as RestoreSecret with the addition of
- // the ability to pass a context and additional request options.
- //
- // See RestoreSecret for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) RestoreSecretWithContext(ctx aws.Context, input *RestoreSecretInput, opts ...request.Option) (*RestoreSecretOutput, error) {
- req, out := c.RestoreSecretRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opRotateSecret = "RotateSecret"
- // RotateSecretRequest generates a "aws/request.Request" representing the
- // client's request for the RotateSecret operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See RotateSecret for more information on using the RotateSecret
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the RotateSecretRequest method.
- // req, resp := client.RotateSecretRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/RotateSecret
- func (c *SecretsManager) RotateSecretRequest(input *RotateSecretInput) (req *request.Request, output *RotateSecretOutput) {
- op := &request.Operation{
- Name: opRotateSecret,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &RotateSecretInput{}
- }
- output = &RotateSecretOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // RotateSecret API operation for AWS Secrets Manager.
- //
- // Configures and starts the asynchronous process of rotating this secret. If
- // you include the configuration parameters, the operation sets those values
- // for the secret and then immediately starts a rotation. If you do not include
- // the configuration parameters, the operation starts a rotation with the values
- // already stored in the secret. After the rotation completes, the protected
- // service and its clients all use the new version of the secret.
- //
- // This required configuration information includes the ARN of an AWS Lambda
- // function and the time between scheduled rotations. The Lambda rotation function
- // creates a new version of the secret and creates or updates the credentials
- // on the protected service to match. After testing the new credentials, the
- // function marks the new secret with the staging label AWSCURRENT so that your
- // clients all immediately begin to use the new version. For more information
- // about rotating secrets and how to configure a Lambda function to rotate the
- // secrets for your protected service, see Rotating Secrets in AWS Secrets Manager
- // (http://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html)
- // in the AWS Secrets Manager User Guide.
- //
- // Secrets Manager schedules the next rotation when the previous one is complete.
- // Secrets Manager schedules the date by adding the rotation interval (number
- // of days) to the actual date of the last rotation. The service chooses the
- // hour within that 24-hour date window randomly. The minute is also chosen
- // somewhat randomly, but weighted towards the top of the hour and influenced
- // by a variety of factors that help distribute load.
- //
- // The rotation function must end with the versions of the secret in one of
- // two states:
- //
- // * The AWSPENDING and AWSCURRENT staging labels are attached to the same
- // version of the secret, or
- //
- // * The AWSPENDING staging label is not attached to any version of the secret.
- //
- // If instead the AWSPENDING staging label is present but is not attached to
- // the same version as AWSCURRENT then any later invocation of RotateSecret
- // assumes that a previous rotation request is still in progress and returns
- // an error.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:RotateSecret
- //
- // * lambda:InvokeFunction (on the function specified in the secret's metadata)
- //
- // Related operations
- //
- // * To list the secrets in your account, use ListSecrets.
- //
- // * To get the details for a version of a secret, use DescribeSecret.
- //
- // * To create a new version of a secret, use CreateSecret.
- //
- // * To attach staging labels to or remove staging labels from a version
- // of a secret, use UpdateSecretVersionStage.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation RotateSecret for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/RotateSecret
- func (c *SecretsManager) RotateSecret(input *RotateSecretInput) (*RotateSecretOutput, error) {
- req, out := c.RotateSecretRequest(input)
- return out, req.Send()
- }
- // RotateSecretWithContext is the same as RotateSecret with the addition of
- // the ability to pass a context and additional request options.
- //
- // See RotateSecret for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) RotateSecretWithContext(ctx aws.Context, input *RotateSecretInput, opts ...request.Option) (*RotateSecretOutput, error) {
- req, out := c.RotateSecretRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opTagResource = "TagResource"
- // TagResourceRequest generates a "aws/request.Request" representing the
- // client's request for the TagResource operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See TagResource for more information on using the TagResource
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the TagResourceRequest method.
- // req, resp := client.TagResourceRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/TagResource
- func (c *SecretsManager) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
- op := &request.Operation{
- Name: opTagResource,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &TagResourceInput{}
- }
- output = &TagResourceOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // TagResource API operation for AWS Secrets Manager.
- //
- // Attaches one or more tags, each consisting of a key name and a value, to
- // the specified secret. Tags are part of the secret's overall metadata, and
- // are not associated with any specific version of the secret. This operation
- // only appends tags to the existing list of tags. To remove tags, you must
- // use UntagResource.
- //
- // The following basic restrictions apply to tags:
- //
- // * Maximum number of tags per secret—50
- //
- // * Maximum key length—127 Unicode characters in UTF-8
- //
- // * Maximum value length—255 Unicode characters in UTF-8
- //
- // * Tag keys and values are case sensitive.
- //
- // * Do not use the aws: prefix in your tag names or values because it is
- // reserved for AWS use. You can't edit or delete tag names or values with
- // this prefix. Tags with this prefix do not count against your tags per
- // secret limit.
- //
- // * If your tagging schema will be used across multiple services and resources,
- // remember that other services might have restrictions on allowed characters.
- // Generally allowed characters are: letters, spaces, and numbers representable
- // in UTF-8, plus the following special characters: + - = . _ : / @.
- //
- // If you use tags as part of your security strategy, then adding or removing
- // a tag can change permissions. If successfully completing this operation would
- // result in you losing your permissions for this secret, then the operation
- // is blocked and returns an Access Denied error.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:TagResource
- //
- // Related operations
- //
- // * To remove one or more tags from the collection attached to a secret,
- // use UntagResource.
- //
- // * To view the list of tags attached to a secret, use DescribeSecret.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation TagResource for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/TagResource
- func (c *SecretsManager) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
- req, out := c.TagResourceRequest(input)
- return out, req.Send()
- }
- // TagResourceWithContext is the same as TagResource with the addition of
- // the ability to pass a context and additional request options.
- //
- // See TagResource for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
- req, out := c.TagResourceRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opUntagResource = "UntagResource"
- // UntagResourceRequest generates a "aws/request.Request" representing the
- // client's request for the UntagResource operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See UntagResource for more information on using the UntagResource
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the UntagResourceRequest method.
- // req, resp := client.UntagResourceRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/UntagResource
- func (c *SecretsManager) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
- op := &request.Operation{
- Name: opUntagResource,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &UntagResourceInput{}
- }
- output = &UntagResourceOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // UntagResource API operation for AWS Secrets Manager.
- //
- // Removes one or more tags from the specified secret.
- //
- // This operation is idempotent. If a requested tag is not attached to the secret,
- // no error is returned and the secret metadata is unchanged.
- //
- // If you use tags as part of your security strategy, then removing a tag can
- // change permissions. If successfully completing this operation would result
- // in you losing your permissions for this secret, then the operation is blocked
- // and returns an Access Denied error.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:UntagResource
- //
- // Related operations
- //
- // * To add one or more tags to the collection attached to a secret, use
- // TagResource.
- //
- // * To view the list of tags attached to a secret, use DescribeSecret.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation UntagResource for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/UntagResource
- func (c *SecretsManager) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
- req, out := c.UntagResourceRequest(input)
- return out, req.Send()
- }
- // UntagResourceWithContext is the same as UntagResource with the addition of
- // the ability to pass a context and additional request options.
- //
- // See UntagResource for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
- req, out := c.UntagResourceRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opUpdateSecret = "UpdateSecret"
- // UpdateSecretRequest generates a "aws/request.Request" representing the
- // client's request for the UpdateSecret operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See UpdateSecret for more information on using the UpdateSecret
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the UpdateSecretRequest method.
- // req, resp := client.UpdateSecretRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/UpdateSecret
- func (c *SecretsManager) UpdateSecretRequest(input *UpdateSecretInput) (req *request.Request, output *UpdateSecretOutput) {
- op := &request.Operation{
- Name: opUpdateSecret,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &UpdateSecretInput{}
- }
- output = &UpdateSecretOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // UpdateSecret API operation for AWS Secrets Manager.
- //
- // Modifies many of the details of the specified secret. If you include a ClientRequestToken
- // and eitherSecretString or SecretBinary then it also creates a new version
- // attached to the secret.
- //
- // To modify the rotation configuration of a secret, use RotateSecret instead.
- //
- // The Secrets Manager console uses only the SecretString parameter and therefore
- // limits you to encrypting and storing only a text string. To encrypt and store
- // binary data as part of the version of a secret, you must use either the AWS
- // CLI or one of the AWS SDKs.
- //
- // * If a version with a VersionId with the same value as the ClientRequestToken
- // parameter already exists, the operation results in an error. You cannot
- // modify an existing version, you can only create a new version.
- //
- // * If you include SecretString or SecretBinary to create a new secret version,
- // Secrets Manager automatically attaches the staging label AWSCURRENT to
- // the new version.
- //
- // If you call an operation that needs to encrypt or decrypt the SecretString
- // or SecretBinary for a secret in the same account as the calling user and
- // that secret doesn't specify a AWS KMS encryption key, Secrets Manager uses
- // the account's default AWS managed customer master key (CMK) with the alias
- // aws/secretsmanager. If this key doesn't already exist in your account then
- // Secrets Manager creates it for you automatically. All users and roles in
- // the same AWS account automatically have access to use the default CMK. Note
- // that if an Secrets Manager API call results in AWS having to create the account's
- // AWS-managed CMK, it can result in a one-time significant delay in returning
- // the result.
- //
- // If the secret is in a different AWS account from the credentials calling
- // an API that requires encryption or decryption of the secret value then you
- // must create and use a custom AWS KMS CMK because you can't access the default
- // CMK for the account using credentials from a different AWS account. Store
- // the ARN of the CMK in the secret when you create the secret or when you update
- // it by including it in the KMSKeyId. If you call an API that must encrypt
- // or decrypt SecretString or SecretBinary using credentials from a different
- // account then the AWS KMS key policy must grant cross-account access to that
- // other account's user or role for both the kms:GenerateDataKey and kms:Decrypt
- // operations.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:UpdateSecret
- //
- // * kms:GenerateDataKey - needed only if you use a custom AWS KMS key to
- // encrypt the secret. You do not need this permission to use the account's
- // AWS managed CMK for Secrets Manager.
- //
- // * kms:Decrypt - needed only if you use a custom AWS KMS key to encrypt
- // the secret. You do not need this permission to use the account's AWS managed
- // CMK for Secrets Manager.
- //
- // Related operations
- //
- // * To create a new secret, use CreateSecret.
- //
- // * To add only a new version to an existing secret, use PutSecretValue.
- //
- // * To get the details for a secret, use DescribeSecret.
- //
- // * To list the versions contained in a secret, use ListSecretVersionIds.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation UpdateSecret for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // * ErrCodeLimitExceededException "LimitExceededException"
- // The request failed because it would exceed one of the Secrets Manager internal
- // limits.
- //
- // * ErrCodeEncryptionFailure "EncryptionFailure"
- // Secrets Manager can't encrypt the protected secret text using the provided
- // KMS key. Check that the customer master key (CMK) is available, enabled,
- // and not in an invalid state. For more information, see How Key State Affects
- // Use of a Customer Master Key (http://docs.aws.amazon.com/kms/latest/developerguide/key-state.html).
- //
- // * ErrCodeResourceExistsException "ResourceExistsException"
- // A resource with the ID you requested already exists.
- //
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeMalformedPolicyDocumentException "MalformedPolicyDocumentException"
- // The policy document that you provided isn't valid.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // * ErrCodePreconditionNotMetException "PreconditionNotMetException"
- // The request failed because you did not complete all the prerequisite steps.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/UpdateSecret
- func (c *SecretsManager) UpdateSecret(input *UpdateSecretInput) (*UpdateSecretOutput, error) {
- req, out := c.UpdateSecretRequest(input)
- return out, req.Send()
- }
- // UpdateSecretWithContext is the same as UpdateSecret with the addition of
- // the ability to pass a context and additional request options.
- //
- // See UpdateSecret for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) UpdateSecretWithContext(ctx aws.Context, input *UpdateSecretInput, opts ...request.Option) (*UpdateSecretOutput, error) {
- req, out := c.UpdateSecretRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opUpdateSecretVersionStage = "UpdateSecretVersionStage"
- // UpdateSecretVersionStageRequest generates a "aws/request.Request" representing the
- // client's request for the UpdateSecretVersionStage operation. The "output" return
- // value will be populated with the request's response once the request completes
- // successfully.
- //
- // Use "Send" method on the returned Request to send the API call to the service.
- // the "output" return value is not valid until after Send returns without error.
- //
- // See UpdateSecretVersionStage for more information on using the UpdateSecretVersionStage
- // API call, and error handling.
- //
- // This method is useful when you want to inject custom logic or configuration
- // into the SDK's request lifecycle. Such as custom headers, or retry logic.
- //
- //
- // // Example sending a request using the UpdateSecretVersionStageRequest method.
- // req, resp := client.UpdateSecretVersionStageRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/UpdateSecretVersionStage
- func (c *SecretsManager) UpdateSecretVersionStageRequest(input *UpdateSecretVersionStageInput) (req *request.Request, output *UpdateSecretVersionStageOutput) {
- op := &request.Operation{
- Name: opUpdateSecretVersionStage,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &UpdateSecretVersionStageInput{}
- }
- output = &UpdateSecretVersionStageOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // UpdateSecretVersionStage API operation for AWS Secrets Manager.
- //
- // Modifies the staging labels attached to a version of a secret. Staging labels
- // are used to track a version as it progresses through the secret rotation
- // process. You can attach a staging label to only one version of a secret at
- // a time. If a staging label to be added is already attached to another version,
- // then it is moved--removed from the other version first and then attached
- // to this one. For more information about staging labels, see Staging Labels
- // (http://docs.aws.amazon.com/secretsmanager/latest/userguide/terms-concepts.html#term_staging-label)
- // in the AWS Secrets Manager User Guide.
- //
- // The staging labels that you specify in the VersionStage parameter are added
- // to the existing list of staging labels--they don't replace it.
- //
- // You can move the AWSCURRENT staging label to this version by including it
- // in this call.
- //
- // Whenever you move AWSCURRENT, Secrets Manager automatically moves the label
- // AWSPREVIOUS to the version that AWSCURRENT was removed from.
- //
- // If this action results in the last label being removed from a version, then
- // the version is considered to be 'deprecated' and can be deleted by Secrets
- // Manager.
- //
- // Minimum permissions
- //
- // To run this command, you must have the following permissions:
- //
- // * secretsmanager:UpdateSecretVersionStage
- //
- // Related operations
- //
- // * To get the list of staging labels that are currently associated with
- // a version of a secret, use DescribeSecret and examine the SecretVersionsToStages
- // response value.
- //
- // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
- // with awserr.Error's Code and Message methods to get detailed information about
- // the error.
- //
- // See the AWS API reference guide for AWS Secrets Manager's
- // API operation UpdateSecretVersionStage for usage and error information.
- //
- // Returned Error Codes:
- // * ErrCodeResourceNotFoundException "ResourceNotFoundException"
- // We can't find the resource that you asked for.
- //
- // * ErrCodeInvalidParameterException "InvalidParameterException"
- // You provided an invalid value for a parameter.
- //
- // * ErrCodeInvalidRequestException "InvalidRequestException"
- // You provided a parameter value that is not valid for the current state of
- // the resource.
- //
- // Possible causes:
- //
- // * You tried to perform the operation on a secret that's currently marked
- // deleted.
- //
- // * You tried to enable rotation on a secret that doesn't already have a
- // Lambda function ARN configured and you didn't include such an ARN as a
- // parameter in this call.
- //
- // * ErrCodeLimitExceededException "LimitExceededException"
- // The request failed because it would exceed one of the Secrets Manager internal
- // limits.
- //
- // * ErrCodeInternalServiceError "InternalServiceError"
- // An error occurred on the server side.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/UpdateSecretVersionStage
- func (c *SecretsManager) UpdateSecretVersionStage(input *UpdateSecretVersionStageInput) (*UpdateSecretVersionStageOutput, error) {
- req, out := c.UpdateSecretVersionStageRequest(input)
- return out, req.Send()
- }
- // UpdateSecretVersionStageWithContext is the same as UpdateSecretVersionStage with the addition of
- // the ability to pass a context and additional request options.
- //
- // See UpdateSecretVersionStage for details on how to use this API operation.
- //
- // The context must be non-nil and will be used for request cancellation. If
- // the context is nil a panic will occur. In the future the SDK may create
- // sub-contexts for http.Requests. See https://golang.org/pkg/context/
- // for more information on using Contexts.
- func (c *SecretsManager) UpdateSecretVersionStageWithContext(ctx aws.Context, input *UpdateSecretVersionStageInput, opts ...request.Option) (*UpdateSecretVersionStageOutput, error) {
- req, out := c.UpdateSecretVersionStageRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- type CancelRotateSecretInput struct {
- _ struct{} `type:"structure"`
- // Specifies the secret for which you want to cancel a rotation request. You
- // can specify either the Amazon Resource Name (ARN) or the friendly name of
- // the secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s CancelRotateSecretInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CancelRotateSecretInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *CancelRotateSecretInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CancelRotateSecretInput"}
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetSecretId sets the SecretId field's value.
- func (s *CancelRotateSecretInput) SetSecretId(v string) *CancelRotateSecretInput {
- s.SecretId = &v
- return s
- }
- type CancelRotateSecretOutput struct {
- _ struct{} `type:"structure"`
- // The ARN of the secret for which rotation was canceled.
- ARN *string `min:"20" type:"string"`
- // The friendly name of the secret for which rotation was canceled.
- Name *string `min:"1" type:"string"`
- // The unique identifier of the version of the secret that was created during
- // the rotation. This version might not be complete, and should be evaluated
- // for possible deletion. At the very least, you should remove the VersionStage
- // value AWSPENDING to enable this version to be deleted. Failing to clean up
- // a cancelled rotation can block you from successfully starting future rotations.
- VersionId *string `min:"32" type:"string"`
- }
- // String returns the string representation
- func (s CancelRotateSecretOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CancelRotateSecretOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *CancelRotateSecretOutput) SetARN(v string) *CancelRotateSecretOutput {
- s.ARN = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *CancelRotateSecretOutput) SetName(v string) *CancelRotateSecretOutput {
- s.Name = &v
- return s
- }
- // SetVersionId sets the VersionId field's value.
- func (s *CancelRotateSecretOutput) SetVersionId(v string) *CancelRotateSecretOutput {
- s.VersionId = &v
- return s
- }
- type CreateSecretInput struct {
- _ struct{} `type:"structure"`
- // (Optional) If you include SecretString or SecretBinary, then an initial version
- // is created as part of the secret, and this parameter specifies a unique identifier
- // for the new version.
- //
- // If you use the AWS CLI or one of the AWS SDK to call this operation, then
- // you can leave this parameter empty. The CLI or SDK generates a random UUID
- // for you and includes it as the value for this parameter in the request. If
- // you don't use the SDK and instead generate a raw HTTP request to the Secrets
- // Manager service endpoint, then you must generate a ClientRequestToken yourself
- // for the new version and include that value in the request.
- //
- // This value helps ensure idempotency. Secrets Manager uses this value to prevent
- // the accidental creation of duplicate versions if there are failures and retries
- // during a rotation. We recommend that you generate a UUID-type (https://wikipedia.org/wiki/Universally_unique_identifier)
- // value to ensure uniqueness of your versions within the specified secret.
- //
- // * If the ClientRequestToken value isn't already associated with a version
- // of the secret then a new version of the secret is created.
- //
- // * If a version with this value already exists and that version's SecretString
- // and SecretBinary values are the same as those in the request, then the
- // request is ignored (the operation is idempotent).
- //
- // * If a version with this value already exists and that version's SecretString
- // and SecretBinary values are different from those in the request then the
- // request fails because you cannot modify an existing version. Instead,
- // use PutSecretValue to create a new version.
- //
- // This value becomes the VersionId of the new version.
- ClientRequestToken *string `min:"32" type:"string" idempotencyToken:"true"`
- // (Optional) Specifies a user-provided description of the secret.
- Description *string `type:"string"`
- // (Optional) Specifies the ARN, Key ID, or alias of the AWS KMS customer master
- // key (CMK) to be used to encrypt the SecretString or SecretBinary values in
- // the versions stored in this secret.
- //
- // You can specify any of the supported ways to identify a AWS KMS key ID. If
- // you need to reference a CMK in a different account, you can use only the
- // key ARN or the alias ARN.
- //
- // If you don't specify this value, then Secrets Manager defaults to using the
- // AWS account's default CMK (the one named aws/secretsmanager). If a AWS KMS
- // CMK with that name doesn't yet exist, then Secrets Manager creates it for
- // you automatically the first time it needs to encrypt a version's SecretString
- // or SecretBinary fields.
- //
- // You can use the account's default CMK to encrypt and decrypt only if you
- // call this operation using credentials from the same account that owns the
- // secret. If the secret is in a different account, then you must create a custom
- // CMK and specify the ARN in this field.
- KmsKeyId *string `type:"string"`
- // Specifies the friendly name of the new secret.
- //
- // The secret name must be ASCII letters, digits, or the following characters
- // : /_+=.@-
- //
- // Don't end your secret name with a hyphen followed by six characters. If you
- // do so, you risk confusion and unexpected results when searching for a secret
- // by partial ARN. This is because Secrets Manager automatically adds a hyphen
- // and six random characters at the end of the ARN.
- //
- // Name is a required field
- Name *string `min:"1" type:"string" required:"true"`
- // (Optional) Specifies binary data that you want to encrypt and store in the
- // new version of the secret. To use this parameter in the command-line tools,
- // we recommend that you store your binary data in a file and then use the appropriate
- // technique for your tool to pass the contents of the file as a parameter.
- //
- // Either SecretString or SecretBinary must have a value, but not both. They
- // cannot both be empty.
- //
- // This parameter is not available using the Secrets Manager console. It can
- // be accessed only by using the AWS CLI or one of the AWS SDKs.
- //
- // SecretBinary is automatically base64 encoded/decoded by the SDK.
- SecretBinary []byte `type:"blob" sensitive:"true"`
- // (Optional) Specifies text data that you want to encrypt and store in this
- // new version of the secret.
- //
- // Either SecretString or SecretBinary must have a value, but not both. They
- // cannot both be empty.
- //
- // If you create a secret by using the Secrets Manager console then Secrets
- // Manager puts the protected secret text in only the SecretString parameter.
- // The Secrets Manager console stores the information as a JSON structure of
- // key/value pairs that the Lambda rotation function knows how to parse.
- //
- // For storing multiple values, we recommend that you use a JSON text string
- // argument and specify key/value pairs. For information on how to format a
- // JSON parameter for the various command line tool environments, see Using
- // JSON for Parameters (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json)
- // in the AWS CLI User Guide. For example:
- //
- // [{"username":"bob"},{"password":"abc123xyz456"}]
- //
- // If your command-line tool or SDK requires quotation marks around the parameter,
- // you should use single quotes to avoid confusion with the double quotes required
- // in the JSON text.
- SecretString *string `type:"string" sensitive:"true"`
- // (Optional) Specifies a list of user-defined tags that are attached to the
- // secret. Each tag is a "Key" and "Value" pair of strings. This operation only
- // appends tags to the existing list of tags. To remove tags, you must use UntagResource.
- //
- // Secrets Manager tag key names are case sensitive. A tag with the key "ABC"
- // is a different tag from one with key "abc".
- //
- // If you check tags in IAM policy Condition elements as part of your security
- // strategy, then adding or removing a tag can change permissions. If the successful
- // completion of this operation would result in you losing your permissions
- // for this secret, then this operation is blocked and returns an Access Denied
- // error.
- //
- // This parameter requires a JSON text string argument. For information on how
- // to format a JSON parameter for the various command line tool environments,
- // see Using JSON for Parameters (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json)
- // in the AWS CLI User Guide. For example:
- //
- // [{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}]
- //
- // If your command-line tool or SDK requires quotation marks around the parameter,
- // you should use single quotes to avoid confusion with the double quotes required
- // in the JSON text.
- //
- // The following basic restrictions apply to tags:
- //
- // * Maximum number of tags per secret—50
- //
- // * Maximum key length—127 Unicode characters in UTF-8
- //
- // * Maximum value length—255 Unicode characters in UTF-8
- //
- // * Tag keys and values are case sensitive.
- //
- // * Do not use the aws: prefix in your tag names or values because it is
- // reserved for AWS use. You can't edit or delete tag names or values with
- // this prefix. Tags with this prefix do not count against your tags per
- // secret limit.
- //
- // * If your tagging schema will be used across multiple services and resources,
- // remember that other services might have restrictions on allowed characters.
- // Generally allowed characters are: letters, spaces, and numbers representable
- // in UTF-8, plus the following special characters: + - = . _ : / @.
- Tags []*Tag `type:"list"`
- }
- // String returns the string representation
- func (s CreateSecretInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateSecretInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *CreateSecretInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateSecretInput"}
- if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 32 {
- invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 32))
- }
- if s.Name == nil {
- invalidParams.Add(request.NewErrParamRequired("Name"))
- }
- if s.Name != nil && len(*s.Name) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Name", 1))
- }
- if s.Tags != nil {
- for i, v := range s.Tags {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
- }
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetClientRequestToken sets the ClientRequestToken field's value.
- func (s *CreateSecretInput) SetClientRequestToken(v string) *CreateSecretInput {
- s.ClientRequestToken = &v
- return s
- }
- // SetDescription sets the Description field's value.
- func (s *CreateSecretInput) SetDescription(v string) *CreateSecretInput {
- s.Description = &v
- return s
- }
- // SetKmsKeyId sets the KmsKeyId field's value.
- func (s *CreateSecretInput) SetKmsKeyId(v string) *CreateSecretInput {
- s.KmsKeyId = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *CreateSecretInput) SetName(v string) *CreateSecretInput {
- s.Name = &v
- return s
- }
- // SetSecretBinary sets the SecretBinary field's value.
- func (s *CreateSecretInput) SetSecretBinary(v []byte) *CreateSecretInput {
- s.SecretBinary = v
- return s
- }
- // SetSecretString sets the SecretString field's value.
- func (s *CreateSecretInput) SetSecretString(v string) *CreateSecretInput {
- s.SecretString = &v
- return s
- }
- // SetTags sets the Tags field's value.
- func (s *CreateSecretInput) SetTags(v []*Tag) *CreateSecretInput {
- s.Tags = v
- return s
- }
- type CreateSecretOutput struct {
- _ struct{} `type:"structure"`
- // The Amazon Resource Name (ARN) of the secret that you just created.
- //
- // Secrets Manager automatically adds several random characters to the name
- // at the end of the ARN when you initially create a secret. This affects only
- // the ARN and not the actual friendly name. This ensures that if you create
- // a new secret with the same name as an old secret that you previously deleted,
- // then users with access to the old secret don't automatically get access to
- // the new secret because the ARNs are different.
- ARN *string `min:"20" type:"string"`
- // The friendly name of the secret that you just created.
- Name *string `min:"1" type:"string"`
- // The unique identifier that's associated with the version of the secret you
- // just created.
- VersionId *string `min:"32" type:"string"`
- }
- // String returns the string representation
- func (s CreateSecretOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateSecretOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *CreateSecretOutput) SetARN(v string) *CreateSecretOutput {
- s.ARN = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *CreateSecretOutput) SetName(v string) *CreateSecretOutput {
- s.Name = &v
- return s
- }
- // SetVersionId sets the VersionId field's value.
- func (s *CreateSecretOutput) SetVersionId(v string) *CreateSecretOutput {
- s.VersionId = &v
- return s
- }
- type DeleteResourcePolicyInput struct {
- _ struct{} `type:"structure"`
- // Specifies the secret that you want to delete the attached resource-based
- // policy for. You can specify either the Amazon Resource Name (ARN) or the
- // friendly name of the secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s DeleteResourcePolicyInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteResourcePolicyInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DeleteResourcePolicyInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteResourcePolicyInput"}
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetSecretId sets the SecretId field's value.
- func (s *DeleteResourcePolicyInput) SetSecretId(v string) *DeleteResourcePolicyInput {
- s.SecretId = &v
- return s
- }
- type DeleteResourcePolicyOutput struct {
- _ struct{} `type:"structure"`
- // The ARN of the secret that the resource-based policy was deleted for.
- ARN *string `min:"20" type:"string"`
- // The friendly name of the secret that the resource-based policy was deleted
- // for.
- Name *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s DeleteResourcePolicyOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteResourcePolicyOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *DeleteResourcePolicyOutput) SetARN(v string) *DeleteResourcePolicyOutput {
- s.ARN = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *DeleteResourcePolicyOutput) SetName(v string) *DeleteResourcePolicyOutput {
- s.Name = &v
- return s
- }
- type DeleteSecretInput struct {
- _ struct{} `type:"structure"`
- // (Optional) Specifies that the secret is to be deleted without any recovery
- // window. You can't use both this parameter and the RecoveryWindowInDays parameter
- // in the same API call.
- //
- // An asynchronous background process performs the actual deletion, so there
- // can be a short delay before the operation completes. If you write code to
- // delete and then immediately recreate a secret with the same name, ensure
- // that your code includes appropriate back off and retry logic.
- //
- // Use this parameter with caution. This parameter causes the operation to skip
- // the normal waiting period before the permanent deletion that AWS would normally
- // impose with the RecoveryWindowInDays parameter. If you delete a secret with
- // the ForceDeleteWithouRecovery parameter, then you have no opportunity to
- // recover the secret. It is permanently lost.
- ForceDeleteWithoutRecovery *bool `type:"boolean"`
- // (Optional) Specifies the number of days that Secrets Manager waits before
- // it can delete the secret. You can't use both this parameter and the ForceDeleteWithoutRecovery
- // parameter in the same API call.
- //
- // This value can range from 7 to 30 days. The default value is 30.
- RecoveryWindowInDays *int64 `type:"long"`
- // Specifies the secret that you want to delete. You can specify either the
- // Amazon Resource Name (ARN) or the friendly name of the secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s DeleteSecretInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteSecretInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DeleteSecretInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteSecretInput"}
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetForceDeleteWithoutRecovery sets the ForceDeleteWithoutRecovery field's value.
- func (s *DeleteSecretInput) SetForceDeleteWithoutRecovery(v bool) *DeleteSecretInput {
- s.ForceDeleteWithoutRecovery = &v
- return s
- }
- // SetRecoveryWindowInDays sets the RecoveryWindowInDays field's value.
- func (s *DeleteSecretInput) SetRecoveryWindowInDays(v int64) *DeleteSecretInput {
- s.RecoveryWindowInDays = &v
- return s
- }
- // SetSecretId sets the SecretId field's value.
- func (s *DeleteSecretInput) SetSecretId(v string) *DeleteSecretInput {
- s.SecretId = &v
- return s
- }
- type DeleteSecretOutput struct {
- _ struct{} `type:"structure"`
- // The ARN of the secret that is now scheduled for deletion.
- ARN *string `min:"20" type:"string"`
- // The date and time after which this secret can be deleted by Secrets Manager
- // and can no longer be restored. This value is the date and time of the delete
- // request plus the number of days specified in RecoveryWindowInDays.
- DeletionDate *time.Time `type:"timestamp"`
- // The friendly name of the secret that is now scheduled for deletion.
- Name *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s DeleteSecretOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteSecretOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *DeleteSecretOutput) SetARN(v string) *DeleteSecretOutput {
- s.ARN = &v
- return s
- }
- // SetDeletionDate sets the DeletionDate field's value.
- func (s *DeleteSecretOutput) SetDeletionDate(v time.Time) *DeleteSecretOutput {
- s.DeletionDate = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *DeleteSecretOutput) SetName(v string) *DeleteSecretOutput {
- s.Name = &v
- return s
- }
- type DescribeSecretInput struct {
- _ struct{} `type:"structure"`
- // The identifier of the secret whose details you want to retrieve. You can
- // specify either the Amazon Resource Name (ARN) or the friendly name of the
- // secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s DescribeSecretInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DescribeSecretInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DescribeSecretInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DescribeSecretInput"}
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetSecretId sets the SecretId field's value.
- func (s *DescribeSecretInput) SetSecretId(v string) *DescribeSecretInput {
- s.SecretId = &v
- return s
- }
- type DescribeSecretOutput struct {
- _ struct{} `type:"structure"`
- // The ARN of the secret.
- ARN *string `min:"20" type:"string"`
- // This value exists if the secret is scheduled for deletion. Some time after
- // the specified date and time, Secrets Manager deletes the secret and all of
- // its versions.
- //
- // If a secret is scheduled for deletion, then its details, including the encrypted
- // secret information, is not accessible. To cancel a scheduled deletion and
- // restore access, use RestoreSecret.
- DeletedDate *time.Time `type:"timestamp"`
- // The user-provided description of the secret.
- Description *string `type:"string"`
- // The ARN or alias of the AWS KMS customer master key (CMK) that's used to
- // encrypt the SecretString or SecretBinary fields in each version of the secret.
- // If you don't provide a key, then Secrets Manager defaults to encrypting the
- // secret fields with the default AWS KMS CMK (the one named awssecretsmanager)
- // for this account.
- KmsKeyId *string `type:"string"`
- // The last date that this secret was accessed. This value is truncated to midnight
- // of the date and therefore shows only the date, not the time.
- LastAccessedDate *time.Time `type:"timestamp"`
- // The last date and time that this secret was modified in any way.
- LastChangedDate *time.Time `type:"timestamp"`
- // The most recent date and time that the Secrets Manager rotation process was
- // successfully completed. This value is null if the secret has never rotated.
- LastRotatedDate *time.Time `type:"timestamp"`
- // The user-provided friendly name of the secret.
- Name *string `min:"1" type:"string"`
- // Specifies whether automatic rotation is enabled for this secret.
- //
- // To enable rotation, use RotateSecret with AutomaticallyRotateAfterDays set
- // to a value greater than 0. To disable rotation, use CancelRotateSecret.
- RotationEnabled *bool `type:"boolean"`
- // The ARN of a Lambda function that's invoked by Secrets Manager to rotate
- // the secret either automatically per the schedule or manually by a call to
- // RotateSecret.
- RotationLambdaARN *string `type:"string"`
- // A structure that contains the rotation configuration for this secret.
- RotationRules *RotationRulesType `type:"structure"`
- // The list of user-defined tags that are associated with the secret. To add
- // tags to a secret, use TagResource. To remove tags, use UntagResource.
- Tags []*Tag `type:"list"`
- // A list of all of the currently assigned VersionStage staging labels and the
- // VersionId that each is attached to. Staging labels are used to keep track
- // of the different versions during the rotation process.
- //
- // A version that does not have any staging labels attached is considered deprecated
- // and subject to deletion. Such versions are not included in this list.
- VersionIdsToStages map[string][]*string `type:"map"`
- }
- // String returns the string representation
- func (s DescribeSecretOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DescribeSecretOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *DescribeSecretOutput) SetARN(v string) *DescribeSecretOutput {
- s.ARN = &v
- return s
- }
- // SetDeletedDate sets the DeletedDate field's value.
- func (s *DescribeSecretOutput) SetDeletedDate(v time.Time) *DescribeSecretOutput {
- s.DeletedDate = &v
- return s
- }
- // SetDescription sets the Description field's value.
- func (s *DescribeSecretOutput) SetDescription(v string) *DescribeSecretOutput {
- s.Description = &v
- return s
- }
- // SetKmsKeyId sets the KmsKeyId field's value.
- func (s *DescribeSecretOutput) SetKmsKeyId(v string) *DescribeSecretOutput {
- s.KmsKeyId = &v
- return s
- }
- // SetLastAccessedDate sets the LastAccessedDate field's value.
- func (s *DescribeSecretOutput) SetLastAccessedDate(v time.Time) *DescribeSecretOutput {
- s.LastAccessedDate = &v
- return s
- }
- // SetLastChangedDate sets the LastChangedDate field's value.
- func (s *DescribeSecretOutput) SetLastChangedDate(v time.Time) *DescribeSecretOutput {
- s.LastChangedDate = &v
- return s
- }
- // SetLastRotatedDate sets the LastRotatedDate field's value.
- func (s *DescribeSecretOutput) SetLastRotatedDate(v time.Time) *DescribeSecretOutput {
- s.LastRotatedDate = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *DescribeSecretOutput) SetName(v string) *DescribeSecretOutput {
- s.Name = &v
- return s
- }
- // SetRotationEnabled sets the RotationEnabled field's value.
- func (s *DescribeSecretOutput) SetRotationEnabled(v bool) *DescribeSecretOutput {
- s.RotationEnabled = &v
- return s
- }
- // SetRotationLambdaARN sets the RotationLambdaARN field's value.
- func (s *DescribeSecretOutput) SetRotationLambdaARN(v string) *DescribeSecretOutput {
- s.RotationLambdaARN = &v
- return s
- }
- // SetRotationRules sets the RotationRules field's value.
- func (s *DescribeSecretOutput) SetRotationRules(v *RotationRulesType) *DescribeSecretOutput {
- s.RotationRules = v
- return s
- }
- // SetTags sets the Tags field's value.
- func (s *DescribeSecretOutput) SetTags(v []*Tag) *DescribeSecretOutput {
- s.Tags = v
- return s
- }
- // SetVersionIdsToStages sets the VersionIdsToStages field's value.
- func (s *DescribeSecretOutput) SetVersionIdsToStages(v map[string][]*string) *DescribeSecretOutput {
- s.VersionIdsToStages = v
- return s
- }
- type GetRandomPasswordInput struct {
- _ struct{} `type:"structure"`
- // A string that includes characters that should not be included in the generated
- // password. The default is that all characters from the included sets can be
- // used.
- ExcludeCharacters *string `type:"string"`
- // Specifies that the generated password should not include lowercase letters.
- // The default if you do not include this switch parameter is that lowercase
- // letters can be included.
- ExcludeLowercase *bool `type:"boolean"`
- // Specifies that the generated password should not include digits. The default
- // if you do not include this switch parameter is that digits can be included.
- ExcludeNumbers *bool `type:"boolean"`
- // Specifies that the generated password should not include punctuation characters.
- // The default if you do not include this switch parameter is that punctuation
- // characters can be included.
- //
- // The following are the punctuation characters that can be included in the
- // generated password if you don't explicitly exclude them with ExcludeCharacters
- // or ExcludePunctuation:
- //
- // ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
- ExcludePunctuation *bool `type:"boolean"`
- // Specifies that the generated password should not include uppercase letters.
- // The default if you do not include this switch parameter is that uppercase
- // letters can be included.
- ExcludeUppercase *bool `type:"boolean"`
- // Specifies that the generated password can include the space character. The
- // default if you do not include this switch parameter is that the space character
- // is not included.
- IncludeSpace *bool `type:"boolean"`
- // The desired length of the generated password. The default value if you do
- // not include this parameter is 32 characters.
- PasswordLength *int64 `min:"1" type:"long"`
- // A boolean value that specifies whether the generated password must include
- // at least one of every allowed character type. The default value is True and
- // the operation requires at least one of every character type.
- RequireEachIncludedType *bool `type:"boolean"`
- }
- // String returns the string representation
- func (s GetRandomPasswordInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetRandomPasswordInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *GetRandomPasswordInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetRandomPasswordInput"}
- if s.PasswordLength != nil && *s.PasswordLength < 1 {
- invalidParams.Add(request.NewErrParamMinValue("PasswordLength", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetExcludeCharacters sets the ExcludeCharacters field's value.
- func (s *GetRandomPasswordInput) SetExcludeCharacters(v string) *GetRandomPasswordInput {
- s.ExcludeCharacters = &v
- return s
- }
- // SetExcludeLowercase sets the ExcludeLowercase field's value.
- func (s *GetRandomPasswordInput) SetExcludeLowercase(v bool) *GetRandomPasswordInput {
- s.ExcludeLowercase = &v
- return s
- }
- // SetExcludeNumbers sets the ExcludeNumbers field's value.
- func (s *GetRandomPasswordInput) SetExcludeNumbers(v bool) *GetRandomPasswordInput {
- s.ExcludeNumbers = &v
- return s
- }
- // SetExcludePunctuation sets the ExcludePunctuation field's value.
- func (s *GetRandomPasswordInput) SetExcludePunctuation(v bool) *GetRandomPasswordInput {
- s.ExcludePunctuation = &v
- return s
- }
- // SetExcludeUppercase sets the ExcludeUppercase field's value.
- func (s *GetRandomPasswordInput) SetExcludeUppercase(v bool) *GetRandomPasswordInput {
- s.ExcludeUppercase = &v
- return s
- }
- // SetIncludeSpace sets the IncludeSpace field's value.
- func (s *GetRandomPasswordInput) SetIncludeSpace(v bool) *GetRandomPasswordInput {
- s.IncludeSpace = &v
- return s
- }
- // SetPasswordLength sets the PasswordLength field's value.
- func (s *GetRandomPasswordInput) SetPasswordLength(v int64) *GetRandomPasswordInput {
- s.PasswordLength = &v
- return s
- }
- // SetRequireEachIncludedType sets the RequireEachIncludedType field's value.
- func (s *GetRandomPasswordInput) SetRequireEachIncludedType(v bool) *GetRandomPasswordInput {
- s.RequireEachIncludedType = &v
- return s
- }
- type GetRandomPasswordOutput struct {
- _ struct{} `type:"structure"`
- // A string with the generated password.
- RandomPassword *string `type:"string"`
- }
- // String returns the string representation
- func (s GetRandomPasswordOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetRandomPasswordOutput) GoString() string {
- return s.String()
- }
- // SetRandomPassword sets the RandomPassword field's value.
- func (s *GetRandomPasswordOutput) SetRandomPassword(v string) *GetRandomPasswordOutput {
- s.RandomPassword = &v
- return s
- }
- type GetResourcePolicyInput struct {
- _ struct{} `type:"structure"`
- // Specifies the secret that you want to retrieve the attached resource-based
- // policy for. You can specify either the Amazon Resource Name (ARN) or the
- // friendly name of the secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s GetResourcePolicyInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetResourcePolicyInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *GetResourcePolicyInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetResourcePolicyInput"}
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetSecretId sets the SecretId field's value.
- func (s *GetResourcePolicyInput) SetSecretId(v string) *GetResourcePolicyInput {
- s.SecretId = &v
- return s
- }
- type GetResourcePolicyOutput struct {
- _ struct{} `type:"structure"`
- // The ARN of the secret that the resource-based policy was retrieved for.
- ARN *string `min:"20" type:"string"`
- // The friendly name of the secret that the resource-based policy was retrieved
- // for.
- Name *string `min:"1" type:"string"`
- // A JSON-formatted string that describes the permissions that are associated
- // with the attached secret. These permissions are combined with any permissions
- // that are associated with the user or role that attempts to access this secret.
- // The combined permissions specify who can access the secret and what actions
- // they can perform. For more information, see Authentication and Access Control
- // for AWS Secrets Manager (http://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html)
- // in the AWS Secrets Manager User Guide.
- ResourcePolicy *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s GetResourcePolicyOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetResourcePolicyOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *GetResourcePolicyOutput) SetARN(v string) *GetResourcePolicyOutput {
- s.ARN = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *GetResourcePolicyOutput) SetName(v string) *GetResourcePolicyOutput {
- s.Name = &v
- return s
- }
- // SetResourcePolicy sets the ResourcePolicy field's value.
- func (s *GetResourcePolicyOutput) SetResourcePolicy(v string) *GetResourcePolicyOutput {
- s.ResourcePolicy = &v
- return s
- }
- type GetSecretValueInput struct {
- _ struct{} `type:"structure"`
- // Specifies the secret containing the version that you want to retrieve. You
- // can specify either the Amazon Resource Name (ARN) or the friendly name of
- // the secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- // Specifies the unique identifier of the version of the secret that you want
- // to retrieve. If you specify this parameter then don't specify VersionStage.
- // If you don't specify either a VersionStage or VersionId then the default
- // is to perform the operation on the version with the VersionStage value of
- // AWSCURRENT.
- //
- // This value is typically a UUID-type (https://wikipedia.org/wiki/Universally_unique_identifier)
- // value with 32 hexadecimal digits.
- VersionId *string `min:"32" type:"string"`
- // Specifies the secret version that you want to retrieve by the staging label
- // attached to the version.
- //
- // Staging labels are used to keep track of different versions during the rotation
- // process. If you use this parameter then don't specify VersionId. If you don't
- // specify either a VersionStage or VersionId, then the default is to perform
- // the operation on the version with the VersionStage value of AWSCURRENT.
- VersionStage *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s GetSecretValueInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetSecretValueInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *GetSecretValueInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetSecretValueInput"}
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if s.VersionId != nil && len(*s.VersionId) < 32 {
- invalidParams.Add(request.NewErrParamMinLen("VersionId", 32))
- }
- if s.VersionStage != nil && len(*s.VersionStage) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("VersionStage", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetSecretId sets the SecretId field's value.
- func (s *GetSecretValueInput) SetSecretId(v string) *GetSecretValueInput {
- s.SecretId = &v
- return s
- }
- // SetVersionId sets the VersionId field's value.
- func (s *GetSecretValueInput) SetVersionId(v string) *GetSecretValueInput {
- s.VersionId = &v
- return s
- }
- // SetVersionStage sets the VersionStage field's value.
- func (s *GetSecretValueInput) SetVersionStage(v string) *GetSecretValueInput {
- s.VersionStage = &v
- return s
- }
- type GetSecretValueOutput struct {
- _ struct{} `type:"structure"`
- // The ARN of the secret.
- ARN *string `min:"20" type:"string"`
- // The date and time that this version of the secret was created.
- CreatedDate *time.Time `type:"timestamp"`
- // The friendly name of the secret.
- Name *string `min:"1" type:"string"`
- // The decrypted part of the protected secret information that was originally
- // provided as binary data in the form of a byte array. The response parameter
- // represents the binary data as a base64-encoded (https://tools.ietf.org/html/rfc4648#section-4)
- // string.
- //
- // This parameter is not used if the secret is created by the Secrets Manager
- // console.
- //
- // If you store custom information in this field of the secret, then you must
- // code your Lambda rotation function to parse and interpret whatever you store
- // in the SecretString or SecretBinary fields.
- //
- // SecretBinary is automatically base64 encoded/decoded by the SDK.
- SecretBinary []byte `type:"blob" sensitive:"true"`
- // The decrypted part of the protected secret information that was originally
- // provided as a string.
- //
- // If you create this secret by using the Secrets Manager console then only
- // the SecretString parameter contains data. Secrets Manager stores the information
- // as a JSON structure of key/value pairs that the Lambda rotation function
- // knows how to parse.
- //
- // If you store custom information in the secret by using the CreateSecret,
- // UpdateSecret, or PutSecretValue API operations instead of the Secrets Manager
- // console, or by using the Other secret type in the console, then you must
- // code your Lambda rotation function to parse and interpret those values.
- SecretString *string `type:"string" sensitive:"true"`
- // The unique identifier of this version of the secret.
- VersionId *string `min:"32" type:"string"`
- // A list of all of the staging labels currently attached to this version of
- // the secret.
- VersionStages []*string `min:"1" type:"list"`
- }
- // String returns the string representation
- func (s GetSecretValueOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetSecretValueOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *GetSecretValueOutput) SetARN(v string) *GetSecretValueOutput {
- s.ARN = &v
- return s
- }
- // SetCreatedDate sets the CreatedDate field's value.
- func (s *GetSecretValueOutput) SetCreatedDate(v time.Time) *GetSecretValueOutput {
- s.CreatedDate = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *GetSecretValueOutput) SetName(v string) *GetSecretValueOutput {
- s.Name = &v
- return s
- }
- // SetSecretBinary sets the SecretBinary field's value.
- func (s *GetSecretValueOutput) SetSecretBinary(v []byte) *GetSecretValueOutput {
- s.SecretBinary = v
- return s
- }
- // SetSecretString sets the SecretString field's value.
- func (s *GetSecretValueOutput) SetSecretString(v string) *GetSecretValueOutput {
- s.SecretString = &v
- return s
- }
- // SetVersionId sets the VersionId field's value.
- func (s *GetSecretValueOutput) SetVersionId(v string) *GetSecretValueOutput {
- s.VersionId = &v
- return s
- }
- // SetVersionStages sets the VersionStages field's value.
- func (s *GetSecretValueOutput) SetVersionStages(v []*string) *GetSecretValueOutput {
- s.VersionStages = v
- return s
- }
- type ListSecretVersionIdsInput struct {
- _ struct{} `type:"structure"`
- // (Optional) Specifies that you want the results to include versions that do
- // not have any staging labels attached to them. Such versions are considered
- // deprecated and are subject to deletion by Secrets Manager as needed.
- IncludeDeprecated *bool `type:"boolean"`
- // (Optional) Limits the number of results that you want to include in the response.
- // If you don't include this parameter, it defaults to a value that's specific
- // to the operation. If additional items exist beyond the maximum you specify,
- // the NextToken response element is present and has a value (isn't null). Include
- // that value as the NextToken request parameter in the next call to the operation
- // to get the next part of the results. Note that Secrets Manager might return
- // fewer results than the maximum even when there are more results available.
- // You should check NextToken after every operation to ensure that you receive
- // all of the results.
- MaxResults *int64 `min:"1" type:"integer"`
- // (Optional) Use this parameter in a request if you receive a NextToken response
- // in a previous request that indicates that there's more output available.
- // In a subsequent call, set it to the value of the previous call's NextToken
- // response to indicate where the output should continue from.
- NextToken *string `min:"1" type:"string"`
- // The identifier for the secret containing the versions you want to list. You
- // can specify either the Amazon Resource Name (ARN) or the friendly name of
- // the secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s ListSecretVersionIdsInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListSecretVersionIdsInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ListSecretVersionIdsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ListSecretVersionIdsInput"}
- if s.MaxResults != nil && *s.MaxResults < 1 {
- invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
- }
- if s.NextToken != nil && len(*s.NextToken) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
- }
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetIncludeDeprecated sets the IncludeDeprecated field's value.
- func (s *ListSecretVersionIdsInput) SetIncludeDeprecated(v bool) *ListSecretVersionIdsInput {
- s.IncludeDeprecated = &v
- return s
- }
- // SetMaxResults sets the MaxResults field's value.
- func (s *ListSecretVersionIdsInput) SetMaxResults(v int64) *ListSecretVersionIdsInput {
- s.MaxResults = &v
- return s
- }
- // SetNextToken sets the NextToken field's value.
- func (s *ListSecretVersionIdsInput) SetNextToken(v string) *ListSecretVersionIdsInput {
- s.NextToken = &v
- return s
- }
- // SetSecretId sets the SecretId field's value.
- func (s *ListSecretVersionIdsInput) SetSecretId(v string) *ListSecretVersionIdsInput {
- s.SecretId = &v
- return s
- }
- type ListSecretVersionIdsOutput struct {
- _ struct{} `type:"structure"`
- // The Amazon Resource Name (ARN) for the secret.
- //
- // Secrets Manager automatically adds several random characters to the name
- // at the end of the ARN when you initially create a secret. This affects only
- // the ARN and not the actual friendly name. This ensures that if you create
- // a new secret with the same name as an old secret that you previously deleted,
- // then users with access to the old secret don't automatically get access to
- // the new secret because the ARNs are different.
- ARN *string `min:"20" type:"string"`
- // The friendly name of the secret.
- Name *string `min:"1" type:"string"`
- // If present in the response, this value indicates that there's more output
- // available than what's included in the current response. This can occur even
- // when the response includes no values at all, such as when you ask for a filtered
- // view of a very long list. Use this value in the NextToken request parameter
- // in a subsequent call to the operation to continue processing and get the
- // next part of the output. You should repeat this until the NextToken response
- // element comes back empty (as null).
- NextToken *string `min:"1" type:"string"`
- // The list of the currently available versions of the specified secret.
- Versions []*SecretVersionsListEntry `type:"list"`
- }
- // String returns the string representation
- func (s ListSecretVersionIdsOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListSecretVersionIdsOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *ListSecretVersionIdsOutput) SetARN(v string) *ListSecretVersionIdsOutput {
- s.ARN = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *ListSecretVersionIdsOutput) SetName(v string) *ListSecretVersionIdsOutput {
- s.Name = &v
- return s
- }
- // SetNextToken sets the NextToken field's value.
- func (s *ListSecretVersionIdsOutput) SetNextToken(v string) *ListSecretVersionIdsOutput {
- s.NextToken = &v
- return s
- }
- // SetVersions sets the Versions field's value.
- func (s *ListSecretVersionIdsOutput) SetVersions(v []*SecretVersionsListEntry) *ListSecretVersionIdsOutput {
- s.Versions = v
- return s
- }
- type ListSecretsInput struct {
- _ struct{} `type:"structure"`
- // (Optional) Limits the number of results that you want to include in the response.
- // If you don't include this parameter, it defaults to a value that's specific
- // to the operation. If additional items exist beyond the maximum you specify,
- // the NextToken response element is present and has a value (isn't null). Include
- // that value as the NextToken request parameter in the next call to the operation
- // to get the next part of the results. Note that Secrets Manager might return
- // fewer results than the maximum even when there are more results available.
- // You should check NextToken after every operation to ensure that you receive
- // all of the results.
- MaxResults *int64 `min:"1" type:"integer"`
- // (Optional) Use this parameter in a request if you receive a NextToken response
- // in a previous request that indicates that there's more output available.
- // In a subsequent call, set it to the value of the previous call's NextToken
- // response to indicate where the output should continue from.
- NextToken *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s ListSecretsInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListSecretsInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ListSecretsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ListSecretsInput"}
- if s.MaxResults != nil && *s.MaxResults < 1 {
- invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
- }
- if s.NextToken != nil && len(*s.NextToken) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetMaxResults sets the MaxResults field's value.
- func (s *ListSecretsInput) SetMaxResults(v int64) *ListSecretsInput {
- s.MaxResults = &v
- return s
- }
- // SetNextToken sets the NextToken field's value.
- func (s *ListSecretsInput) SetNextToken(v string) *ListSecretsInput {
- s.NextToken = &v
- return s
- }
- type ListSecretsOutput struct {
- _ struct{} `type:"structure"`
- // If present in the response, this value indicates that there's more output
- // available than what's included in the current response. This can occur even
- // when the response includes no values at all, such as when you ask for a filtered
- // view of a very long list. Use this value in the NextToken request parameter
- // in a subsequent call to the operation to continue processing and get the
- // next part of the output. You should repeat this until the NextToken response
- // element comes back empty (as null).
- NextToken *string `min:"1" type:"string"`
- // A list of the secrets in the account.
- SecretList []*SecretListEntry `type:"list"`
- }
- // String returns the string representation
- func (s ListSecretsOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListSecretsOutput) GoString() string {
- return s.String()
- }
- // SetNextToken sets the NextToken field's value.
- func (s *ListSecretsOutput) SetNextToken(v string) *ListSecretsOutput {
- s.NextToken = &v
- return s
- }
- // SetSecretList sets the SecretList field's value.
- func (s *ListSecretsOutput) SetSecretList(v []*SecretListEntry) *ListSecretsOutput {
- s.SecretList = v
- return s
- }
- type PutResourcePolicyInput struct {
- _ struct{} `type:"structure"`
- // A JSON-formatted string that's constructed according to the grammar and syntax
- // for an AWS resource-based policy. The policy in the string identifies who
- // can access or manage this secret and its versions. For information on how
- // to format a JSON parameter for the various command line tool environments,
- // see Using JSON for Parameters (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json)
- // in the AWS CLI User Guide.
- //
- // ResourcePolicy is a required field
- ResourcePolicy *string `min:"1" type:"string" required:"true"`
- // Specifies the secret that you want to attach the resource-based policy to.
- // You can specify either the ARN or the friendly name of the secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s PutResourcePolicyInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutResourcePolicyInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *PutResourcePolicyInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "PutResourcePolicyInput"}
- if s.ResourcePolicy == nil {
- invalidParams.Add(request.NewErrParamRequired("ResourcePolicy"))
- }
- if s.ResourcePolicy != nil && len(*s.ResourcePolicy) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("ResourcePolicy", 1))
- }
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetResourcePolicy sets the ResourcePolicy field's value.
- func (s *PutResourcePolicyInput) SetResourcePolicy(v string) *PutResourcePolicyInput {
- s.ResourcePolicy = &v
- return s
- }
- // SetSecretId sets the SecretId field's value.
- func (s *PutResourcePolicyInput) SetSecretId(v string) *PutResourcePolicyInput {
- s.SecretId = &v
- return s
- }
- type PutResourcePolicyOutput struct {
- _ struct{} `type:"structure"`
- // The ARN of the secret that the resource-based policy was retrieved for.
- ARN *string `min:"20" type:"string"`
- // The friendly name of the secret that the resource-based policy was retrieved
- // for.
- Name *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s PutResourcePolicyOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutResourcePolicyOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *PutResourcePolicyOutput) SetARN(v string) *PutResourcePolicyOutput {
- s.ARN = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *PutResourcePolicyOutput) SetName(v string) *PutResourcePolicyOutput {
- s.Name = &v
- return s
- }
- type PutSecretValueInput struct {
- _ struct{} `type:"structure"`
- // (Optional) Specifies a unique identifier for the new version of the secret.
- //
- // If you use the AWS CLI or one of the AWS SDK to call this operation, then
- // you can leave this parameter empty. The CLI or SDK generates a random UUID
- // for you and includes that in the request. If you don't use the SDK and instead
- // generate a raw HTTP request to the Secrets Manager service endpoint, then
- // you must generate a ClientRequestToken yourself for new versions and include
- // that value in the request.
- //
- // This value helps ensure idempotency. Secrets Manager uses this value to prevent
- // the accidental creation of duplicate versions if there are failures and retries
- // during the Lambda rotation function's processing. We recommend that you generate
- // a UUID-type (https://wikipedia.org/wiki/Universally_unique_identifier) value
- // to ensure uniqueness within the specified secret.
- //
- // * If the ClientRequestToken value isn't already associated with a version
- // of the secret then a new version of the secret is created.
- //
- // * If a version with this value already exists and that version's SecretString
- // or SecretBinary values are the same as those in the request then the request
- // is ignored (the operation is idempotent).
- //
- // * If a version with this value already exists and that version's SecretString
- // and SecretBinary values are different from those in the request then the
- // request fails because you cannot modify an existing secret version. You
- // can only create new versions to store new secret values.
- //
- // This value becomes the VersionId of the new version.
- ClientRequestToken *string `min:"32" type:"string" idempotencyToken:"true"`
- // (Optional) Specifies binary data that you want to encrypt and store in the
- // new version of the secret. To use this parameter in the command-line tools,
- // we recommend that you store your binary data in a file and then use the appropriate
- // technique for your tool to pass the contents of the file as a parameter.
- // Either SecretBinary or SecretString must have a value, but not both. They
- // cannot both be empty.
- //
- // This parameter is not accessible if the secret using the Secrets Manager
- // console.
- //
- // SecretBinary is automatically base64 encoded/decoded by the SDK.
- SecretBinary []byte `type:"blob" sensitive:"true"`
- // Specifies the secret to which you want to add a new version. You can specify
- // either the Amazon Resource Name (ARN) or the friendly name of the secret.
- // The secret must already exist.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- // (Optional) Specifies text data that you want to encrypt and store in this
- // new version of the secret. Either SecretString or SecretBinary must have
- // a value, but not both. They cannot both be empty.
- //
- // If you create this secret by using the Secrets Manager console then Secrets
- // Manager puts the protected secret text in only the SecretString parameter.
- // The Secrets Manager console stores the information as a JSON structure of
- // key/value pairs that the default Lambda rotation function knows how to parse.
- //
- // For storing multiple values, we recommend that you use a JSON text string
- // argument and specify key/value pairs. For information on how to format a
- // JSON parameter for the various command line tool environments, see Using
- // JSON for Parameters (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json)
- // in the AWS CLI User Guide.
- //
- // For example:
- //
- // [{"username":"bob"},{"password":"abc123xyz456"}]
- //
- // If your command-line tool or SDK requires quotation marks around the parameter,
- // you should use single quotes to avoid confusion with the double quotes required
- // in the JSON text.
- SecretString *string `type:"string" sensitive:"true"`
- // (Optional) Specifies a list of staging labels that are attached to this version
- // of the secret. These staging labels are used to track the versions through
- // the rotation process by the Lambda rotation function.
- //
- // A staging label must be unique to a single version of the secret. If you
- // specify a staging label that's already associated with a different version
- // of the same secret then that staging label is automatically removed from
- // the other version and attached to this version.
- //
- // If you do not specify a value for VersionStages then Secrets Manager automatically
- // moves the staging label AWSCURRENT to this new version.
- VersionStages []*string `min:"1" type:"list"`
- }
- // String returns the string representation
- func (s PutSecretValueInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutSecretValueInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *PutSecretValueInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "PutSecretValueInput"}
- if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 32 {
- invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 32))
- }
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if s.VersionStages != nil && len(s.VersionStages) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("VersionStages", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetClientRequestToken sets the ClientRequestToken field's value.
- func (s *PutSecretValueInput) SetClientRequestToken(v string) *PutSecretValueInput {
- s.ClientRequestToken = &v
- return s
- }
- // SetSecretBinary sets the SecretBinary field's value.
- func (s *PutSecretValueInput) SetSecretBinary(v []byte) *PutSecretValueInput {
- s.SecretBinary = v
- return s
- }
- // SetSecretId sets the SecretId field's value.
- func (s *PutSecretValueInput) SetSecretId(v string) *PutSecretValueInput {
- s.SecretId = &v
- return s
- }
- // SetSecretString sets the SecretString field's value.
- func (s *PutSecretValueInput) SetSecretString(v string) *PutSecretValueInput {
- s.SecretString = &v
- return s
- }
- // SetVersionStages sets the VersionStages field's value.
- func (s *PutSecretValueInput) SetVersionStages(v []*string) *PutSecretValueInput {
- s.VersionStages = v
- return s
- }
- type PutSecretValueOutput struct {
- _ struct{} `type:"structure"`
- // The Amazon Resource Name (ARN) for the secret for which you just created
- // a version.
- ARN *string `min:"20" type:"string"`
- // The friendly name of the secret for which you just created or updated a version.
- Name *string `min:"1" type:"string"`
- // The unique identifier of the version of the secret you just created or updated.
- VersionId *string `min:"32" type:"string"`
- // The list of staging labels that are currently attached to this version of
- // the secret. Staging labels are used to track a version as it progresses through
- // the secret rotation process.
- VersionStages []*string `min:"1" type:"list"`
- }
- // String returns the string representation
- func (s PutSecretValueOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutSecretValueOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *PutSecretValueOutput) SetARN(v string) *PutSecretValueOutput {
- s.ARN = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *PutSecretValueOutput) SetName(v string) *PutSecretValueOutput {
- s.Name = &v
- return s
- }
- // SetVersionId sets the VersionId field's value.
- func (s *PutSecretValueOutput) SetVersionId(v string) *PutSecretValueOutput {
- s.VersionId = &v
- return s
- }
- // SetVersionStages sets the VersionStages field's value.
- func (s *PutSecretValueOutput) SetVersionStages(v []*string) *PutSecretValueOutput {
- s.VersionStages = v
- return s
- }
- type RestoreSecretInput struct {
- _ struct{} `type:"structure"`
- // Specifies the secret that you want to restore from a previously scheduled
- // deletion. You can specify either the Amazon Resource Name (ARN) or the friendly
- // name of the secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s RestoreSecretInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s RestoreSecretInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *RestoreSecretInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "RestoreSecretInput"}
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetSecretId sets the SecretId field's value.
- func (s *RestoreSecretInput) SetSecretId(v string) *RestoreSecretInput {
- s.SecretId = &v
- return s
- }
- type RestoreSecretOutput struct {
- _ struct{} `type:"structure"`
- // The ARN of the secret that was restored.
- ARN *string `min:"20" type:"string"`
- // The friendly name of the secret that was restored.
- Name *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s RestoreSecretOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s RestoreSecretOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *RestoreSecretOutput) SetARN(v string) *RestoreSecretOutput {
- s.ARN = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *RestoreSecretOutput) SetName(v string) *RestoreSecretOutput {
- s.Name = &v
- return s
- }
- type RotateSecretInput struct {
- _ struct{} `type:"structure"`
- // (Optional) Specifies a unique identifier for the new version of the secret
- // that helps ensure idempotency.
- //
- // If you use the AWS CLI or one of the AWS SDK to call this operation, then
- // you can leave this parameter empty. The CLI or SDK generates a random UUID
- // for you and includes that in the request for this parameter. If you don't
- // use the SDK and instead generate a raw HTTP request to the Secrets Manager
- // service endpoint, then you must generate a ClientRequestToken yourself for
- // new versions and include that value in the request.
- //
- // You only need to specify your own value if you are implementing your own
- // retry logic and want to ensure that a given secret is not created twice.
- // We recommend that you generate a UUID-type (https://wikipedia.org/wiki/Universally_unique_identifier)
- // value to ensure uniqueness within the specified secret.
- //
- // Secrets Manager uses this value to prevent the accidental creation of duplicate
- // versions if there are failures and retries during the function's processing.
- // This value becomes the VersionId of the new version.
- ClientRequestToken *string `min:"32" type:"string" idempotencyToken:"true"`
- // (Optional) Specifies the ARN of the Lambda function that can rotate the secret.
- RotationLambdaARN *string `type:"string"`
- // A structure that defines the rotation configuration for this secret.
- RotationRules *RotationRulesType `type:"structure"`
- // Specifies the secret that you want to rotate. You can specify either the
- // Amazon Resource Name (ARN) or the friendly name of the secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s RotateSecretInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s RotateSecretInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *RotateSecretInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "RotateSecretInput"}
- if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 32 {
- invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 32))
- }
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if s.RotationRules != nil {
- if err := s.RotationRules.Validate(); err != nil {
- invalidParams.AddNested("RotationRules", err.(request.ErrInvalidParams))
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetClientRequestToken sets the ClientRequestToken field's value.
- func (s *RotateSecretInput) SetClientRequestToken(v string) *RotateSecretInput {
- s.ClientRequestToken = &v
- return s
- }
- // SetRotationLambdaARN sets the RotationLambdaARN field's value.
- func (s *RotateSecretInput) SetRotationLambdaARN(v string) *RotateSecretInput {
- s.RotationLambdaARN = &v
- return s
- }
- // SetRotationRules sets the RotationRules field's value.
- func (s *RotateSecretInput) SetRotationRules(v *RotationRulesType) *RotateSecretInput {
- s.RotationRules = v
- return s
- }
- // SetSecretId sets the SecretId field's value.
- func (s *RotateSecretInput) SetSecretId(v string) *RotateSecretInput {
- s.SecretId = &v
- return s
- }
- type RotateSecretOutput struct {
- _ struct{} `type:"structure"`
- // The ARN of the secret.
- ARN *string `min:"20" type:"string"`
- // The friendly name of the secret.
- Name *string `min:"1" type:"string"`
- // The ID of the new version of the secret created by the rotation started by
- // this request.
- VersionId *string `min:"32" type:"string"`
- }
- // String returns the string representation
- func (s RotateSecretOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s RotateSecretOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *RotateSecretOutput) SetARN(v string) *RotateSecretOutput {
- s.ARN = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *RotateSecretOutput) SetName(v string) *RotateSecretOutput {
- s.Name = &v
- return s
- }
- // SetVersionId sets the VersionId field's value.
- func (s *RotateSecretOutput) SetVersionId(v string) *RotateSecretOutput {
- s.VersionId = &v
- return s
- }
- // A structure that defines the rotation configuration for the secret.
- type RotationRulesType struct {
- _ struct{} `type:"structure"`
- // Specifies the number of days between automatic scheduled rotations of the
- // secret.
- //
- // Secrets Manager schedules the next rotation when the previous one is complete.
- // Secrets Manager schedules the date by adding the rotation interval (number
- // of days) to the actual date of the last rotation. The service chooses the
- // hour within that 24-hour date window randomly. The minute is also chosen
- // somewhat randomly, but weighted towards the top of the hour and influenced
- // by a variety of factors that help distribute load.
- AutomaticallyAfterDays *int64 `min:"1" type:"long"`
- }
- // String returns the string representation
- func (s RotationRulesType) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s RotationRulesType) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *RotationRulesType) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "RotationRulesType"}
- if s.AutomaticallyAfterDays != nil && *s.AutomaticallyAfterDays < 1 {
- invalidParams.Add(request.NewErrParamMinValue("AutomaticallyAfterDays", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetAutomaticallyAfterDays sets the AutomaticallyAfterDays field's value.
- func (s *RotationRulesType) SetAutomaticallyAfterDays(v int64) *RotationRulesType {
- s.AutomaticallyAfterDays = &v
- return s
- }
- // A structure that contains the details about a secret. It does not include
- // the encrypted SecretString and SecretBinary values. To get those values,
- // use the GetSecretValue operation.
- type SecretListEntry struct {
- _ struct{} `type:"structure"`
- // The Amazon Resource Name (ARN) of the secret.
- //
- // For more information about ARNs in Secrets Manager, see Policy Resources
- // (http://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#iam-resources)
- // in the AWS Secrets Manager User Guide.
- ARN *string `min:"20" type:"string"`
- // The date and time on which this secret was deleted. Not present on active
- // secrets. The secret can be recovered until the number of days in the recovery
- // window has passed, as specified in the RecoveryWindowInDays parameter of
- // the DeleteSecret operation.
- DeletedDate *time.Time `type:"timestamp"`
- // The user-provided description of the secret.
- Description *string `type:"string"`
- // The ARN or alias of the AWS KMS customer master key (CMK) that's used to
- // encrypt the SecretString and SecretBinary fields in each version of the secret.
- // If you don't provide a key, then Secrets Manager defaults to encrypting the
- // secret fields with the default KMS CMK (the one named awssecretsmanager)
- // for this account.
- KmsKeyId *string `type:"string"`
- // The last date that this secret was accessed. This value is truncated to midnight
- // of the date and therefore shows only the date, not the time.
- LastAccessedDate *time.Time `type:"timestamp"`
- // The last date and time that this secret was modified in any way.
- LastChangedDate *time.Time `type:"timestamp"`
- // The last date and time that the rotation process for this secret was invoked.
- LastRotatedDate *time.Time `type:"timestamp"`
- // The friendly name of the secret. You can use forward slashes in the name
- // to represent a path hierarchy. For example, /prod/databases/dbserver1 could
- // represent the secret for a server named dbserver1 in the folder databases
- // in the folder prod.
- Name *string `min:"1" type:"string"`
- // Indicated whether automatic, scheduled rotation is enabled for this secret.
- RotationEnabled *bool `type:"boolean"`
- // The ARN of an AWS Lambda function that's invoked by Secrets Manager to rotate
- // and expire the secret either automatically per the schedule or manually by
- // a call to RotateSecret.
- RotationLambdaARN *string `type:"string"`
- // A structure that defines the rotation configuration for the secret.
- RotationRules *RotationRulesType `type:"structure"`
- // A list of all of the currently assigned SecretVersionStage staging labels
- // and the SecretVersionId that each is attached to. Staging labels are used
- // to keep track of the different versions during the rotation process.
- //
- // A version that does not have any SecretVersionStage is considered deprecated
- // and subject to deletion. Such versions are not included in this list.
- SecretVersionsToStages map[string][]*string `type:"map"`
- // The list of user-defined tags that are associated with the secret. To add
- // tags to a secret, use TagResource. To remove tags, use UntagResource.
- Tags []*Tag `type:"list"`
- }
- // String returns the string representation
- func (s SecretListEntry) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s SecretListEntry) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *SecretListEntry) SetARN(v string) *SecretListEntry {
- s.ARN = &v
- return s
- }
- // SetDeletedDate sets the DeletedDate field's value.
- func (s *SecretListEntry) SetDeletedDate(v time.Time) *SecretListEntry {
- s.DeletedDate = &v
- return s
- }
- // SetDescription sets the Description field's value.
- func (s *SecretListEntry) SetDescription(v string) *SecretListEntry {
- s.Description = &v
- return s
- }
- // SetKmsKeyId sets the KmsKeyId field's value.
- func (s *SecretListEntry) SetKmsKeyId(v string) *SecretListEntry {
- s.KmsKeyId = &v
- return s
- }
- // SetLastAccessedDate sets the LastAccessedDate field's value.
- func (s *SecretListEntry) SetLastAccessedDate(v time.Time) *SecretListEntry {
- s.LastAccessedDate = &v
- return s
- }
- // SetLastChangedDate sets the LastChangedDate field's value.
- func (s *SecretListEntry) SetLastChangedDate(v time.Time) *SecretListEntry {
- s.LastChangedDate = &v
- return s
- }
- // SetLastRotatedDate sets the LastRotatedDate field's value.
- func (s *SecretListEntry) SetLastRotatedDate(v time.Time) *SecretListEntry {
- s.LastRotatedDate = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *SecretListEntry) SetName(v string) *SecretListEntry {
- s.Name = &v
- return s
- }
- // SetRotationEnabled sets the RotationEnabled field's value.
- func (s *SecretListEntry) SetRotationEnabled(v bool) *SecretListEntry {
- s.RotationEnabled = &v
- return s
- }
- // SetRotationLambdaARN sets the RotationLambdaARN field's value.
- func (s *SecretListEntry) SetRotationLambdaARN(v string) *SecretListEntry {
- s.RotationLambdaARN = &v
- return s
- }
- // SetRotationRules sets the RotationRules field's value.
- func (s *SecretListEntry) SetRotationRules(v *RotationRulesType) *SecretListEntry {
- s.RotationRules = v
- return s
- }
- // SetSecretVersionsToStages sets the SecretVersionsToStages field's value.
- func (s *SecretListEntry) SetSecretVersionsToStages(v map[string][]*string) *SecretListEntry {
- s.SecretVersionsToStages = v
- return s
- }
- // SetTags sets the Tags field's value.
- func (s *SecretListEntry) SetTags(v []*Tag) *SecretListEntry {
- s.Tags = v
- return s
- }
- // A structure that contains information about one version of a secret.
- type SecretVersionsListEntry struct {
- _ struct{} `type:"structure"`
- // The date and time this version of the secret was created.
- CreatedDate *time.Time `type:"timestamp"`
- // The date that this version of the secret was last accessed. Note that the
- // resolution of this field is at the date level and does not include the time.
- LastAccessedDate *time.Time `type:"timestamp"`
- // The unique version identifier of this version of the secret.
- VersionId *string `min:"32" type:"string"`
- // An array of staging labels that are currently associated with this version
- // of the secret.
- VersionStages []*string `min:"1" type:"list"`
- }
- // String returns the string representation
- func (s SecretVersionsListEntry) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s SecretVersionsListEntry) GoString() string {
- return s.String()
- }
- // SetCreatedDate sets the CreatedDate field's value.
- func (s *SecretVersionsListEntry) SetCreatedDate(v time.Time) *SecretVersionsListEntry {
- s.CreatedDate = &v
- return s
- }
- // SetLastAccessedDate sets the LastAccessedDate field's value.
- func (s *SecretVersionsListEntry) SetLastAccessedDate(v time.Time) *SecretVersionsListEntry {
- s.LastAccessedDate = &v
- return s
- }
- // SetVersionId sets the VersionId field's value.
- func (s *SecretVersionsListEntry) SetVersionId(v string) *SecretVersionsListEntry {
- s.VersionId = &v
- return s
- }
- // SetVersionStages sets the VersionStages field's value.
- func (s *SecretVersionsListEntry) SetVersionStages(v []*string) *SecretVersionsListEntry {
- s.VersionStages = v
- return s
- }
- // A structure that contains information about a tag.
- type Tag struct {
- _ struct{} `type:"structure"`
- // The key identifier, or name, of the tag.
- Key *string `min:"1" type:"string"`
- // The string value that's associated with the key of the tag.
- Value *string `type:"string"`
- }
- // String returns the string representation
- func (s Tag) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s Tag) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *Tag) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "Tag"}
- if s.Key != nil && len(*s.Key) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Key", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKey sets the Key field's value.
- func (s *Tag) SetKey(v string) *Tag {
- s.Key = &v
- return s
- }
- // SetValue sets the Value field's value.
- func (s *Tag) SetValue(v string) *Tag {
- s.Value = &v
- return s
- }
- type TagResourceInput struct {
- _ struct{} `type:"structure"`
- // The identifier for the secret that you want to attach tags to. You can specify
- // either the Amazon Resource Name (ARN) or the friendly name of the secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- // The tags to attach to the secret. Each element in the list consists of a
- // Key and a Value.
- //
- // This parameter to the API requires a JSON text string argument. For information
- // on how to format a JSON parameter for the various command line tool environments,
- // see Using JSON for Parameters (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json)
- // in the AWS CLI User Guide. For the AWS CLI, you can also use the syntax:
- // --Tags Key="Key1",Value="Value1",Key="Key2",Value="Value2"[,…]
- //
- // Tags is a required field
- Tags []*Tag `type:"list" required:"true"`
- }
- // String returns the string representation
- func (s TagResourceInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s TagResourceInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *TagResourceInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if s.Tags == nil {
- invalidParams.Add(request.NewErrParamRequired("Tags"))
- }
- if s.Tags != nil {
- for i, v := range s.Tags {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
- }
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetSecretId sets the SecretId field's value.
- func (s *TagResourceInput) SetSecretId(v string) *TagResourceInput {
- s.SecretId = &v
- return s
- }
- // SetTags sets the Tags field's value.
- func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
- s.Tags = v
- return s
- }
- type TagResourceOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s TagResourceOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s TagResourceOutput) GoString() string {
- return s.String()
- }
- type UntagResourceInput struct {
- _ struct{} `type:"structure"`
- // The identifier for the secret that you want to remove tags from. You can
- // specify either the Amazon Resource Name (ARN) or the friendly name of the
- // secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- // A list of tag key names to remove from the secret. You don't specify the
- // value. Both the key and its associated value are removed.
- //
- // This parameter to the API requires a JSON text string argument. For information
- // on how to format a JSON parameter for the various command line tool environments,
- // see Using JSON for Parameters (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json)
- // in the AWS CLI User Guide.
- //
- // TagKeys is a required field
- TagKeys []*string `type:"list" required:"true"`
- }
- // String returns the string representation
- func (s UntagResourceInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UntagResourceInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *UntagResourceInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if s.TagKeys == nil {
- invalidParams.Add(request.NewErrParamRequired("TagKeys"))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetSecretId sets the SecretId field's value.
- func (s *UntagResourceInput) SetSecretId(v string) *UntagResourceInput {
- s.SecretId = &v
- return s
- }
- // SetTagKeys sets the TagKeys field's value.
- func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
- s.TagKeys = v
- return s
- }
- type UntagResourceOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s UntagResourceOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UntagResourceOutput) GoString() string {
- return s.String()
- }
- type UpdateSecretInput struct {
- _ struct{} `type:"structure"`
- // (Optional) If you want to add a new version to the secret, this parameter
- // specifies a unique identifier for the new version that helps ensure idempotency.
- //
- // If you use the AWS CLI or one of the AWS SDK to call this operation, then
- // you can leave this parameter empty. The CLI or SDK generates a random UUID
- // for you and includes that in the request. If you don't use the SDK and instead
- // generate a raw HTTP request to the Secrets Manager service endpoint, then
- // you must generate a ClientRequestToken yourself for new versions and include
- // that value in the request.
- //
- // You typically only need to interact with this value if you implement your
- // own retry logic and want to ensure that a given secret is not created twice.
- // We recommend that you generate a UUID-type (https://wikipedia.org/wiki/Universally_unique_identifier)
- // value to ensure uniqueness within the specified secret.
- //
- // Secrets Manager uses this value to prevent the accidental creation of duplicate
- // versions if there are failures and retries during the Lambda rotation function's
- // processing.
- //
- // * If the ClientRequestToken value isn't already associated with a version
- // of the secret then a new version of the secret is created.
- //
- // * If a version with this value already exists and that version's SecretString
- // and SecretBinary values are the same as those in the request then the
- // request is ignored (the operation is idempotent).
- //
- // * If a version with this value already exists and that version's SecretString
- // and SecretBinary values are different from the request then an error occurs
- // because you cannot modify an existing secret value.
- //
- // This value becomes the VersionId of the new version.
- ClientRequestToken *string `min:"32" type:"string" idempotencyToken:"true"`
- // (Optional) Specifies an updated user-provided description of the secret.
- Description *string `type:"string"`
- // (Optional) Specifies an updated ARN or alias of the AWS KMS customer master
- // key (CMK) to be used to encrypt the protected text in new versions of this
- // secret.
- //
- // You can only use the account's default CMK to encrypt and decrypt if you
- // call this operation using credentials from the same account that owns the
- // secret. If the secret is in a different account, then you must create a custom
- // CMK and provide the ARN of that CMK in this field. The user making the call
- // must have permissions to both the secret and the CMK in their respective
- // accounts.
- KmsKeyId *string `type:"string"`
- // (Optional) Specifies updated binary data that you want to encrypt and store
- // in the new version of the secret. To use this parameter in the command-line
- // tools, we recommend that you store your binary data in a file and then use
- // the appropriate technique for your tool to pass the contents of the file
- // as a parameter. Either SecretBinary or SecretString must have a value, but
- // not both. They cannot both be empty.
- //
- // This parameter is not accessible using the Secrets Manager console.
- //
- // SecretBinary is automatically base64 encoded/decoded by the SDK.
- SecretBinary []byte `type:"blob" sensitive:"true"`
- // Specifies the secret that you want to modify or to which you want to add
- // a new version. You can specify either the Amazon Resource Name (ARN) or the
- // friendly name of the secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- // (Optional) Specifies updated text data that you want to encrypt and store
- // in this new version of the secret. Either SecretBinary or SecretString must
- // have a value, but not both. They cannot both be empty.
- //
- // If you create this secret by using the Secrets Manager console then Secrets
- // Manager puts the protected secret text in only the SecretString parameter.
- // The Secrets Manager console stores the information as a JSON structure of
- // key/value pairs that the default Lambda rotation function knows how to parse.
- //
- // For storing multiple values, we recommend that you use a JSON text string
- // argument and specify key/value pairs. For information on how to format a
- // JSON parameter for the various command line tool environments, see Using
- // JSON for Parameters (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-json)
- // in the AWS CLI User Guide. For example:
- //
- // [{"username":"bob"},{"password":"abc123xyz456"}]
- //
- // If your command-line tool or SDK requires quotation marks around the parameter,
- // you should use single quotes to avoid confusion with the double quotes required
- // in the JSON text. You can also 'escape' the double quote character in the
- // embedded JSON text by prefacing each with a backslash. For example, the following
- // string is surrounded by double-quotes. All of the embedded double quotes
- // are escaped:
- //
- // "[{\"username\":\"bob\"},{\"password\":\"abc123xyz456\"}]"
- SecretString *string `type:"string" sensitive:"true"`
- }
- // String returns the string representation
- func (s UpdateSecretInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateSecretInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *UpdateSecretInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "UpdateSecretInput"}
- if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 32 {
- invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 32))
- }
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetClientRequestToken sets the ClientRequestToken field's value.
- func (s *UpdateSecretInput) SetClientRequestToken(v string) *UpdateSecretInput {
- s.ClientRequestToken = &v
- return s
- }
- // SetDescription sets the Description field's value.
- func (s *UpdateSecretInput) SetDescription(v string) *UpdateSecretInput {
- s.Description = &v
- return s
- }
- // SetKmsKeyId sets the KmsKeyId field's value.
- func (s *UpdateSecretInput) SetKmsKeyId(v string) *UpdateSecretInput {
- s.KmsKeyId = &v
- return s
- }
- // SetSecretBinary sets the SecretBinary field's value.
- func (s *UpdateSecretInput) SetSecretBinary(v []byte) *UpdateSecretInput {
- s.SecretBinary = v
- return s
- }
- // SetSecretId sets the SecretId field's value.
- func (s *UpdateSecretInput) SetSecretId(v string) *UpdateSecretInput {
- s.SecretId = &v
- return s
- }
- // SetSecretString sets the SecretString field's value.
- func (s *UpdateSecretInput) SetSecretString(v string) *UpdateSecretInput {
- s.SecretString = &v
- return s
- }
- type UpdateSecretOutput struct {
- _ struct{} `type:"structure"`
- // The ARN of the secret that was updated.
- //
- // Secrets Manager automatically adds several random characters to the name
- // at the end of the ARN when you initially create a secret. This affects only
- // the ARN and not the actual friendly name. This ensures that if you create
- // a new secret with the same name as an old secret that you previously deleted,
- // then users with access to the old secret don't automatically get access to
- // the new secret because the ARNs are different.
- ARN *string `min:"20" type:"string"`
- // The friendly name of the secret that was updated.
- Name *string `min:"1" type:"string"`
- // If a new version of the secret was created by this operation, then VersionId
- // contains the unique identifier of the new version.
- VersionId *string `min:"32" type:"string"`
- }
- // String returns the string representation
- func (s UpdateSecretOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateSecretOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *UpdateSecretOutput) SetARN(v string) *UpdateSecretOutput {
- s.ARN = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *UpdateSecretOutput) SetName(v string) *UpdateSecretOutput {
- s.Name = &v
- return s
- }
- // SetVersionId sets the VersionId field's value.
- func (s *UpdateSecretOutput) SetVersionId(v string) *UpdateSecretOutput {
- s.VersionId = &v
- return s
- }
- type UpdateSecretVersionStageInput struct {
- _ struct{} `type:"structure"`
- // (Optional) The secret version ID that you want to add the staging label to.
- // If you want to remove a label from a version, then do not specify this parameter.
- //
- // If the staging label is already attached to a different version of the secret,
- // then you must also specify the RemoveFromVersionId parameter.
- MoveToVersionId *string `min:"32" type:"string"`
- // Specifies the secret version ID of the version that the staging label is
- // to be removed from. If the staging label you are trying to attach to one
- // version is already attached to a different version, then you must include
- // this parameter and specify the version that the label is to be removed from.
- // If the label is attached and you either do not specify this parameter, or
- // the version ID does not match, then the operation fails.
- RemoveFromVersionId *string `min:"32" type:"string"`
- // Specifies the secret with the version whose list of staging labels you want
- // to modify. You can specify either the Amazon Resource Name (ARN) or the friendly
- // name of the secret.
- //
- // If you specify an ARN, we generally recommend that you specify a complete
- // ARN. You can specify a partial ARN too—for example, if you don’t include
- // the final hyphen and six random characters that Secrets Manager adds at the
- // end of the ARN when you created the secret. A partial ARN match can work
- // as long as it uniquely matches only one secret. However, if your secret has
- // a name that ends in a hyphen followed by six characters (before Secrets Manager
- // adds the hyphen and six characters to the ARN) and you try to use that as
- // a partial ARN, then those characters cause Secrets Manager to assume that
- // you’re specifying a complete ARN. This confusion can cause unexpected results.
- // To avoid this situation, we recommend that you don’t create secret names
- // that end with a hyphen followed by six characters.
- //
- // SecretId is a required field
- SecretId *string `min:"1" type:"string" required:"true"`
- // The staging label to add to this version.
- //
- // VersionStage is a required field
- VersionStage *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s UpdateSecretVersionStageInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateSecretVersionStageInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *UpdateSecretVersionStageInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "UpdateSecretVersionStageInput"}
- if s.MoveToVersionId != nil && len(*s.MoveToVersionId) < 32 {
- invalidParams.Add(request.NewErrParamMinLen("MoveToVersionId", 32))
- }
- if s.RemoveFromVersionId != nil && len(*s.RemoveFromVersionId) < 32 {
- invalidParams.Add(request.NewErrParamMinLen("RemoveFromVersionId", 32))
- }
- if s.SecretId == nil {
- invalidParams.Add(request.NewErrParamRequired("SecretId"))
- }
- if s.SecretId != nil && len(*s.SecretId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SecretId", 1))
- }
- if s.VersionStage == nil {
- invalidParams.Add(request.NewErrParamRequired("VersionStage"))
- }
- if s.VersionStage != nil && len(*s.VersionStage) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("VersionStage", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetMoveToVersionId sets the MoveToVersionId field's value.
- func (s *UpdateSecretVersionStageInput) SetMoveToVersionId(v string) *UpdateSecretVersionStageInput {
- s.MoveToVersionId = &v
- return s
- }
- // SetRemoveFromVersionId sets the RemoveFromVersionId field's value.
- func (s *UpdateSecretVersionStageInput) SetRemoveFromVersionId(v string) *UpdateSecretVersionStageInput {
- s.RemoveFromVersionId = &v
- return s
- }
- // SetSecretId sets the SecretId field's value.
- func (s *UpdateSecretVersionStageInput) SetSecretId(v string) *UpdateSecretVersionStageInput {
- s.SecretId = &v
- return s
- }
- // SetVersionStage sets the VersionStage field's value.
- func (s *UpdateSecretVersionStageInput) SetVersionStage(v string) *UpdateSecretVersionStageInput {
- s.VersionStage = &v
- return s
- }
- type UpdateSecretVersionStageOutput struct {
- _ struct{} `type:"structure"`
- // The ARN of the secret with the staging label that was modified.
- ARN *string `min:"20" type:"string"`
- // The friendly name of the secret with the staging label that was modified.
- Name *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s UpdateSecretVersionStageOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateSecretVersionStageOutput) GoString() string {
- return s.String()
- }
- // SetARN sets the ARN field's value.
- func (s *UpdateSecretVersionStageOutput) SetARN(v string) *UpdateSecretVersionStageOutput {
- s.ARN = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *UpdateSecretVersionStageOutput) SetName(v string) *UpdateSecretVersionStageOutput {
- s.Name = &v
- return s
- }
|