123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706 |
- // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
- package kms
- 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 opCancelKeyDeletion = "CancelKeyDeletion"
- // CancelKeyDeletionRequest generates a "aws/request.Request" representing the
- // client's request for the CancelKeyDeletion 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 CancelKeyDeletion for more information on using the CancelKeyDeletion
- // 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 CancelKeyDeletionRequest method.
- // req, resp := client.CancelKeyDeletionRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CancelKeyDeletion
- func (c *KMS) CancelKeyDeletionRequest(input *CancelKeyDeletionInput) (req *request.Request, output *CancelKeyDeletionOutput) {
- op := &request.Operation{
- Name: opCancelKeyDeletion,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &CancelKeyDeletionInput{}
- }
- output = &CancelKeyDeletionOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // CancelKeyDeletion API operation for AWS Key Management Service.
- //
- // Cancels the deletion of a customer master key (CMK). When this operation
- // succeeds, the key state of the CMK is Disabled. To enable the CMK, use EnableKey.
- // You cannot perform this operation on a CMK in a different AWS account.
- //
- // For more information about scheduling and canceling deletion of a CMK, see
- // Deleting Customer Master Keys (https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation CancelKeyDeletion for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CancelKeyDeletion
- func (c *KMS) CancelKeyDeletion(input *CancelKeyDeletionInput) (*CancelKeyDeletionOutput, error) {
- req, out := c.CancelKeyDeletionRequest(input)
- return out, req.Send()
- }
- // CancelKeyDeletionWithContext is the same as CancelKeyDeletion with the addition of
- // the ability to pass a context and additional request options.
- //
- // See CancelKeyDeletion 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 *KMS) CancelKeyDeletionWithContext(ctx aws.Context, input *CancelKeyDeletionInput, opts ...request.Option) (*CancelKeyDeletionOutput, error) {
- req, out := c.CancelKeyDeletionRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opConnectCustomKeyStore = "ConnectCustomKeyStore"
- // ConnectCustomKeyStoreRequest generates a "aws/request.Request" representing the
- // client's request for the ConnectCustomKeyStore 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 ConnectCustomKeyStore for more information on using the ConnectCustomKeyStore
- // 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 ConnectCustomKeyStoreRequest method.
- // req, resp := client.ConnectCustomKeyStoreRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ConnectCustomKeyStore
- func (c *KMS) ConnectCustomKeyStoreRequest(input *ConnectCustomKeyStoreInput) (req *request.Request, output *ConnectCustomKeyStoreOutput) {
- op := &request.Operation{
- Name: opConnectCustomKeyStore,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &ConnectCustomKeyStoreInput{}
- }
- output = &ConnectCustomKeyStoreOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // ConnectCustomKeyStore API operation for AWS Key Management Service.
- //
- // Connects or reconnects a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // to its associated AWS CloudHSM cluster.
- //
- // The custom key store must be connected before you can create customer master
- // keys (CMKs) in the key store or use the CMKs it contains. You can disconnect
- // and reconnect a custom key store at any time.
- //
- // To connect a custom key store, its associated AWS CloudHSM cluster must have
- // at least one active HSM. To get the number of active HSMs in a cluster, use
- // the DescribeClusters (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html)
- // operation. To add HSMs to the cluster, use the CreateHsm (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html)
- // operation.
- //
- // The connection process can take an extended amount of time to complete; up
- // to 20 minutes. This operation starts the connection process, but it does
- // not wait for it to complete. When it succeeds, this operation quickly returns
- // an HTTP 200 response and a JSON object with no properties. However, this
- // response does not indicate that the custom key store is connected. To get
- // the connection state of the custom key store, use the DescribeCustomKeyStores
- // operation.
- //
- // During the connection process, AWS KMS finds the AWS CloudHSM cluster that
- // is associated with the custom key store, creates the connection infrastructure,
- // connects to the cluster, logs into the AWS CloudHSM client as the kmsuser
- // crypto user (https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser)
- // (CU), and rotates its password.
- //
- // The ConnectCustomKeyStore operation might fail for various reasons. To find
- // the reason, use the DescribeCustomKeyStores operation and see the ConnectionErrorCode
- // in the response. For help interpreting the ConnectionErrorCode, see CustomKeyStoresListEntry.
- //
- // To fix the failure, use the DisconnectCustomKeyStore operation to disconnect
- // the custom key store, correct the error, use the UpdateCustomKeyStore operation
- // if necessary, and then use ConnectCustomKeyStore again.
- //
- // If you are having trouble connecting or disconnecting a custom key store,
- // see Troubleshooting a Custom Key Store (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation ConnectCustomKeyStore for usage and error information.
- //
- // Returned Error Types:
- // * CloudHsmClusterNotActiveException
- // The request was rejected because the AWS CloudHSM cluster that is associated
- // with the custom key store is not active. Initialize and activate the cluster
- // and try the command again. For detailed instructions, see Getting Started
- // (https://docs.aws.amazon.com/cloudhsm/latest/userguide/getting-started.html)
- // in the AWS CloudHSM User Guide.
- //
- // * CustomKeyStoreInvalidStateException
- // The request was rejected because of the ConnectionState of the custom key
- // store. To get the ConnectionState of a custom key store, use the DescribeCustomKeyStores
- // operation.
- //
- // This exception is thrown under the following conditions:
- //
- // * You requested the CreateKey or GenerateRandom operation in a custom
- // key store that is not connected. These operations are valid only when
- // the custom key store ConnectionState is CONNECTED.
- //
- // * You requested the UpdateCustomKeyStore or DeleteCustomKeyStore operation
- // on a custom key store that is not disconnected. This operation is valid
- // only when the custom key store ConnectionState is DISCONNECTED.
- //
- // * You requested the ConnectCustomKeyStore operation on a custom key store
- // with a ConnectionState of DISCONNECTING or FAILED. This operation is valid
- // for all other ConnectionState values.
- //
- // * CustomKeyStoreNotFoundException
- // The request was rejected because AWS KMS cannot find a custom key store with
- // the specified key store name or ID.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * CloudHsmClusterInvalidConfigurationException
- // The request was rejected because the associated AWS CloudHSM cluster did
- // not meet the configuration requirements for a custom key store.
- //
- // * The cluster must be configured with private subnets in at least two
- // different Availability Zones in the Region.
- //
- // * The security group for the cluster (https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html)
- // (cloudhsm-cluster-<cluster-id>-sg) must include inbound rules and outbound
- // rules that allow TCP traffic on ports 2223-2225. The Source in the inbound
- // rules and the Destination in the outbound rules must match the security
- // group ID. These rules are set by default when you create the cluster.
- // Do not delete or change them. To get information about a particular security
- // group, use the DescribeSecurityGroups (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)
- // operation.
- //
- // * The cluster must contain at least as many HSMs as the operation requires.
- // To add HSMs, use the AWS CloudHSM CreateHsm (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html)
- // operation. For the CreateCustomKeyStore, UpdateCustomKeyStore, and CreateKey
- // operations, the AWS CloudHSM cluster must have at least two active HSMs,
- // each in a different Availability Zone. For the ConnectCustomKeyStore operation,
- // the AWS CloudHSM must contain at least one active HSM.
- //
- // For information about the requirements for an AWS CloudHSM cluster that is
- // associated with a custom key store, see Assemble the Prerequisites (https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore)
- // in the AWS Key Management Service Developer Guide. For information about
- // creating a private subnet for an AWS CloudHSM cluster, see Create a Private
- // Subnet (https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-subnets.html)
- // in the AWS CloudHSM User Guide. For information about cluster security groups,
- // see Configure a Default Security Group (https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html)
- // in the AWS CloudHSM User Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ConnectCustomKeyStore
- func (c *KMS) ConnectCustomKeyStore(input *ConnectCustomKeyStoreInput) (*ConnectCustomKeyStoreOutput, error) {
- req, out := c.ConnectCustomKeyStoreRequest(input)
- return out, req.Send()
- }
- // ConnectCustomKeyStoreWithContext is the same as ConnectCustomKeyStore with the addition of
- // the ability to pass a context and additional request options.
- //
- // See ConnectCustomKeyStore 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 *KMS) ConnectCustomKeyStoreWithContext(ctx aws.Context, input *ConnectCustomKeyStoreInput, opts ...request.Option) (*ConnectCustomKeyStoreOutput, error) {
- req, out := c.ConnectCustomKeyStoreRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opCreateAlias = "CreateAlias"
- // CreateAliasRequest generates a "aws/request.Request" representing the
- // client's request for the CreateAlias 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 CreateAlias for more information on using the CreateAlias
- // 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 CreateAliasRequest method.
- // req, resp := client.CreateAliasRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateAlias
- func (c *KMS) CreateAliasRequest(input *CreateAliasInput) (req *request.Request, output *CreateAliasOutput) {
- op := &request.Operation{
- Name: opCreateAlias,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &CreateAliasInput{}
- }
- output = &CreateAliasOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // CreateAlias API operation for AWS Key Management Service.
- //
- // Creates a display name for a customer managed customer master key (CMK).
- // You can use an alias to identify a CMK in cryptographic operations, such
- // as Encrypt and GenerateDataKey. You can change the CMK associated with the
- // alias at any time.
- //
- // Aliases are easier to remember than key IDs. They can also help to simplify
- // your applications. For example, if you use an alias in your code, you can
- // change the CMK your code uses by associating a given alias with a different
- // CMK.
- //
- // To run the same code in multiple AWS regions, use an alias in your code,
- // such as alias/ApplicationKey. Then, in each AWS Region, create an alias/ApplicationKey
- // alias that is associated with a CMK in that Region. When you run your code,
- // it uses the alias/ApplicationKey CMK for that AWS Region without any Region-specific
- // code.
- //
- // This operation does not return a response. To get the alias that you created,
- // use the ListAliases operation.
- //
- // To use aliases successfully, be aware of the following information.
- //
- // * Each alias points to only one CMK at a time, although a single CMK can
- // have multiple aliases. The alias and its associated CMK must be in the
- // same AWS account and Region.
- //
- // * You can associate an alias with any customer managed CMK in the same
- // AWS account and Region. However, you do not have permission to associate
- // an alias with an AWS managed CMK (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)
- // or an AWS owned CMK (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk).
- //
- // * To change the CMK associated with an alias, use the UpdateAlias operation.
- // The current CMK and the new CMK must be the same type (both symmetric
- // or both asymmetric) and they must have the same key usage (ENCRYPT_DECRYPT
- // or SIGN_VERIFY). This restriction prevents cryptographic errors in code
- // that uses aliases.
- //
- // * The alias name must begin with alias/ followed by a name, such as alias/ExampleAlias.
- // It can contain only alphanumeric characters, forward slashes (/), underscores
- // (_), and dashes (-). The alias name cannot begin with alias/aws/. The
- // alias/aws/ prefix is reserved for AWS managed CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).
- //
- // * The alias name must be unique within an AWS Region. However, you can
- // use the same alias name in multiple Regions of the same AWS account. Each
- // instance of the alias is associated with a CMK in its Region.
- //
- // * After you create an alias, you cannot change its alias name. However,
- // you can use the DeleteAlias operation to delete the alias and then create
- // a new alias with the desired name.
- //
- // * You can use an alias name or alias ARN to identify a CMK in AWS KMS
- // cryptographic operations and in the DescribeKey operation. However, you
- // cannot use alias names or alias ARNs in API operations that manage CMKs,
- // such as DisableKey or GetKeyPolicy. For information about the valid CMK
- // identifiers for each AWS KMS API operation, see the descriptions of the
- // KeyId parameter in the API operation documentation.
- //
- // Because an alias is not a property of a CMK, you can delete and change the
- // aliases of a CMK without affecting the CMK. Also, aliases do not appear in
- // the response from the DescribeKey operation. To get the aliases and alias
- // ARNs of CMKs in each AWS account and Region, use the ListAliases operation.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation CreateAlias for usage and error information.
- //
- // Returned Error Types:
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * AlreadyExistsException
- // The request was rejected because it attempted to create a resource that already
- // exists.
- //
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidAliasNameException
- // The request was rejected because the specified alias name is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * LimitExceededException
- // The request was rejected because a limit was exceeded. For more information,
- // see Limits (https://docs.aws.amazon.com/kms/latest/developerguide/limits.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateAlias
- func (c *KMS) CreateAlias(input *CreateAliasInput) (*CreateAliasOutput, error) {
- req, out := c.CreateAliasRequest(input)
- return out, req.Send()
- }
- // CreateAliasWithContext is the same as CreateAlias with the addition of
- // the ability to pass a context and additional request options.
- //
- // See CreateAlias 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 *KMS) CreateAliasWithContext(ctx aws.Context, input *CreateAliasInput, opts ...request.Option) (*CreateAliasOutput, error) {
- req, out := c.CreateAliasRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opCreateCustomKeyStore = "CreateCustomKeyStore"
- // CreateCustomKeyStoreRequest generates a "aws/request.Request" representing the
- // client's request for the CreateCustomKeyStore 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 CreateCustomKeyStore for more information on using the CreateCustomKeyStore
- // 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 CreateCustomKeyStoreRequest method.
- // req, resp := client.CreateCustomKeyStoreRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateCustomKeyStore
- func (c *KMS) CreateCustomKeyStoreRequest(input *CreateCustomKeyStoreInput) (req *request.Request, output *CreateCustomKeyStoreOutput) {
- op := &request.Operation{
- Name: opCreateCustomKeyStore,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &CreateCustomKeyStoreInput{}
- }
- output = &CreateCustomKeyStoreOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // CreateCustomKeyStore API operation for AWS Key Management Service.
- //
- // Creates a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // that is associated with an AWS CloudHSM cluster (https://docs.aws.amazon.com/cloudhsm/latest/userguide/clusters.html)
- // that you own and manage.
- //
- // This operation is part of the Custom Key Store feature (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // feature in AWS KMS, which combines the convenience and extensive integration
- // of AWS KMS with the isolation and control of a single-tenant key store.
- //
- // Before you create the custom key store, you must assemble the required elements,
- // including an AWS CloudHSM cluster that fulfills the requirements for a custom
- // key store. For details about the required elements, see Assemble the Prerequisites
- // (https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore)
- // in the AWS Key Management Service Developer Guide.
- //
- // When the operation completes successfully, it returns the ID of the new custom
- // key store. Before you can use your new custom key store, you need to use
- // the ConnectCustomKeyStore operation to connect the new key store to its AWS
- // CloudHSM cluster. Even if you are not going to use your custom key store
- // immediately, you might want to connect it to verify that all settings are
- // correct and then disconnect it until you are ready to use it.
- //
- // For help with failures, see Troubleshooting a Custom Key Store (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation CreateCustomKeyStore for usage and error information.
- //
- // Returned Error Types:
- // * CloudHsmClusterInUseException
- // The request was rejected because the specified AWS CloudHSM cluster is already
- // associated with a custom key store or it shares a backup history with a cluster
- // that is associated with a custom key store. Each custom key store must be
- // associated with a different AWS CloudHSM cluster.
- //
- // Clusters that share a backup history have the same cluster certificate. To
- // view the cluster certificate of a cluster, use the DescribeClusters (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html)
- // operation.
- //
- // * CustomKeyStoreNameInUseException
- // The request was rejected because the specified custom key store name is already
- // assigned to another custom key store in the account. Try again with a custom
- // key store name that is unique in the account.
- //
- // * CloudHsmClusterNotFoundException
- // The request was rejected because AWS KMS cannot find the AWS CloudHSM cluster
- // with the specified cluster ID. Retry the request with a different cluster
- // ID.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * CloudHsmClusterNotActiveException
- // The request was rejected because the AWS CloudHSM cluster that is associated
- // with the custom key store is not active. Initialize and activate the cluster
- // and try the command again. For detailed instructions, see Getting Started
- // (https://docs.aws.amazon.com/cloudhsm/latest/userguide/getting-started.html)
- // in the AWS CloudHSM User Guide.
- //
- // * IncorrectTrustAnchorException
- // The request was rejected because the trust anchor certificate in the request
- // is not the trust anchor certificate for the specified AWS CloudHSM cluster.
- //
- // When you initialize the cluster (https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr),
- // you create the trust anchor certificate and save it in the customerCA.crt
- // file.
- //
- // * CloudHsmClusterInvalidConfigurationException
- // The request was rejected because the associated AWS CloudHSM cluster did
- // not meet the configuration requirements for a custom key store.
- //
- // * The cluster must be configured with private subnets in at least two
- // different Availability Zones in the Region.
- //
- // * The security group for the cluster (https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html)
- // (cloudhsm-cluster-<cluster-id>-sg) must include inbound rules and outbound
- // rules that allow TCP traffic on ports 2223-2225. The Source in the inbound
- // rules and the Destination in the outbound rules must match the security
- // group ID. These rules are set by default when you create the cluster.
- // Do not delete or change them. To get information about a particular security
- // group, use the DescribeSecurityGroups (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)
- // operation.
- //
- // * The cluster must contain at least as many HSMs as the operation requires.
- // To add HSMs, use the AWS CloudHSM CreateHsm (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html)
- // operation. For the CreateCustomKeyStore, UpdateCustomKeyStore, and CreateKey
- // operations, the AWS CloudHSM cluster must have at least two active HSMs,
- // each in a different Availability Zone. For the ConnectCustomKeyStore operation,
- // the AWS CloudHSM must contain at least one active HSM.
- //
- // For information about the requirements for an AWS CloudHSM cluster that is
- // associated with a custom key store, see Assemble the Prerequisites (https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore)
- // in the AWS Key Management Service Developer Guide. For information about
- // creating a private subnet for an AWS CloudHSM cluster, see Create a Private
- // Subnet (https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-subnets.html)
- // in the AWS CloudHSM User Guide. For information about cluster security groups,
- // see Configure a Default Security Group (https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html)
- // in the AWS CloudHSM User Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateCustomKeyStore
- func (c *KMS) CreateCustomKeyStore(input *CreateCustomKeyStoreInput) (*CreateCustomKeyStoreOutput, error) {
- req, out := c.CreateCustomKeyStoreRequest(input)
- return out, req.Send()
- }
- // CreateCustomKeyStoreWithContext is the same as CreateCustomKeyStore with the addition of
- // the ability to pass a context and additional request options.
- //
- // See CreateCustomKeyStore 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 *KMS) CreateCustomKeyStoreWithContext(ctx aws.Context, input *CreateCustomKeyStoreInput, opts ...request.Option) (*CreateCustomKeyStoreOutput, error) {
- req, out := c.CreateCustomKeyStoreRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opCreateGrant = "CreateGrant"
- // CreateGrantRequest generates a "aws/request.Request" representing the
- // client's request for the CreateGrant 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 CreateGrant for more information on using the CreateGrant
- // 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 CreateGrantRequest method.
- // req, resp := client.CreateGrantRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateGrant
- func (c *KMS) CreateGrantRequest(input *CreateGrantInput) (req *request.Request, output *CreateGrantOutput) {
- op := &request.Operation{
- Name: opCreateGrant,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &CreateGrantInput{}
- }
- output = &CreateGrantOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // CreateGrant API operation for AWS Key Management Service.
- //
- // Adds a grant to a customer master key (CMK). The grant allows the grantee
- // principal to use the CMK when the conditions specified in the grant are met.
- // When setting permissions, grants are an alternative to key policies.
- //
- // To create a grant that allows a cryptographic operation only when the request
- // includes a particular encryption context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context),
- // use the Constraints parameter. For details, see GrantConstraints.
- //
- // You can create grants on symmetric and asymmetric CMKs. However, if the grant
- // allows an operation that the CMK does not support, CreateGrant fails with
- // a ValidationException.
- //
- // * Grants for symmetric CMKs cannot allow operations that are not supported
- // for symmetric CMKs, including Sign, Verify, and GetPublicKey. (There are
- // limited exceptions to this rule for legacy operations, but you should
- // not create a grant for an operation that AWS KMS does not support.)
- //
- // * Grants for asymmetric CMKs cannot allow operations that are not supported
- // for asymmetric CMKs, including operations that generate data keys (https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey)
- // or data key pairs (https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair),
- // or operations related to automatic key rotation (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html),
- // imported key material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html),
- // or CMKs in custom key stores (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).
- //
- // * Grants for asymmetric CMKs with a KeyUsage of ENCRYPT_DECRYPT cannot
- // allow the Sign or Verify operations. Grants for asymmetric CMKs with a
- // KeyUsage of SIGN_VERIFY cannot allow the Encrypt or Decrypt operations.
- //
- // * Grants for asymmetric CMKs cannot include an encryption context grant
- // constraint. An encryption context is not supported on asymmetric CMKs.
- //
- // For information about symmetric and asymmetric CMKs, see Using Symmetric
- // and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // To perform this operation on a CMK in a different AWS account, specify the
- // key ARN in the value of the KeyId parameter. For more information about grants,
- // see Grants (https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation CreateGrant for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DisabledException
- // The request was rejected because the specified CMK is not enabled.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidGrantTokenException
- // The request was rejected because the specified grant token is not valid.
- //
- // * LimitExceededException
- // The request was rejected because a limit was exceeded. For more information,
- // see Limits (https://docs.aws.amazon.com/kms/latest/developerguide/limits.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateGrant
- func (c *KMS) CreateGrant(input *CreateGrantInput) (*CreateGrantOutput, error) {
- req, out := c.CreateGrantRequest(input)
- return out, req.Send()
- }
- // CreateGrantWithContext is the same as CreateGrant with the addition of
- // the ability to pass a context and additional request options.
- //
- // See CreateGrant 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 *KMS) CreateGrantWithContext(ctx aws.Context, input *CreateGrantInput, opts ...request.Option) (*CreateGrantOutput, error) {
- req, out := c.CreateGrantRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opCreateKey = "CreateKey"
- // CreateKeyRequest generates a "aws/request.Request" representing the
- // client's request for the CreateKey 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 CreateKey for more information on using the CreateKey
- // 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 CreateKeyRequest method.
- // req, resp := client.CreateKeyRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKey
- func (c *KMS) CreateKeyRequest(input *CreateKeyInput) (req *request.Request, output *CreateKeyOutput) {
- op := &request.Operation{
- Name: opCreateKey,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &CreateKeyInput{}
- }
- output = &CreateKeyOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // CreateKey API operation for AWS Key Management Service.
- //
- // Creates a unique customer managed customer master key (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master-keys)
- // (CMK) in your AWS account and Region. You cannot use this operation to create
- // a CMK in a different AWS account.
- //
- // You can use the CreateKey operation to create symmetric or asymmetric CMKs.
- //
- // * Symmetric CMKs contain a 256-bit symmetric key that never leaves AWS
- // KMS unencrypted. To use the CMK, you must call AWS KMS. You can use a
- // symmetric CMK to encrypt and decrypt small amounts of data, but they are
- // typically used to generate data keys (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys)
- // or data key pairs. For details, see GenerateDataKey and GenerateDataKeyPair.
- //
- // * Asymmetric CMKs can contain an RSA key pair or an Elliptic Curve (ECC)
- // key pair. The private key in an asymmetric CMK never leaves AWS KMS unencrypted.
- // However, you can use the GetPublicKey operation to download the public
- // key so it can be used outside of AWS KMS. CMKs with RSA key pairs can
- // be used to encrypt or decrypt data or sign and verify messages (but not
- // both). CMKs with ECC key pairs can be used only to sign and verify messages.
- //
- // For information about symmetric and asymmetric CMKs, see Using Symmetric
- // and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // To create different types of CMKs, use the following guidance:
- //
- // Asymmetric CMKs
- //
- // To create an asymmetric CMK, use the CustomerMasterKeySpec parameter to specify
- // the type of key material in the CMK. Then, use the KeyUsage parameter to
- // determine whether the CMK will be used to encrypt and decrypt or sign and
- // verify. You can't change these properties after the CMK is created.
- //
- // Symmetric CMKs
- //
- // When creating a symmetric CMK, you don't need to specify the CustomerMasterKeySpec
- // or KeyUsage parameters. The default value for CustomerMasterKeySpec, SYMMETRIC_DEFAULT,
- // and the default value for KeyUsage, ENCRYPT_DECRYPT, are the only valid values
- // for symmetric CMKs.
- //
- // Imported Key Material
- //
- // To import your own key material, begin by creating a symmetric CMK with no
- // key material. To do this, use the Origin parameter of CreateKey with a value
- // of EXTERNAL. Next, use GetParametersForImport operation to get a public key
- // and import token, and use the public key to encrypt your key material. Then,
- // use ImportKeyMaterial with your import token to import the key material.
- // For step-by-step instructions, see Importing Key Material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html)
- // in the AWS Key Management Service Developer Guide . You cannot import the
- // key material into an asymmetric CMK.
- //
- // Custom Key Stores
- //
- // To create a symmetric CMK in a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html),
- // use the CustomKeyStoreId parameter to specify the custom key store. You must
- // also use the Origin parameter with a value of AWS_CLOUDHSM. The AWS CloudHSM
- // cluster that is associated with the custom key store must have at least two
- // active HSMs in different Availability Zones in the AWS Region.
- //
- // You cannot create an asymmetric CMK in a custom key store. For information
- // about custom key stores in AWS KMS see Using Custom Key Stores (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // 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 Key Management Service's
- // API operation CreateKey for usage and error information.
- //
- // Returned Error Types:
- // * MalformedPolicyDocumentException
- // The request was rejected because the specified policy is not syntactically
- // or semantically correct.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * UnsupportedOperationException
- // The request was rejected because a specified parameter is not supported or
- // a specified resource is not valid for this operation.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * LimitExceededException
- // The request was rejected because a limit was exceeded. For more information,
- // see Limits (https://docs.aws.amazon.com/kms/latest/developerguide/limits.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // * TagException
- // The request was rejected because one or more tags are not valid.
- //
- // * CustomKeyStoreNotFoundException
- // The request was rejected because AWS KMS cannot find a custom key store with
- // the specified key store name or ID.
- //
- // * CustomKeyStoreInvalidStateException
- // The request was rejected because of the ConnectionState of the custom key
- // store. To get the ConnectionState of a custom key store, use the DescribeCustomKeyStores
- // operation.
- //
- // This exception is thrown under the following conditions:
- //
- // * You requested the CreateKey or GenerateRandom operation in a custom
- // key store that is not connected. These operations are valid only when
- // the custom key store ConnectionState is CONNECTED.
- //
- // * You requested the UpdateCustomKeyStore or DeleteCustomKeyStore operation
- // on a custom key store that is not disconnected. This operation is valid
- // only when the custom key store ConnectionState is DISCONNECTED.
- //
- // * You requested the ConnectCustomKeyStore operation on a custom key store
- // with a ConnectionState of DISCONNECTING or FAILED. This operation is valid
- // for all other ConnectionState values.
- //
- // * CloudHsmClusterInvalidConfigurationException
- // The request was rejected because the associated AWS CloudHSM cluster did
- // not meet the configuration requirements for a custom key store.
- //
- // * The cluster must be configured with private subnets in at least two
- // different Availability Zones in the Region.
- //
- // * The security group for the cluster (https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html)
- // (cloudhsm-cluster-<cluster-id>-sg) must include inbound rules and outbound
- // rules that allow TCP traffic on ports 2223-2225. The Source in the inbound
- // rules and the Destination in the outbound rules must match the security
- // group ID. These rules are set by default when you create the cluster.
- // Do not delete or change them. To get information about a particular security
- // group, use the DescribeSecurityGroups (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)
- // operation.
- //
- // * The cluster must contain at least as many HSMs as the operation requires.
- // To add HSMs, use the AWS CloudHSM CreateHsm (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html)
- // operation. For the CreateCustomKeyStore, UpdateCustomKeyStore, and CreateKey
- // operations, the AWS CloudHSM cluster must have at least two active HSMs,
- // each in a different Availability Zone. For the ConnectCustomKeyStore operation,
- // the AWS CloudHSM must contain at least one active HSM.
- //
- // For information about the requirements for an AWS CloudHSM cluster that is
- // associated with a custom key store, see Assemble the Prerequisites (https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore)
- // in the AWS Key Management Service Developer Guide. For information about
- // creating a private subnet for an AWS CloudHSM cluster, see Create a Private
- // Subnet (https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-subnets.html)
- // in the AWS CloudHSM User Guide. For information about cluster security groups,
- // see Configure a Default Security Group (https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html)
- // in the AWS CloudHSM User Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKey
- func (c *KMS) CreateKey(input *CreateKeyInput) (*CreateKeyOutput, error) {
- req, out := c.CreateKeyRequest(input)
- return out, req.Send()
- }
- // CreateKeyWithContext is the same as CreateKey with the addition of
- // the ability to pass a context and additional request options.
- //
- // See CreateKey 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 *KMS) CreateKeyWithContext(ctx aws.Context, input *CreateKeyInput, opts ...request.Option) (*CreateKeyOutput, error) {
- req, out := c.CreateKeyRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opDecrypt = "Decrypt"
- // DecryptRequest generates a "aws/request.Request" representing the
- // client's request for the Decrypt 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 Decrypt for more information on using the Decrypt
- // 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 DecryptRequest method.
- // req, resp := client.DecryptRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Decrypt
- func (c *KMS) DecryptRequest(input *DecryptInput) (req *request.Request, output *DecryptOutput) {
- op := &request.Operation{
- Name: opDecrypt,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DecryptInput{}
- }
- output = &DecryptOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // Decrypt API operation for AWS Key Management Service.
- //
- // Decrypts ciphertext that was encrypted by a AWS KMS customer master key (CMK)
- // using any of the following operations:
- //
- // * Encrypt
- //
- // * GenerateDataKey
- //
- // * GenerateDataKeyPair
- //
- // * GenerateDataKeyWithoutPlaintext
- //
- // * GenerateDataKeyPairWithoutPlaintext
- //
- // You can use this operation to decrypt ciphertext that was encrypted under
- // a symmetric or asymmetric CMK. When the CMK is asymmetric, you must specify
- // the CMK and the encryption algorithm that was used to encrypt the ciphertext.
- // For information about symmetric and asymmetric CMKs, see Using Symmetric
- // and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // The Decrypt operation also decrypts ciphertext that was encrypted outside
- // of AWS KMS by the public key in an AWS KMS asymmetric CMK. However, it cannot
- // decrypt ciphertext produced by other libraries, such as the AWS Encryption
- // SDK (https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/)
- // or Amazon S3 client-side encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html).
- // These libraries return a ciphertext format that is incompatible with AWS
- // KMS.
- //
- // If the ciphertext was encrypted under a symmetric CMK, you do not need to
- // specify the CMK or the encryption algorithm. AWS KMS can get this information
- // from metadata that it adds to the symmetric ciphertext blob. However, if
- // you prefer, you can specify the KeyId to ensure that a particular CMK is
- // used to decrypt the ciphertext. If you specify a different CMK than the one
- // used to encrypt the ciphertext, the Decrypt operation fails.
- //
- // Whenever possible, use key policies to give users permission to call the
- // Decrypt operation on a particular CMK, instead of using IAM policies. Otherwise,
- // you might create an IAM user policy that gives the user Decrypt permission
- // on all CMKs. This user could decrypt ciphertext that was encrypted by CMKs
- // in other accounts if the key policy for the cross-account CMK permits it.
- // If you must use an IAM policy for Decrypt permissions, limit the user to
- // particular CMKs or particular trusted accounts.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation Decrypt for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DisabledException
- // The request was rejected because the specified CMK is not enabled.
- //
- // * InvalidCiphertextException
- // From the Decrypt or ReEncrypt operation, the request was rejected because
- // the specified ciphertext, or additional authenticated data incorporated into
- // the ciphertext, such as the encryption context, is corrupted, missing, or
- // otherwise invalid.
- //
- // From the ImportKeyMaterial operation, the request was rejected because AWS
- // KMS could not decrypt the encrypted (wrapped) key material.
- //
- // * KeyUnavailableException
- // The request was rejected because the specified CMK was not available. You
- // can retry the request.
- //
- // * IncorrectKeyException
- // The request was rejected because the specified CMK cannot decrypt the data.
- // The KeyId in a Decrypt request and the SourceKeyId in a ReEncrypt request
- // must identify the same CMK that was used to encrypt the ciphertext.
- //
- // * InvalidKeyUsageException
- // The request was rejected for one of the following reasons:
- //
- // * The KeyUsage value of the CMK is incompatible with the API operation.
- //
- // * The encryption algorithm or signing algorithm specified for the operation
- // is incompatible with the type of key material in the CMK (CustomerMasterKeySpec).
- //
- // For encrypting, decrypting, re-encrypting, and generating data keys, the
- // KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the KeyUsage
- // must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation.
- //
- // To find the encryption or signing algorithms supported for a particular CMK,
- // use the DescribeKey operation.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidGrantTokenException
- // The request was rejected because the specified grant token is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Decrypt
- func (c *KMS) Decrypt(input *DecryptInput) (*DecryptOutput, error) {
- req, out := c.DecryptRequest(input)
- return out, req.Send()
- }
- // DecryptWithContext is the same as Decrypt with the addition of
- // the ability to pass a context and additional request options.
- //
- // See Decrypt 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 *KMS) DecryptWithContext(ctx aws.Context, input *DecryptInput, opts ...request.Option) (*DecryptOutput, error) {
- req, out := c.DecryptRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opDeleteAlias = "DeleteAlias"
- // DeleteAliasRequest generates a "aws/request.Request" representing the
- // client's request for the DeleteAlias 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 DeleteAlias for more information on using the DeleteAlias
- // 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 DeleteAliasRequest method.
- // req, resp := client.DeleteAliasRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteAlias
- func (c *KMS) DeleteAliasRequest(input *DeleteAliasInput) (req *request.Request, output *DeleteAliasOutput) {
- op := &request.Operation{
- Name: opDeleteAlias,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DeleteAliasInput{}
- }
- output = &DeleteAliasOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // DeleteAlias API operation for AWS Key Management Service.
- //
- // Deletes the specified alias. You cannot perform this operation on an alias
- // in a different AWS account.
- //
- // Because an alias is not a property of a CMK, you can delete and change the
- // aliases of a CMK without affecting the CMK. Also, aliases do not appear in
- // the response from the DescribeKey operation. To get the aliases of all CMKs,
- // use the ListAliases operation.
- //
- // Each CMK can have multiple aliases. To change the alias of a CMK, use DeleteAlias
- // to delete the current alias and CreateAlias to create a new alias. To associate
- // an existing alias with a different customer master key (CMK), call UpdateAlias.
- //
- // 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 Key Management Service's
- // API operation DeleteAlias for usage and error information.
- //
- // Returned Error Types:
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteAlias
- func (c *KMS) DeleteAlias(input *DeleteAliasInput) (*DeleteAliasOutput, error) {
- req, out := c.DeleteAliasRequest(input)
- return out, req.Send()
- }
- // DeleteAliasWithContext is the same as DeleteAlias with the addition of
- // the ability to pass a context and additional request options.
- //
- // See DeleteAlias 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 *KMS) DeleteAliasWithContext(ctx aws.Context, input *DeleteAliasInput, opts ...request.Option) (*DeleteAliasOutput, error) {
- req, out := c.DeleteAliasRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opDeleteCustomKeyStore = "DeleteCustomKeyStore"
- // DeleteCustomKeyStoreRequest generates a "aws/request.Request" representing the
- // client's request for the DeleteCustomKeyStore 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 DeleteCustomKeyStore for more information on using the DeleteCustomKeyStore
- // 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 DeleteCustomKeyStoreRequest method.
- // req, resp := client.DeleteCustomKeyStoreRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteCustomKeyStore
- func (c *KMS) DeleteCustomKeyStoreRequest(input *DeleteCustomKeyStoreInput) (req *request.Request, output *DeleteCustomKeyStoreOutput) {
- op := &request.Operation{
- Name: opDeleteCustomKeyStore,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DeleteCustomKeyStoreInput{}
- }
- output = &DeleteCustomKeyStoreOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // DeleteCustomKeyStore API operation for AWS Key Management Service.
- //
- // Deletes a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).
- // This operation does not delete the AWS CloudHSM cluster that is associated
- // with the custom key store, or affect any users or keys in the cluster.
- //
- // The custom key store that you delete cannot contain any AWS KMS customer
- // master keys (CMKs) (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys).
- // Before deleting the key store, verify that you will never need to use any
- // of the CMKs in the key store for any cryptographic operations. Then, use
- // ScheduleKeyDeletion to delete the AWS KMS customer master keys (CMKs) from
- // the key store. When the scheduled waiting period expires, the ScheduleKeyDeletion
- // operation deletes the CMKs. Then it makes a best effort to delete the key
- // material from the associated cluster. However, you might need to manually
- // delete the orphaned key material (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key)
- // from the cluster and its backups.
- //
- // After all CMKs are deleted from AWS KMS, use DisconnectCustomKeyStore to
- // disconnect the key store from AWS KMS. Then, you can delete the custom key
- // store.
- //
- // Instead of deleting the custom key store, consider using DisconnectCustomKeyStore
- // to disconnect it from AWS KMS. While the key store is disconnected, you cannot
- // create or use the CMKs in the key store. But, you do not need to delete CMKs
- // and you can reconnect a disconnected custom key store at any time.
- //
- // If the operation succeeds, it returns a JSON object with no properties.
- //
- // This operation is part of the Custom Key Store feature (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // feature in AWS KMS, which combines the convenience and extensive integration
- // of AWS KMS with the isolation and control of a single-tenant key store.
- //
- // 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 Key Management Service's
- // API operation DeleteCustomKeyStore for usage and error information.
- //
- // Returned Error Types:
- // * CustomKeyStoreHasCMKsException
- // The request was rejected because the custom key store contains AWS KMS customer
- // master keys (CMKs). After verifying that you do not need to use the CMKs,
- // use the ScheduleKeyDeletion operation to delete the CMKs. After they are
- // deleted, you can delete the custom key store.
- //
- // * CustomKeyStoreInvalidStateException
- // The request was rejected because of the ConnectionState of the custom key
- // store. To get the ConnectionState of a custom key store, use the DescribeCustomKeyStores
- // operation.
- //
- // This exception is thrown under the following conditions:
- //
- // * You requested the CreateKey or GenerateRandom operation in a custom
- // key store that is not connected. These operations are valid only when
- // the custom key store ConnectionState is CONNECTED.
- //
- // * You requested the UpdateCustomKeyStore or DeleteCustomKeyStore operation
- // on a custom key store that is not disconnected. This operation is valid
- // only when the custom key store ConnectionState is DISCONNECTED.
- //
- // * You requested the ConnectCustomKeyStore operation on a custom key store
- // with a ConnectionState of DISCONNECTING or FAILED. This operation is valid
- // for all other ConnectionState values.
- //
- // * CustomKeyStoreNotFoundException
- // The request was rejected because AWS KMS cannot find a custom key store with
- // the specified key store name or ID.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteCustomKeyStore
- func (c *KMS) DeleteCustomKeyStore(input *DeleteCustomKeyStoreInput) (*DeleteCustomKeyStoreOutput, error) {
- req, out := c.DeleteCustomKeyStoreRequest(input)
- return out, req.Send()
- }
- // DeleteCustomKeyStoreWithContext is the same as DeleteCustomKeyStore with the addition of
- // the ability to pass a context and additional request options.
- //
- // See DeleteCustomKeyStore 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 *KMS) DeleteCustomKeyStoreWithContext(ctx aws.Context, input *DeleteCustomKeyStoreInput, opts ...request.Option) (*DeleteCustomKeyStoreOutput, error) {
- req, out := c.DeleteCustomKeyStoreRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opDeleteImportedKeyMaterial = "DeleteImportedKeyMaterial"
- // DeleteImportedKeyMaterialRequest generates a "aws/request.Request" representing the
- // client's request for the DeleteImportedKeyMaterial 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 DeleteImportedKeyMaterial for more information on using the DeleteImportedKeyMaterial
- // 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 DeleteImportedKeyMaterialRequest method.
- // req, resp := client.DeleteImportedKeyMaterialRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterial
- func (c *KMS) DeleteImportedKeyMaterialRequest(input *DeleteImportedKeyMaterialInput) (req *request.Request, output *DeleteImportedKeyMaterialOutput) {
- op := &request.Operation{
- Name: opDeleteImportedKeyMaterial,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DeleteImportedKeyMaterialInput{}
- }
- output = &DeleteImportedKeyMaterialOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // DeleteImportedKeyMaterial API operation for AWS Key Management Service.
- //
- // Deletes key material that you previously imported. This operation makes the
- // specified customer master key (CMK) unusable. For more information about
- // importing key material into AWS KMS, see Importing Key Material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html)
- // in the AWS Key Management Service Developer Guide. You cannot perform this
- // operation on a CMK in a different AWS account.
- //
- // When the specified CMK is in the PendingDeletion state, this operation does
- // not change the CMK's state. Otherwise, it changes the CMK's state to PendingImport.
- //
- // After you delete key material, you can use ImportKeyMaterial to reimport
- // the same key material into the CMK.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation DeleteImportedKeyMaterial for usage and error information.
- //
- // Returned Error Types:
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * UnsupportedOperationException
- // The request was rejected because a specified parameter is not supported or
- // a specified resource is not valid for this operation.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterial
- func (c *KMS) DeleteImportedKeyMaterial(input *DeleteImportedKeyMaterialInput) (*DeleteImportedKeyMaterialOutput, error) {
- req, out := c.DeleteImportedKeyMaterialRequest(input)
- return out, req.Send()
- }
- // DeleteImportedKeyMaterialWithContext is the same as DeleteImportedKeyMaterial with the addition of
- // the ability to pass a context and additional request options.
- //
- // See DeleteImportedKeyMaterial 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 *KMS) DeleteImportedKeyMaterialWithContext(ctx aws.Context, input *DeleteImportedKeyMaterialInput, opts ...request.Option) (*DeleteImportedKeyMaterialOutput, error) {
- req, out := c.DeleteImportedKeyMaterialRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opDescribeCustomKeyStores = "DescribeCustomKeyStores"
- // DescribeCustomKeyStoresRequest generates a "aws/request.Request" representing the
- // client's request for the DescribeCustomKeyStores 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 DescribeCustomKeyStores for more information on using the DescribeCustomKeyStores
- // 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 DescribeCustomKeyStoresRequest method.
- // req, resp := client.DescribeCustomKeyStoresRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeCustomKeyStores
- func (c *KMS) DescribeCustomKeyStoresRequest(input *DescribeCustomKeyStoresInput) (req *request.Request, output *DescribeCustomKeyStoresOutput) {
- op := &request.Operation{
- Name: opDescribeCustomKeyStores,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DescribeCustomKeyStoresInput{}
- }
- output = &DescribeCustomKeyStoresOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // DescribeCustomKeyStores API operation for AWS Key Management Service.
- //
- // Gets information about custom key stores (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // in the account and region.
- //
- // This operation is part of the Custom Key Store feature (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // feature in AWS KMS, which combines the convenience and extensive integration
- // of AWS KMS with the isolation and control of a single-tenant key store.
- //
- // By default, this operation returns information about all custom key stores
- // in the account and region. To get only information about a particular custom
- // key store, use either the CustomKeyStoreName or CustomKeyStoreId parameter
- // (but not both).
- //
- // To determine whether the custom key store is connected to its AWS CloudHSM
- // cluster, use the ConnectionState element in the response. If an attempt to
- // connect the custom key store failed, the ConnectionState value is FAILED
- // and the ConnectionErrorCode element in the response indicates the cause of
- // the failure. For help interpreting the ConnectionErrorCode, see CustomKeyStoresListEntry.
- //
- // Custom key stores have a DISCONNECTED connection state if the key store has
- // never been connected or you use the DisconnectCustomKeyStore operation to
- // disconnect it. If your custom key store state is CONNECTED but you are having
- // trouble using it, make sure that its associated AWS CloudHSM cluster is active
- // and contains the minimum number of HSMs required for the operation, if any.
- //
- // For help repairing your custom key store, see the Troubleshooting Custom
- // Key Stores (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html)
- // topic in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation DescribeCustomKeyStores for usage and error information.
- //
- // Returned Error Types:
- // * CustomKeyStoreNotFoundException
- // The request was rejected because AWS KMS cannot find a custom key store with
- // the specified key store name or ID.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeCustomKeyStores
- func (c *KMS) DescribeCustomKeyStores(input *DescribeCustomKeyStoresInput) (*DescribeCustomKeyStoresOutput, error) {
- req, out := c.DescribeCustomKeyStoresRequest(input)
- return out, req.Send()
- }
- // DescribeCustomKeyStoresWithContext is the same as DescribeCustomKeyStores with the addition of
- // the ability to pass a context and additional request options.
- //
- // See DescribeCustomKeyStores 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 *KMS) DescribeCustomKeyStoresWithContext(ctx aws.Context, input *DescribeCustomKeyStoresInput, opts ...request.Option) (*DescribeCustomKeyStoresOutput, error) {
- req, out := c.DescribeCustomKeyStoresRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opDescribeKey = "DescribeKey"
- // DescribeKeyRequest generates a "aws/request.Request" representing the
- // client's request for the DescribeKey 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 DescribeKey for more information on using the DescribeKey
- // 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 DescribeKeyRequest method.
- // req, resp := client.DescribeKeyRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKey
- func (c *KMS) DescribeKeyRequest(input *DescribeKeyInput) (req *request.Request, output *DescribeKeyOutput) {
- op := &request.Operation{
- Name: opDescribeKey,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DescribeKeyInput{}
- }
- output = &DescribeKeyOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // DescribeKey API operation for AWS Key Management Service.
- //
- // Provides detailed information about a customer master key (CMK). You can
- // run DescribeKey on a customer managed CMK (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)
- // or an AWS managed CMK (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).
- //
- // This detailed information includes the key ARN, creation date (and deletion
- // date, if applicable), the key state, and the origin and expiration date (if
- // any) of the key material. For CMKs in custom key stores, it includes information
- // about the custom key store, such as the key store ID and the AWS CloudHSM
- // cluster ID. It includes fields, like KeySpec, that help you distinguish symmetric
- // from asymmetric CMKs. It also provides information that is particularly important
- // to asymmetric CMKs, such as the key usage (encryption or signing) and the
- // encryption algorithms or signing algorithms that the CMK supports.
- //
- // DescribeKey does not return the following information:
- //
- // * Aliases associated with the CMK. To get this information, use ListAliases.
- //
- // * Whether automatic key rotation is enabled on the CMK. To get this information,
- // use GetKeyRotationStatus. Also, some key states prevent a CMK from being
- // automatically rotated. For details, see How Automatic Key Rotation Works
- // (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-how-it-works)
- // in AWS Key Management Service Developer Guide.
- //
- // * Tags on the CMK. To get this information, use ListResourceTags.
- //
- // * Key policies and grants on the CMK. To get this information, use GetKeyPolicy
- // and ListGrants.
- //
- // If you call the DescribeKey operation on a predefined AWS alias, that is,
- // an AWS alias with no key ID, AWS KMS creates an AWS managed CMK (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys).
- // Then, it associates the alias with the new CMK, and returns the KeyId and
- // Arn of the new CMK in the response.
- //
- // To perform this operation on a CMK in a different AWS account, specify the
- // key ARN or alias ARN in the value of the KeyId parameter.
- //
- // 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 Key Management Service's
- // API operation DescribeKey for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKey
- func (c *KMS) DescribeKey(input *DescribeKeyInput) (*DescribeKeyOutput, error) {
- req, out := c.DescribeKeyRequest(input)
- return out, req.Send()
- }
- // DescribeKeyWithContext is the same as DescribeKey with the addition of
- // the ability to pass a context and additional request options.
- //
- // See DescribeKey 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 *KMS) DescribeKeyWithContext(ctx aws.Context, input *DescribeKeyInput, opts ...request.Option) (*DescribeKeyOutput, error) {
- req, out := c.DescribeKeyRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opDisableKey = "DisableKey"
- // DisableKeyRequest generates a "aws/request.Request" representing the
- // client's request for the DisableKey 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 DisableKey for more information on using the DisableKey
- // 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 DisableKeyRequest method.
- // req, resp := client.DisableKeyRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKey
- func (c *KMS) DisableKeyRequest(input *DisableKeyInput) (req *request.Request, output *DisableKeyOutput) {
- op := &request.Operation{
- Name: opDisableKey,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DisableKeyInput{}
- }
- output = &DisableKeyOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // DisableKey API operation for AWS Key Management Service.
- //
- // Sets the state of a customer master key (CMK) to disabled, thereby preventing
- // its use for cryptographic operations. You cannot perform this operation on
- // a CMK in a different AWS account.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects the Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation DisableKey for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKey
- func (c *KMS) DisableKey(input *DisableKeyInput) (*DisableKeyOutput, error) {
- req, out := c.DisableKeyRequest(input)
- return out, req.Send()
- }
- // DisableKeyWithContext is the same as DisableKey with the addition of
- // the ability to pass a context and additional request options.
- //
- // See DisableKey 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 *KMS) DisableKeyWithContext(ctx aws.Context, input *DisableKeyInput, opts ...request.Option) (*DisableKeyOutput, error) {
- req, out := c.DisableKeyRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opDisableKeyRotation = "DisableKeyRotation"
- // DisableKeyRotationRequest generates a "aws/request.Request" representing the
- // client's request for the DisableKeyRotation 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 DisableKeyRotation for more information on using the DisableKeyRotation
- // 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 DisableKeyRotationRequest method.
- // req, resp := client.DisableKeyRotationRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKeyRotation
- func (c *KMS) DisableKeyRotationRequest(input *DisableKeyRotationInput) (req *request.Request, output *DisableKeyRotationOutput) {
- op := &request.Operation{
- Name: opDisableKeyRotation,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DisableKeyRotationInput{}
- }
- output = &DisableKeyRotationOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // DisableKeyRotation API operation for AWS Key Management Service.
- //
- // Disables automatic rotation of the key material (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)
- // for the specified symmetric customer master key (CMK).
- //
- // You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported
- // key material, or CMKs in a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).
- // You cannot perform this operation on a CMK in a different AWS account.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation DisableKeyRotation for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DisabledException
- // The request was rejected because the specified CMK is not enabled.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // * UnsupportedOperationException
- // The request was rejected because a specified parameter is not supported or
- // a specified resource is not valid for this operation.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKeyRotation
- func (c *KMS) DisableKeyRotation(input *DisableKeyRotationInput) (*DisableKeyRotationOutput, error) {
- req, out := c.DisableKeyRotationRequest(input)
- return out, req.Send()
- }
- // DisableKeyRotationWithContext is the same as DisableKeyRotation with the addition of
- // the ability to pass a context and additional request options.
- //
- // See DisableKeyRotation 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 *KMS) DisableKeyRotationWithContext(ctx aws.Context, input *DisableKeyRotationInput, opts ...request.Option) (*DisableKeyRotationOutput, error) {
- req, out := c.DisableKeyRotationRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opDisconnectCustomKeyStore = "DisconnectCustomKeyStore"
- // DisconnectCustomKeyStoreRequest generates a "aws/request.Request" representing the
- // client's request for the DisconnectCustomKeyStore 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 DisconnectCustomKeyStore for more information on using the DisconnectCustomKeyStore
- // 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 DisconnectCustomKeyStoreRequest method.
- // req, resp := client.DisconnectCustomKeyStoreRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisconnectCustomKeyStore
- func (c *KMS) DisconnectCustomKeyStoreRequest(input *DisconnectCustomKeyStoreInput) (req *request.Request, output *DisconnectCustomKeyStoreOutput) {
- op := &request.Operation{
- Name: opDisconnectCustomKeyStore,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DisconnectCustomKeyStoreInput{}
- }
- output = &DisconnectCustomKeyStoreOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // DisconnectCustomKeyStore API operation for AWS Key Management Service.
- //
- // Disconnects the custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // from its associated AWS CloudHSM cluster. While a custom key store is disconnected,
- // you can manage the custom key store and its customer master keys (CMKs),
- // but you cannot create or use CMKs in the custom key store. You can reconnect
- // the custom key store at any time.
- //
- // While a custom key store is disconnected, all attempts to create customer
- // master keys (CMKs) in the custom key store or to use existing CMKs in cryptographic
- // operations will fail. This action can prevent users from storing and accessing
- // sensitive data.
- //
- // To find the connection state of a custom key store, use the DescribeCustomKeyStores
- // operation. To reconnect a custom key store, use the ConnectCustomKeyStore
- // operation.
- //
- // If the operation succeeds, it returns a JSON object with no properties.
- //
- // This operation is part of the Custom Key Store feature (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // feature in AWS KMS, which combines the convenience and extensive integration
- // of AWS KMS with the isolation and control of a single-tenant key store.
- //
- // 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 Key Management Service's
- // API operation DisconnectCustomKeyStore for usage and error information.
- //
- // Returned Error Types:
- // * CustomKeyStoreInvalidStateException
- // The request was rejected because of the ConnectionState of the custom key
- // store. To get the ConnectionState of a custom key store, use the DescribeCustomKeyStores
- // operation.
- //
- // This exception is thrown under the following conditions:
- //
- // * You requested the CreateKey or GenerateRandom operation in a custom
- // key store that is not connected. These operations are valid only when
- // the custom key store ConnectionState is CONNECTED.
- //
- // * You requested the UpdateCustomKeyStore or DeleteCustomKeyStore operation
- // on a custom key store that is not disconnected. This operation is valid
- // only when the custom key store ConnectionState is DISCONNECTED.
- //
- // * You requested the ConnectCustomKeyStore operation on a custom key store
- // with a ConnectionState of DISCONNECTING or FAILED. This operation is valid
- // for all other ConnectionState values.
- //
- // * CustomKeyStoreNotFoundException
- // The request was rejected because AWS KMS cannot find a custom key store with
- // the specified key store name or ID.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisconnectCustomKeyStore
- func (c *KMS) DisconnectCustomKeyStore(input *DisconnectCustomKeyStoreInput) (*DisconnectCustomKeyStoreOutput, error) {
- req, out := c.DisconnectCustomKeyStoreRequest(input)
- return out, req.Send()
- }
- // DisconnectCustomKeyStoreWithContext is the same as DisconnectCustomKeyStore with the addition of
- // the ability to pass a context and additional request options.
- //
- // See DisconnectCustomKeyStore 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 *KMS) DisconnectCustomKeyStoreWithContext(ctx aws.Context, input *DisconnectCustomKeyStoreInput, opts ...request.Option) (*DisconnectCustomKeyStoreOutput, error) {
- req, out := c.DisconnectCustomKeyStoreRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opEnableKey = "EnableKey"
- // EnableKeyRequest generates a "aws/request.Request" representing the
- // client's request for the EnableKey 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 EnableKey for more information on using the EnableKey
- // 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 EnableKeyRequest method.
- // req, resp := client.EnableKeyRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKey
- func (c *KMS) EnableKeyRequest(input *EnableKeyInput) (req *request.Request, output *EnableKeyOutput) {
- op := &request.Operation{
- Name: opEnableKey,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &EnableKeyInput{}
- }
- output = &EnableKeyOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // EnableKey API operation for AWS Key Management Service.
- //
- // Sets the key state of a customer master key (CMK) to enabled. This allows
- // you to use the CMK for cryptographic operations. You cannot perform this
- // operation on a CMK in a different AWS account.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation EnableKey for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * LimitExceededException
- // The request was rejected because a limit was exceeded. For more information,
- // see Limits (https://docs.aws.amazon.com/kms/latest/developerguide/limits.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKey
- func (c *KMS) EnableKey(input *EnableKeyInput) (*EnableKeyOutput, error) {
- req, out := c.EnableKeyRequest(input)
- return out, req.Send()
- }
- // EnableKeyWithContext is the same as EnableKey with the addition of
- // the ability to pass a context and additional request options.
- //
- // See EnableKey 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 *KMS) EnableKeyWithContext(ctx aws.Context, input *EnableKeyInput, opts ...request.Option) (*EnableKeyOutput, error) {
- req, out := c.EnableKeyRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opEnableKeyRotation = "EnableKeyRotation"
- // EnableKeyRotationRequest generates a "aws/request.Request" representing the
- // client's request for the EnableKeyRotation 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 EnableKeyRotation for more information on using the EnableKeyRotation
- // 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 EnableKeyRotationRequest method.
- // req, resp := client.EnableKeyRotationRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRotation
- func (c *KMS) EnableKeyRotationRequest(input *EnableKeyRotationInput) (req *request.Request, output *EnableKeyRotationOutput) {
- op := &request.Operation{
- Name: opEnableKeyRotation,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &EnableKeyRotationInput{}
- }
- output = &EnableKeyRotationOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // EnableKeyRotation API operation for AWS Key Management Service.
- //
- // Enables automatic rotation of the key material (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)
- // for the specified symmetric customer master key (CMK). You cannot perform
- // this operation on a CMK in a different AWS account.
- //
- // You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported
- // key material, or CMKs in a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation EnableKeyRotation for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DisabledException
- // The request was rejected because the specified CMK is not enabled.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // * UnsupportedOperationException
- // The request was rejected because a specified parameter is not supported or
- // a specified resource is not valid for this operation.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRotation
- func (c *KMS) EnableKeyRotation(input *EnableKeyRotationInput) (*EnableKeyRotationOutput, error) {
- req, out := c.EnableKeyRotationRequest(input)
- return out, req.Send()
- }
- // EnableKeyRotationWithContext is the same as EnableKeyRotation with the addition of
- // the ability to pass a context and additional request options.
- //
- // See EnableKeyRotation 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 *KMS) EnableKeyRotationWithContext(ctx aws.Context, input *EnableKeyRotationInput, opts ...request.Option) (*EnableKeyRotationOutput, error) {
- req, out := c.EnableKeyRotationRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opEncrypt = "Encrypt"
- // EncryptRequest generates a "aws/request.Request" representing the
- // client's request for the Encrypt 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 Encrypt for more information on using the Encrypt
- // 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 EncryptRequest method.
- // req, resp := client.EncryptRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Encrypt
- func (c *KMS) EncryptRequest(input *EncryptInput) (req *request.Request, output *EncryptOutput) {
- op := &request.Operation{
- Name: opEncrypt,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &EncryptInput{}
- }
- output = &EncryptOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // Encrypt API operation for AWS Key Management Service.
- //
- // Encrypts plaintext into ciphertext by using a customer master key (CMK).
- // The Encrypt operation has two primary use cases:
- //
- // * You can encrypt small amounts of arbitrary data, such as a personal
- // identifier or database password, or other sensitive information.
- //
- // * You can use the Encrypt operation to move encrypted data from one AWS
- // region to another. In the first region, generate a data key and use the
- // plaintext key to encrypt the data. Then, in the new region, call the Encrypt
- // method on same plaintext data key. Now, you can safely move the encrypted
- // data and encrypted data key to the new region, and decrypt in the new
- // region when necessary.
- //
- // You don't need to use the Encrypt operation to encrypt a data key. The GenerateDataKey
- // and GenerateDataKeyPair operations return a plaintext data key and an encrypted
- // copy of that data key.
- //
- // When you encrypt data, you must specify a symmetric or asymmetric CMK to
- // use in the encryption operation. The CMK must have a KeyUsage value of ENCRYPT_DECRYPT.
- // To find the KeyUsage of a CMK, use the DescribeKey operation.
- //
- // If you use a symmetric CMK, you can use an encryption context to add additional
- // security to your encryption operation. If you specify an EncryptionContext
- // when encrypting data, you must specify the same encryption context (a case-sensitive
- // exact match) when decrypting the data. Otherwise, the request to decrypt
- // fails with an InvalidCiphertextException. For more information, see Encryption
- // Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide.
- //
- // If you specify an asymmetric CMK, you must also specify the encryption algorithm.
- // The algorithm must be compatible with the CMK type.
- //
- // When you use an asymmetric CMK to encrypt or reencrypt data, be sure to record
- // the CMK and encryption algorithm that you choose. You will be required to
- // provide the same CMK and encryption algorithm when you decrypt the data.
- // If the CMK and algorithm do not match the values used to encrypt the data,
- // the decrypt operation fails.
- //
- // You are not required to supply the CMK ID and encryption algorithm when you
- // decrypt with symmetric CMKs because AWS KMS stores this information in the
- // ciphertext blob. AWS KMS cannot store metadata in ciphertext generated with
- // asymmetric keys. The standard format for asymmetric key ciphertext does not
- // include configurable fields.
- //
- // The maximum size of the data that you can encrypt varies with the type of
- // CMK and the encryption algorithm that you choose.
- //
- // * Symmetric CMKs SYMMETRIC_DEFAULT: 4096 bytes
- //
- // * RSA_2048 RSAES_OAEP_SHA_1: 214 bytes RSAES_OAEP_SHA_256: 190 bytes
- //
- // * RSA_3072 RSAES_OAEP_SHA_1: 342 bytes RSAES_OAEP_SHA_256: 318 bytes
- //
- // * RSA_4096 RSAES_OAEP_SHA_1: 470 bytes RSAES_OAEP_SHA_256: 446 bytes
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // To perform this operation on a CMK in a different AWS account, specify the
- // key ARN or alias ARN in the value of the KeyId parameter.
- //
- // 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 Key Management Service's
- // API operation Encrypt for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DisabledException
- // The request was rejected because the specified CMK is not enabled.
- //
- // * KeyUnavailableException
- // The request was rejected because the specified CMK was not available. You
- // can retry the request.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidKeyUsageException
- // The request was rejected for one of the following reasons:
- //
- // * The KeyUsage value of the CMK is incompatible with the API operation.
- //
- // * The encryption algorithm or signing algorithm specified for the operation
- // is incompatible with the type of key material in the CMK (CustomerMasterKeySpec).
- //
- // For encrypting, decrypting, re-encrypting, and generating data keys, the
- // KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the KeyUsage
- // must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation.
- //
- // To find the encryption or signing algorithms supported for a particular CMK,
- // use the DescribeKey operation.
- //
- // * InvalidGrantTokenException
- // The request was rejected because the specified grant token is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Encrypt
- func (c *KMS) Encrypt(input *EncryptInput) (*EncryptOutput, error) {
- req, out := c.EncryptRequest(input)
- return out, req.Send()
- }
- // EncryptWithContext is the same as Encrypt with the addition of
- // the ability to pass a context and additional request options.
- //
- // See Encrypt 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 *KMS) EncryptWithContext(ctx aws.Context, input *EncryptInput, opts ...request.Option) (*EncryptOutput, error) {
- req, out := c.EncryptRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opGenerateDataKey = "GenerateDataKey"
- // GenerateDataKeyRequest generates a "aws/request.Request" representing the
- // client's request for the GenerateDataKey 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 GenerateDataKey for more information on using the GenerateDataKey
- // 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 GenerateDataKeyRequest method.
- // req, resp := client.GenerateDataKeyRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKey
- func (c *KMS) GenerateDataKeyRequest(input *GenerateDataKeyInput) (req *request.Request, output *GenerateDataKeyOutput) {
- op := &request.Operation{
- Name: opGenerateDataKey,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &GenerateDataKeyInput{}
- }
- output = &GenerateDataKeyOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // GenerateDataKey API operation for AWS Key Management Service.
- //
- // Generates a unique symmetric data key. This operation returns a plaintext
- // copy of the data key and a copy that is encrypted under a customer master
- // key (CMK) that you specify. You can use the plaintext key to encrypt your
- // data outside of AWS KMS and store the encrypted data key with the encrypted
- // data.
- //
- // GenerateDataKey returns a unique data key for each request. The bytes in
- // the key are not related to the caller or CMK that is used to encrypt the
- // data key.
- //
- // To generate a data key, specify the symmetric CMK that will be used to encrypt
- // the data key. You cannot use an asymmetric CMK to generate data keys.
- //
- // You must also specify the length of the data key. Use either the KeySpec
- // or NumberOfBytes parameters (but not both). For 128-bit and 256-bit data
- // keys, use the KeySpec parameter.
- //
- // If the operation succeeds, the plaintext copy of the data key is in the Plaintext
- // field of the response, and the encrypted copy of the data key in the CiphertextBlob
- // field.
- //
- // To get only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext.
- // To generate an asymmetric data key pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext
- // operation. To get a cryptographically secure random byte string, use GenerateRandom.
- //
- // You can use the optional encryption context to add additional security to
- // the encryption operation. If you specify an EncryptionContext, you must specify
- // the same encryption context (a case-sensitive exact match) when decrypting
- // the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException.
- // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // We recommend that you use the following pattern to encrypt data locally in
- // your application:
- //
- // Use the GenerateDataKey operation to get a data encryption key.
- //
- // Use the plaintext data key (returned in the Plaintext field of the response)
- // to encrypt data locally, then erase the plaintext data key from memory.
- //
- // Store the encrypted data key (returned in the CiphertextBlob field of the
- // response) alongside the locally encrypted data.
- //
- // To decrypt data locally:
- //
- // Use the Decrypt operation to decrypt the encrypted data key. The operation
- // returns a plaintext copy of the data key.
- //
- // Use the plaintext data key to decrypt data locally, then erase the plaintext
- // data key from memory.
- //
- // 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 Key Management Service's
- // API operation GenerateDataKey for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DisabledException
- // The request was rejected because the specified CMK is not enabled.
- //
- // * KeyUnavailableException
- // The request was rejected because the specified CMK was not available. You
- // can retry the request.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidKeyUsageException
- // The request was rejected for one of the following reasons:
- //
- // * The KeyUsage value of the CMK is incompatible with the API operation.
- //
- // * The encryption algorithm or signing algorithm specified for the operation
- // is incompatible with the type of key material in the CMK (CustomerMasterKeySpec).
- //
- // For encrypting, decrypting, re-encrypting, and generating data keys, the
- // KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the KeyUsage
- // must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation.
- //
- // To find the encryption or signing algorithms supported for a particular CMK,
- // use the DescribeKey operation.
- //
- // * InvalidGrantTokenException
- // The request was rejected because the specified grant token is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKey
- func (c *KMS) GenerateDataKey(input *GenerateDataKeyInput) (*GenerateDataKeyOutput, error) {
- req, out := c.GenerateDataKeyRequest(input)
- return out, req.Send()
- }
- // GenerateDataKeyWithContext is the same as GenerateDataKey with the addition of
- // the ability to pass a context and additional request options.
- //
- // See GenerateDataKey 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 *KMS) GenerateDataKeyWithContext(ctx aws.Context, input *GenerateDataKeyInput, opts ...request.Option) (*GenerateDataKeyOutput, error) {
- req, out := c.GenerateDataKeyRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opGenerateDataKeyPair = "GenerateDataKeyPair"
- // GenerateDataKeyPairRequest generates a "aws/request.Request" representing the
- // client's request for the GenerateDataKeyPair 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 GenerateDataKeyPair for more information on using the GenerateDataKeyPair
- // 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 GenerateDataKeyPairRequest method.
- // req, resp := client.GenerateDataKeyPairRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPair
- func (c *KMS) GenerateDataKeyPairRequest(input *GenerateDataKeyPairInput) (req *request.Request, output *GenerateDataKeyPairOutput) {
- op := &request.Operation{
- Name: opGenerateDataKeyPair,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &GenerateDataKeyPairInput{}
- }
- output = &GenerateDataKeyPairOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // GenerateDataKeyPair API operation for AWS Key Management Service.
- //
- // Generates a unique asymmetric data key pair. The GenerateDataKeyPair operation
- // returns a plaintext public key, a plaintext private key, and a copy of the
- // private key that is encrypted under the symmetric CMK you specify. You can
- // use the data key pair to perform asymmetric cryptography outside of AWS KMS.
- //
- // GenerateDataKeyPair returns a unique data key pair for each request. The
- // bytes in the keys are not related to the caller or the CMK that is used to
- // encrypt the private key.
- //
- // You can use the public key that GenerateDataKeyPair returns to encrypt data
- // or verify a signature outside of AWS KMS. Then, store the encrypted private
- // key with the data. When you are ready to decrypt data or sign a message,
- // you can use the Decrypt operation to decrypt the encrypted private key.
- //
- // To generate a data key pair, you must specify a symmetric customer master
- // key (CMK) to encrypt the private key in a data key pair. You cannot use an
- // asymmetric CMK. To get the type of your CMK, use the DescribeKey operation.
- //
- // If you are using the data key pair to encrypt data, or for any operation
- // where you don't immediately need a private key, consider using the GenerateDataKeyPairWithoutPlaintext
- // operation. GenerateDataKeyPairWithoutPlaintext returns a plaintext public
- // key and an encrypted private key, but omits the plaintext private key that
- // you need only to decrypt ciphertext or sign a message. Later, when you need
- // to decrypt the data or sign a message, use the Decrypt operation to decrypt
- // the encrypted private key in the data key pair.
- //
- // You can use the optional encryption context to add additional security to
- // the encryption operation. If you specify an EncryptionContext, you must specify
- // the same encryption context (a case-sensitive exact match) when decrypting
- // the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException.
- // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation GenerateDataKeyPair for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DisabledException
- // The request was rejected because the specified CMK is not enabled.
- //
- // * KeyUnavailableException
- // The request was rejected because the specified CMK was not available. You
- // can retry the request.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidKeyUsageException
- // The request was rejected for one of the following reasons:
- //
- // * The KeyUsage value of the CMK is incompatible with the API operation.
- //
- // * The encryption algorithm or signing algorithm specified for the operation
- // is incompatible with the type of key material in the CMK (CustomerMasterKeySpec).
- //
- // For encrypting, decrypting, re-encrypting, and generating data keys, the
- // KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the KeyUsage
- // must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation.
- //
- // To find the encryption or signing algorithms supported for a particular CMK,
- // use the DescribeKey operation.
- //
- // * InvalidGrantTokenException
- // The request was rejected because the specified grant token is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPair
- func (c *KMS) GenerateDataKeyPair(input *GenerateDataKeyPairInput) (*GenerateDataKeyPairOutput, error) {
- req, out := c.GenerateDataKeyPairRequest(input)
- return out, req.Send()
- }
- // GenerateDataKeyPairWithContext is the same as GenerateDataKeyPair with the addition of
- // the ability to pass a context and additional request options.
- //
- // See GenerateDataKeyPair 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 *KMS) GenerateDataKeyPairWithContext(ctx aws.Context, input *GenerateDataKeyPairInput, opts ...request.Option) (*GenerateDataKeyPairOutput, error) {
- req, out := c.GenerateDataKeyPairRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opGenerateDataKeyPairWithoutPlaintext = "GenerateDataKeyPairWithoutPlaintext"
- // GenerateDataKeyPairWithoutPlaintextRequest generates a "aws/request.Request" representing the
- // client's request for the GenerateDataKeyPairWithoutPlaintext 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 GenerateDataKeyPairWithoutPlaintext for more information on using the GenerateDataKeyPairWithoutPlaintext
- // 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 GenerateDataKeyPairWithoutPlaintextRequest method.
- // req, resp := client.GenerateDataKeyPairWithoutPlaintextRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintext
- func (c *KMS) GenerateDataKeyPairWithoutPlaintextRequest(input *GenerateDataKeyPairWithoutPlaintextInput) (req *request.Request, output *GenerateDataKeyPairWithoutPlaintextOutput) {
- op := &request.Operation{
- Name: opGenerateDataKeyPairWithoutPlaintext,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &GenerateDataKeyPairWithoutPlaintextInput{}
- }
- output = &GenerateDataKeyPairWithoutPlaintextOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // GenerateDataKeyPairWithoutPlaintext API operation for AWS Key Management Service.
- //
- // Generates a unique asymmetric data key pair. The GenerateDataKeyPairWithoutPlaintext
- // operation returns a plaintext public key and a copy of the private key that
- // is encrypted under the symmetric CMK you specify. Unlike GenerateDataKeyPair,
- // this operation does not return a plaintext private key.
- //
- // To generate a data key pair, you must specify a symmetric customer master
- // key (CMK) to encrypt the private key in the data key pair. You cannot use
- // an asymmetric CMK. To get the type of your CMK, use the KeySpec field in
- // the DescribeKey response.
- //
- // You can use the public key that GenerateDataKeyPairWithoutPlaintext returns
- // to encrypt data or verify a signature outside of AWS KMS. Then, store the
- // encrypted private key with the data. When you are ready to decrypt data or
- // sign a message, you can use the Decrypt operation to decrypt the encrypted
- // private key.
- //
- // GenerateDataKeyPairWithoutPlaintext returns a unique data key pair for each
- // request. The bytes in the key are not related to the caller or CMK that is
- // used to encrypt the private key.
- //
- // You can use the optional encryption context to add additional security to
- // the encryption operation. If you specify an EncryptionContext, you must specify
- // the same encryption context (a case-sensitive exact match) when decrypting
- // the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException.
- // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation GenerateDataKeyPairWithoutPlaintext for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DisabledException
- // The request was rejected because the specified CMK is not enabled.
- //
- // * KeyUnavailableException
- // The request was rejected because the specified CMK was not available. You
- // can retry the request.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidKeyUsageException
- // The request was rejected for one of the following reasons:
- //
- // * The KeyUsage value of the CMK is incompatible with the API operation.
- //
- // * The encryption algorithm or signing algorithm specified for the operation
- // is incompatible with the type of key material in the CMK (CustomerMasterKeySpec).
- //
- // For encrypting, decrypting, re-encrypting, and generating data keys, the
- // KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the KeyUsage
- // must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation.
- //
- // To find the encryption or signing algorithms supported for a particular CMK,
- // use the DescribeKey operation.
- //
- // * InvalidGrantTokenException
- // The request was rejected because the specified grant token is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyPairWithoutPlaintext
- func (c *KMS) GenerateDataKeyPairWithoutPlaintext(input *GenerateDataKeyPairWithoutPlaintextInput) (*GenerateDataKeyPairWithoutPlaintextOutput, error) {
- req, out := c.GenerateDataKeyPairWithoutPlaintextRequest(input)
- return out, req.Send()
- }
- // GenerateDataKeyPairWithoutPlaintextWithContext is the same as GenerateDataKeyPairWithoutPlaintext with the addition of
- // the ability to pass a context and additional request options.
- //
- // See GenerateDataKeyPairWithoutPlaintext 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 *KMS) GenerateDataKeyPairWithoutPlaintextWithContext(ctx aws.Context, input *GenerateDataKeyPairWithoutPlaintextInput, opts ...request.Option) (*GenerateDataKeyPairWithoutPlaintextOutput, error) {
- req, out := c.GenerateDataKeyPairWithoutPlaintextRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opGenerateDataKeyWithoutPlaintext = "GenerateDataKeyWithoutPlaintext"
- // GenerateDataKeyWithoutPlaintextRequest generates a "aws/request.Request" representing the
- // client's request for the GenerateDataKeyWithoutPlaintext 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 GenerateDataKeyWithoutPlaintext for more information on using the GenerateDataKeyWithoutPlaintext
- // 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 GenerateDataKeyWithoutPlaintextRequest method.
- // req, resp := client.GenerateDataKeyWithoutPlaintextRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintext
- func (c *KMS) GenerateDataKeyWithoutPlaintextRequest(input *GenerateDataKeyWithoutPlaintextInput) (req *request.Request, output *GenerateDataKeyWithoutPlaintextOutput) {
- op := &request.Operation{
- Name: opGenerateDataKeyWithoutPlaintext,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &GenerateDataKeyWithoutPlaintextInput{}
- }
- output = &GenerateDataKeyWithoutPlaintextOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // GenerateDataKeyWithoutPlaintext API operation for AWS Key Management Service.
- //
- // Generates a unique symmetric data key. This operation returns a data key
- // that is encrypted under a customer master key (CMK) that you specify. To
- // request an asymmetric data key pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext
- // operations.
- //
- // GenerateDataKeyWithoutPlaintext is identical to the GenerateDataKey operation
- // except that returns only the encrypted copy of the data key. This operation
- // is useful for systems that need to encrypt data at some point, but not immediately.
- // When you need to encrypt the data, you call the Decrypt operation on the
- // encrypted copy of the key.
- //
- // It's also useful in distributed systems with different levels of trust. For
- // example, you might store encrypted data in containers. One component of your
- // system creates new containers and stores an encrypted data key with each
- // container. Then, a different component puts the data into the containers.
- // That component first decrypts the data key, uses the plaintext data key to
- // encrypt data, puts the encrypted data into the container, and then destroys
- // the plaintext data key. In this system, the component that creates the containers
- // never sees the plaintext data key.
- //
- // GenerateDataKeyWithoutPlaintext returns a unique data key for each request.
- // The bytes in the keys are not related to the caller or CMK that is used to
- // encrypt the private key.
- //
- // To generate a data key, you must specify the symmetric customer master key
- // (CMK) that is used to encrypt the data key. You cannot use an asymmetric
- // CMK to generate a data key. To get the type of your CMK, use the KeySpec
- // field in the DescribeKey response. You must also specify the length of the
- // data key using either the KeySpec or NumberOfBytes field (but not both).
- // For common key lengths (128-bit and 256-bit symmetric keys), use the KeySpec
- // parameter.
- //
- // If the operation succeeds, you will find the plaintext copy of the data key
- // in the Plaintext field of the response, and the encrypted copy of the data
- // key in the CiphertextBlob field.
- //
- // You can use the optional encryption context to add additional security to
- // the encryption operation. If you specify an EncryptionContext, you must specify
- // the same encryption context (a case-sensitive exact match) when decrypting
- // the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException.
- // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation GenerateDataKeyWithoutPlaintext for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DisabledException
- // The request was rejected because the specified CMK is not enabled.
- //
- // * KeyUnavailableException
- // The request was rejected because the specified CMK was not available. You
- // can retry the request.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidKeyUsageException
- // The request was rejected for one of the following reasons:
- //
- // * The KeyUsage value of the CMK is incompatible with the API operation.
- //
- // * The encryption algorithm or signing algorithm specified for the operation
- // is incompatible with the type of key material in the CMK (CustomerMasterKeySpec).
- //
- // For encrypting, decrypting, re-encrypting, and generating data keys, the
- // KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the KeyUsage
- // must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation.
- //
- // To find the encryption or signing algorithms supported for a particular CMK,
- // use the DescribeKey operation.
- //
- // * InvalidGrantTokenException
- // The request was rejected because the specified grant token is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintext
- func (c *KMS) GenerateDataKeyWithoutPlaintext(input *GenerateDataKeyWithoutPlaintextInput) (*GenerateDataKeyWithoutPlaintextOutput, error) {
- req, out := c.GenerateDataKeyWithoutPlaintextRequest(input)
- return out, req.Send()
- }
- // GenerateDataKeyWithoutPlaintextWithContext is the same as GenerateDataKeyWithoutPlaintext with the addition of
- // the ability to pass a context and additional request options.
- //
- // See GenerateDataKeyWithoutPlaintext 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 *KMS) GenerateDataKeyWithoutPlaintextWithContext(ctx aws.Context, input *GenerateDataKeyWithoutPlaintextInput, opts ...request.Option) (*GenerateDataKeyWithoutPlaintextOutput, error) {
- req, out := c.GenerateDataKeyWithoutPlaintextRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opGenerateRandom = "GenerateRandom"
- // GenerateRandomRequest generates a "aws/request.Request" representing the
- // client's request for the GenerateRandom 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 GenerateRandom for more information on using the GenerateRandom
- // 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 GenerateRandomRequest method.
- // req, resp := client.GenerateRandomRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandom
- func (c *KMS) GenerateRandomRequest(input *GenerateRandomInput) (req *request.Request, output *GenerateRandomOutput) {
- op := &request.Operation{
- Name: opGenerateRandom,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &GenerateRandomInput{}
- }
- output = &GenerateRandomOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // GenerateRandom API operation for AWS Key Management Service.
- //
- // Returns a random byte string that is cryptographically secure.
- //
- // By default, the random byte string is generated in AWS KMS. To generate the
- // byte string in the AWS CloudHSM cluster that is associated with a custom
- // key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html),
- // specify the custom key store ID.
- //
- // For more information about entropy and random number generation, see the
- // AWS Key Management Service Cryptographic Details (https://d0.awsstatic.com/whitepapers/KMS-Cryptographic-Details.pdf)
- // whitepaper.
- //
- // 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 Key Management Service's
- // API operation GenerateRandom for usage and error information.
- //
- // Returned Error Types:
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * CustomKeyStoreNotFoundException
- // The request was rejected because AWS KMS cannot find a custom key store with
- // the specified key store name or ID.
- //
- // * CustomKeyStoreInvalidStateException
- // The request was rejected because of the ConnectionState of the custom key
- // store. To get the ConnectionState of a custom key store, use the DescribeCustomKeyStores
- // operation.
- //
- // This exception is thrown under the following conditions:
- //
- // * You requested the CreateKey or GenerateRandom operation in a custom
- // key store that is not connected. These operations are valid only when
- // the custom key store ConnectionState is CONNECTED.
- //
- // * You requested the UpdateCustomKeyStore or DeleteCustomKeyStore operation
- // on a custom key store that is not disconnected. This operation is valid
- // only when the custom key store ConnectionState is DISCONNECTED.
- //
- // * You requested the ConnectCustomKeyStore operation on a custom key store
- // with a ConnectionState of DISCONNECTING or FAILED. This operation is valid
- // for all other ConnectionState values.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandom
- func (c *KMS) GenerateRandom(input *GenerateRandomInput) (*GenerateRandomOutput, error) {
- req, out := c.GenerateRandomRequest(input)
- return out, req.Send()
- }
- // GenerateRandomWithContext is the same as GenerateRandom with the addition of
- // the ability to pass a context and additional request options.
- //
- // See GenerateRandom 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 *KMS) GenerateRandomWithContext(ctx aws.Context, input *GenerateRandomInput, opts ...request.Option) (*GenerateRandomOutput, error) {
- req, out := c.GenerateRandomRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opGetKeyPolicy = "GetKeyPolicy"
- // GetKeyPolicyRequest generates a "aws/request.Request" representing the
- // client's request for the GetKeyPolicy 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 GetKeyPolicy for more information on using the GetKeyPolicy
- // 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 GetKeyPolicyRequest method.
- // req, resp := client.GetKeyPolicyRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyPolicy
- func (c *KMS) GetKeyPolicyRequest(input *GetKeyPolicyInput) (req *request.Request, output *GetKeyPolicyOutput) {
- op := &request.Operation{
- Name: opGetKeyPolicy,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &GetKeyPolicyInput{}
- }
- output = &GetKeyPolicyOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // GetKeyPolicy API operation for AWS Key Management Service.
- //
- // Gets a key policy attached to the specified customer master key (CMK). You
- // cannot perform this operation on a CMK in a different AWS account.
- //
- // 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 Key Management Service's
- // API operation GetKeyPolicy for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyPolicy
- func (c *KMS) GetKeyPolicy(input *GetKeyPolicyInput) (*GetKeyPolicyOutput, error) {
- req, out := c.GetKeyPolicyRequest(input)
- return out, req.Send()
- }
- // GetKeyPolicyWithContext is the same as GetKeyPolicy with the addition of
- // the ability to pass a context and additional request options.
- //
- // See GetKeyPolicy 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 *KMS) GetKeyPolicyWithContext(ctx aws.Context, input *GetKeyPolicyInput, opts ...request.Option) (*GetKeyPolicyOutput, error) {
- req, out := c.GetKeyPolicyRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opGetKeyRotationStatus = "GetKeyRotationStatus"
- // GetKeyRotationStatusRequest generates a "aws/request.Request" representing the
- // client's request for the GetKeyRotationStatus 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 GetKeyRotationStatus for more information on using the GetKeyRotationStatus
- // 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 GetKeyRotationStatusRequest method.
- // req, resp := client.GetKeyRotationStatusRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyRotationStatus
- func (c *KMS) GetKeyRotationStatusRequest(input *GetKeyRotationStatusInput) (req *request.Request, output *GetKeyRotationStatusOutput) {
- op := &request.Operation{
- Name: opGetKeyRotationStatus,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &GetKeyRotationStatusInput{}
- }
- output = &GetKeyRotationStatusOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // GetKeyRotationStatus API operation for AWS Key Management Service.
- //
- // Gets a Boolean value that indicates whether automatic rotation of the key
- // material (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)
- // is enabled for the specified customer master key (CMK).
- //
- // You cannot enable automatic rotation of asymmetric CMKs, CMKs with imported
- // key material, or CMKs in a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).
- // The key rotation status for these CMKs is always false.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // * Disabled: The key rotation status does not change when you disable a
- // CMK. However, while the CMK is disabled, AWS KMS does not rotate the backing
- // key.
- //
- // * Pending deletion: While a CMK is pending deletion, its key rotation
- // status is false and AWS KMS does not rotate the backing key. If you cancel
- // the deletion, the original key rotation status is restored.
- //
- // To perform this operation on a CMK in a different AWS account, specify the
- // key ARN in the value of the KeyId parameter.
- //
- // 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 Key Management Service's
- // API operation GetKeyRotationStatus for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // * UnsupportedOperationException
- // The request was rejected because a specified parameter is not supported or
- // a specified resource is not valid for this operation.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyRotationStatus
- func (c *KMS) GetKeyRotationStatus(input *GetKeyRotationStatusInput) (*GetKeyRotationStatusOutput, error) {
- req, out := c.GetKeyRotationStatusRequest(input)
- return out, req.Send()
- }
- // GetKeyRotationStatusWithContext is the same as GetKeyRotationStatus with the addition of
- // the ability to pass a context and additional request options.
- //
- // See GetKeyRotationStatus 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 *KMS) GetKeyRotationStatusWithContext(ctx aws.Context, input *GetKeyRotationStatusInput, opts ...request.Option) (*GetKeyRotationStatusOutput, error) {
- req, out := c.GetKeyRotationStatusRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opGetParametersForImport = "GetParametersForImport"
- // GetParametersForImportRequest generates a "aws/request.Request" representing the
- // client's request for the GetParametersForImport 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 GetParametersForImport for more information on using the GetParametersForImport
- // 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 GetParametersForImportRequest method.
- // req, resp := client.GetParametersForImportRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetParametersForImport
- func (c *KMS) GetParametersForImportRequest(input *GetParametersForImportInput) (req *request.Request, output *GetParametersForImportOutput) {
- op := &request.Operation{
- Name: opGetParametersForImport,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &GetParametersForImportInput{}
- }
- output = &GetParametersForImportOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // GetParametersForImport API operation for AWS Key Management Service.
- //
- // Returns the items you need to import key material into a symmetric, customer
- // managed customer master key (CMK). For more information about importing key
- // material into AWS KMS, see Importing Key Material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // This operation returns a public key and an import token. Use the public key
- // to encrypt the symmetric key material. Store the import token to send with
- // a subsequent ImportKeyMaterial request.
- //
- // You must specify the key ID of the symmetric CMK into which you will import
- // key material. This CMK's Origin must be EXTERNAL. You must also specify the
- // wrapping algorithm and type of wrapping key (public key) that you will use
- // to encrypt the key material. You cannot perform this operation on an asymmetric
- // CMK or on any CMK in a different AWS account.
- //
- // To import key material, you must use the public key and import token from
- // the same response. These items are valid for 24 hours. The expiration date
- // and time appear in the GetParametersForImport response. You cannot use an
- // expired token in an ImportKeyMaterial request. If your key and token expire,
- // send another GetParametersForImport request.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation GetParametersForImport for usage and error information.
- //
- // Returned Error Types:
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * UnsupportedOperationException
- // The request was rejected because a specified parameter is not supported or
- // a specified resource is not valid for this operation.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetParametersForImport
- func (c *KMS) GetParametersForImport(input *GetParametersForImportInput) (*GetParametersForImportOutput, error) {
- req, out := c.GetParametersForImportRequest(input)
- return out, req.Send()
- }
- // GetParametersForImportWithContext is the same as GetParametersForImport with the addition of
- // the ability to pass a context and additional request options.
- //
- // See GetParametersForImport 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 *KMS) GetParametersForImportWithContext(ctx aws.Context, input *GetParametersForImportInput, opts ...request.Option) (*GetParametersForImportOutput, error) {
- req, out := c.GetParametersForImportRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opGetPublicKey = "GetPublicKey"
- // GetPublicKeyRequest generates a "aws/request.Request" representing the
- // client's request for the GetPublicKey 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 GetPublicKey for more information on using the GetPublicKey
- // 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 GetPublicKeyRequest method.
- // req, resp := client.GetPublicKeyRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKey
- func (c *KMS) GetPublicKeyRequest(input *GetPublicKeyInput) (req *request.Request, output *GetPublicKeyOutput) {
- op := &request.Operation{
- Name: opGetPublicKey,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &GetPublicKeyInput{}
- }
- output = &GetPublicKeyOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // GetPublicKey API operation for AWS Key Management Service.
- //
- // Returns the public key of an asymmetric CMK. Unlike the private key of a
- // asymmetric CMK, which never leaves AWS KMS unencrypted, callers with kms:GetPublicKey
- // permission can download the public key of an asymmetric CMK. You can share
- // the public key to allow others to encrypt messages and verify signatures
- // outside of AWS KMS. For information about symmetric and asymmetric CMKs,
- // see Using Symmetric and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // You do not need to download the public key. Instead, you can use the public
- // key within AWS KMS by calling the Encrypt, ReEncrypt, or Verify operations
- // with the identifier of an asymmetric CMK. When you use the public key within
- // AWS KMS, you benefit from the authentication, authorization, and logging
- // that are part of every AWS KMS operation. You also reduce of risk of encrypting
- // data that cannot be decrypted. These features are not effective outside of
- // AWS KMS. For details, see Special Considerations for Downloading Public Keys
- // (https://docs.aws.amazon.com/kms/latest/developerguide/download-public-key.html#download-public-key-considerations).
- //
- // To help you use the public key safely outside of AWS KMS, GetPublicKey returns
- // important information about the public key in the response, including:
- //
- // * CustomerMasterKeySpec (https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-CustomerMasterKeySpec):
- // The type of key material in the public key, such as RSA_4096 or ECC_NIST_P521.
- //
- // * KeyUsage (https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyUsage):
- // Whether the key is used for encryption or signing.
- //
- // * EncryptionAlgorithms (https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-EncryptionAlgorithms)
- // or SigningAlgorithms (https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-SigningAlgorithms):
- // A list of the encryption algorithms or the signing algorithms for the
- // key.
- //
- // Although AWS KMS cannot enforce these restrictions on external operations,
- // it is crucial that you use this information to prevent the public key from
- // being used improperly. For example, you can prevent a public signing key
- // from being used encrypt data, or prevent a public key from being used with
- // an encryption algorithm that is not supported by AWS KMS. You can also avoid
- // errors, such as using the wrong signing algorithm in a verification operation.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation GetPublicKey for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DisabledException
- // The request was rejected because the specified CMK is not enabled.
- //
- // * KeyUnavailableException
- // The request was rejected because the specified CMK was not available. You
- // can retry the request.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * UnsupportedOperationException
- // The request was rejected because a specified parameter is not supported or
- // a specified resource is not valid for this operation.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * InvalidGrantTokenException
- // The request was rejected because the specified grant token is not valid.
- //
- // * InvalidKeyUsageException
- // The request was rejected for one of the following reasons:
- //
- // * The KeyUsage value of the CMK is incompatible with the API operation.
- //
- // * The encryption algorithm or signing algorithm specified for the operation
- // is incompatible with the type of key material in the CMK (CustomerMasterKeySpec).
- //
- // For encrypting, decrypting, re-encrypting, and generating data keys, the
- // KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the KeyUsage
- // must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation.
- //
- // To find the encryption or signing algorithms supported for a particular CMK,
- // use the DescribeKey operation.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetPublicKey
- func (c *KMS) GetPublicKey(input *GetPublicKeyInput) (*GetPublicKeyOutput, error) {
- req, out := c.GetPublicKeyRequest(input)
- return out, req.Send()
- }
- // GetPublicKeyWithContext is the same as GetPublicKey with the addition of
- // the ability to pass a context and additional request options.
- //
- // See GetPublicKey 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 *KMS) GetPublicKeyWithContext(ctx aws.Context, input *GetPublicKeyInput, opts ...request.Option) (*GetPublicKeyOutput, error) {
- req, out := c.GetPublicKeyRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opImportKeyMaterial = "ImportKeyMaterial"
- // ImportKeyMaterialRequest generates a "aws/request.Request" representing the
- // client's request for the ImportKeyMaterial 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 ImportKeyMaterial for more information on using the ImportKeyMaterial
- // 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 ImportKeyMaterialRequest method.
- // req, resp := client.ImportKeyMaterialRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterial
- func (c *KMS) ImportKeyMaterialRequest(input *ImportKeyMaterialInput) (req *request.Request, output *ImportKeyMaterialOutput) {
- op := &request.Operation{
- Name: opImportKeyMaterial,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &ImportKeyMaterialInput{}
- }
- output = &ImportKeyMaterialOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // ImportKeyMaterial API operation for AWS Key Management Service.
- //
- // Imports key material into an existing symmetric AWS KMS customer master key
- // (CMK) that was created without key material. After you successfully import
- // key material into a CMK, you can reimport the same key material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#reimport-key-material)
- // into that CMK, but you cannot import different key material.
- //
- // You cannot perform this operation on an asymmetric CMK or on any CMK in a
- // different AWS account. For more information about creating CMKs with no key
- // material and then importing key material, see Importing Key Material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // Before using this operation, call GetParametersForImport. Its response includes
- // a public key and an import token. Use the public key to encrypt the key material.
- // Then, submit the import token from the same GetParametersForImport response.
- //
- // When calling this operation, you must specify the following values:
- //
- // * The key ID or key ARN of a CMK with no key material. Its Origin must
- // be EXTERNAL. To create a CMK with no key material, call CreateKey and
- // set the value of its Origin parameter to EXTERNAL. To get the Origin of
- // a CMK, call DescribeKey.)
- //
- // * The encrypted key material. To get the public key to encrypt the key
- // material, call GetParametersForImport.
- //
- // * The import token that GetParametersForImport returned. You must use
- // a public key and token from the same GetParametersForImport response.
- //
- // * Whether the key material expires and if so, when. If you set an expiration
- // date, AWS KMS deletes the key material from the CMK on the specified date,
- // and the CMK becomes unusable. To use the CMK again, you must reimport
- // the same key material. The only way to change an expiration date is by
- // reimporting the same key material and specifying a new expiration date.
- //
- // When this operation is successful, the key state of the CMK changes from
- // PendingImport to Enabled, and you can use the CMK.
- //
- // If this operation fails, use the exception to help determine the problem.
- // If the error is related to the key material, the import token, or wrapping
- // key, use GetParametersForImport to get a new public key and import token
- // for the CMK and repeat the import procedure. For help, see How To Import
- // Key Material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#importing-keys-overview)
- // in the AWS Key Management Service Developer Guide.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation ImportKeyMaterial for usage and error information.
- //
- // Returned Error Types:
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * UnsupportedOperationException
- // The request was rejected because a specified parameter is not supported or
- // a specified resource is not valid for this operation.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // * InvalidCiphertextException
- // From the Decrypt or ReEncrypt operation, the request was rejected because
- // the specified ciphertext, or additional authenticated data incorporated into
- // the ciphertext, such as the encryption context, is corrupted, missing, or
- // otherwise invalid.
- //
- // From the ImportKeyMaterial operation, the request was rejected because AWS
- // KMS could not decrypt the encrypted (wrapped) key material.
- //
- // * IncorrectKeyMaterialException
- // The request was rejected because the key material in the request is, expired,
- // invalid, or is not the same key material that was previously imported into
- // this customer master key (CMK).
- //
- // * ExpiredImportTokenException
- // The request was rejected because the specified import token is expired. Use
- // GetParametersForImport to get a new import token and public key, use the
- // new public key to encrypt the key material, and then try the request again.
- //
- // * InvalidImportTokenException
- // The request was rejected because the provided import token is invalid or
- // is associated with a different customer master key (CMK).
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterial
- func (c *KMS) ImportKeyMaterial(input *ImportKeyMaterialInput) (*ImportKeyMaterialOutput, error) {
- req, out := c.ImportKeyMaterialRequest(input)
- return out, req.Send()
- }
- // ImportKeyMaterialWithContext is the same as ImportKeyMaterial with the addition of
- // the ability to pass a context and additional request options.
- //
- // See ImportKeyMaterial 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 *KMS) ImportKeyMaterialWithContext(ctx aws.Context, input *ImportKeyMaterialInput, opts ...request.Option) (*ImportKeyMaterialOutput, error) {
- req, out := c.ImportKeyMaterialRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opListAliases = "ListAliases"
- // ListAliasesRequest generates a "aws/request.Request" representing the
- // client's request for the ListAliases 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 ListAliases for more information on using the ListAliases
- // 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 ListAliasesRequest method.
- // req, resp := client.ListAliasesRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListAliases
- func (c *KMS) ListAliasesRequest(input *ListAliasesInput) (req *request.Request, output *ListAliasesOutput) {
- op := &request.Operation{
- Name: opListAliases,
- HTTPMethod: "POST",
- HTTPPath: "/",
- Paginator: &request.Paginator{
- InputTokens: []string{"Marker"},
- OutputTokens: []string{"NextMarker"},
- LimitToken: "Limit",
- TruncationToken: "Truncated",
- },
- }
- if input == nil {
- input = &ListAliasesInput{}
- }
- output = &ListAliasesOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // ListAliases API operation for AWS Key Management Service.
- //
- // Gets a list of aliases in the caller's AWS account and region. You cannot
- // list aliases in other accounts. For more information about aliases, see CreateAlias.
- //
- // By default, the ListAliases command returns all aliases in the account and
- // region. To get only the aliases that point to a particular customer master
- // key (CMK), use the KeyId parameter.
- //
- // The ListAliases response can include aliases that you created and associated
- // with your customer managed CMKs, and aliases that AWS created and associated
- // with AWS managed CMKs in your account. You can recognize AWS aliases because
- // their names have the format aws/<service-name>, such as aws/dynamodb.
- //
- // The response might also include aliases that have no TargetKeyId field. These
- // are predefined aliases that AWS has created but has not yet associated with
- // a CMK. Aliases that AWS creates in your account, including predefined aliases,
- // do not count against your AWS KMS aliases limit (https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#aliases-limit).
- //
- // 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 Key Management Service's
- // API operation ListAliases for usage and error information.
- //
- // Returned Error Types:
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidMarkerException
- // The request was rejected because the marker that specifies where pagination
- // should next begin is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListAliases
- func (c *KMS) ListAliases(input *ListAliasesInput) (*ListAliasesOutput, error) {
- req, out := c.ListAliasesRequest(input)
- return out, req.Send()
- }
- // ListAliasesWithContext is the same as ListAliases with the addition of
- // the ability to pass a context and additional request options.
- //
- // See ListAliases 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 *KMS) ListAliasesWithContext(ctx aws.Context, input *ListAliasesInput, opts ...request.Option) (*ListAliasesOutput, error) {
- req, out := c.ListAliasesRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- // ListAliasesPages iterates over the pages of a ListAliases operation,
- // calling the "fn" function with the response data for each page. To stop
- // iterating, return false from the fn function.
- //
- // See ListAliases 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 ListAliases operation.
- // pageNum := 0
- // err := client.ListAliasesPages(params,
- // func(page *kms.ListAliasesOutput, lastPage bool) bool {
- // pageNum++
- // fmt.Println(page)
- // return pageNum <= 3
- // })
- //
- func (c *KMS) ListAliasesPages(input *ListAliasesInput, fn func(*ListAliasesOutput, bool) bool) error {
- return c.ListAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
- }
- // ListAliasesPagesWithContext same as ListAliasesPages 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 *KMS) ListAliasesPagesWithContext(ctx aws.Context, input *ListAliasesInput, fn func(*ListAliasesOutput, bool) bool, opts ...request.Option) error {
- p := request.Pagination{
- NewRequest: func() (*request.Request, error) {
- var inCpy *ListAliasesInput
- if input != nil {
- tmp := *input
- inCpy = &tmp
- }
- req, _ := c.ListAliasesRequest(inCpy)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return req, nil
- },
- }
- for p.Next() {
- if !fn(p.Page().(*ListAliasesOutput), !p.HasNextPage()) {
- break
- }
- }
- return p.Err()
- }
- const opListGrants = "ListGrants"
- // ListGrantsRequest generates a "aws/request.Request" representing the
- // client's request for the ListGrants 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 ListGrants for more information on using the ListGrants
- // 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 ListGrantsRequest method.
- // req, resp := client.ListGrantsRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListGrants
- func (c *KMS) ListGrantsRequest(input *ListGrantsInput) (req *request.Request, output *ListGrantsResponse) {
- op := &request.Operation{
- Name: opListGrants,
- HTTPMethod: "POST",
- HTTPPath: "/",
- Paginator: &request.Paginator{
- InputTokens: []string{"Marker"},
- OutputTokens: []string{"NextMarker"},
- LimitToken: "Limit",
- TruncationToken: "Truncated",
- },
- }
- if input == nil {
- input = &ListGrantsInput{}
- }
- output = &ListGrantsResponse{}
- req = c.newRequest(op, input, output)
- return
- }
- // ListGrants API operation for AWS Key Management Service.
- //
- // Gets a list of all grants for the specified customer master key (CMK).
- //
- // To perform this operation on a CMK in a different AWS account, specify the
- // key ARN in the value of the KeyId parameter.
- //
- // 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 Key Management Service's
- // API operation ListGrants for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidMarkerException
- // The request was rejected because the marker that specifies where pagination
- // should next begin is not valid.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListGrants
- func (c *KMS) ListGrants(input *ListGrantsInput) (*ListGrantsResponse, error) {
- req, out := c.ListGrantsRequest(input)
- return out, req.Send()
- }
- // ListGrantsWithContext is the same as ListGrants with the addition of
- // the ability to pass a context and additional request options.
- //
- // See ListGrants 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 *KMS) ListGrantsWithContext(ctx aws.Context, input *ListGrantsInput, opts ...request.Option) (*ListGrantsResponse, error) {
- req, out := c.ListGrantsRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- // ListGrantsPages iterates over the pages of a ListGrants operation,
- // calling the "fn" function with the response data for each page. To stop
- // iterating, return false from the fn function.
- //
- // See ListGrants 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 ListGrants operation.
- // pageNum := 0
- // err := client.ListGrantsPages(params,
- // func(page *kms.ListGrantsResponse, lastPage bool) bool {
- // pageNum++
- // fmt.Println(page)
- // return pageNum <= 3
- // })
- //
- func (c *KMS) ListGrantsPages(input *ListGrantsInput, fn func(*ListGrantsResponse, bool) bool) error {
- return c.ListGrantsPagesWithContext(aws.BackgroundContext(), input, fn)
- }
- // ListGrantsPagesWithContext same as ListGrantsPages 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 *KMS) ListGrantsPagesWithContext(ctx aws.Context, input *ListGrantsInput, fn func(*ListGrantsResponse, bool) bool, opts ...request.Option) error {
- p := request.Pagination{
- NewRequest: func() (*request.Request, error) {
- var inCpy *ListGrantsInput
- if input != nil {
- tmp := *input
- inCpy = &tmp
- }
- req, _ := c.ListGrantsRequest(inCpy)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return req, nil
- },
- }
- for p.Next() {
- if !fn(p.Page().(*ListGrantsResponse), !p.HasNextPage()) {
- break
- }
- }
- return p.Err()
- }
- const opListKeyPolicies = "ListKeyPolicies"
- // ListKeyPoliciesRequest generates a "aws/request.Request" representing the
- // client's request for the ListKeyPolicies 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 ListKeyPolicies for more information on using the ListKeyPolicies
- // 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 ListKeyPoliciesRequest method.
- // req, resp := client.ListKeyPoliciesRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyPolicies
- func (c *KMS) ListKeyPoliciesRequest(input *ListKeyPoliciesInput) (req *request.Request, output *ListKeyPoliciesOutput) {
- op := &request.Operation{
- Name: opListKeyPolicies,
- HTTPMethod: "POST",
- HTTPPath: "/",
- Paginator: &request.Paginator{
- InputTokens: []string{"Marker"},
- OutputTokens: []string{"NextMarker"},
- LimitToken: "Limit",
- TruncationToken: "Truncated",
- },
- }
- if input == nil {
- input = &ListKeyPoliciesInput{}
- }
- output = &ListKeyPoliciesOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // ListKeyPolicies API operation for AWS Key Management Service.
- //
- // Gets the names of the key policies that are attached to a customer master
- // key (CMK). This operation is designed to get policy names that you can use
- // in a GetKeyPolicy operation. However, the only valid policy name is default.
- // You cannot perform this operation on a CMK in a different AWS account.
- //
- // 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 Key Management Service's
- // API operation ListKeyPolicies for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyPolicies
- func (c *KMS) ListKeyPolicies(input *ListKeyPoliciesInput) (*ListKeyPoliciesOutput, error) {
- req, out := c.ListKeyPoliciesRequest(input)
- return out, req.Send()
- }
- // ListKeyPoliciesWithContext is the same as ListKeyPolicies with the addition of
- // the ability to pass a context and additional request options.
- //
- // See ListKeyPolicies 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 *KMS) ListKeyPoliciesWithContext(ctx aws.Context, input *ListKeyPoliciesInput, opts ...request.Option) (*ListKeyPoliciesOutput, error) {
- req, out := c.ListKeyPoliciesRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- // ListKeyPoliciesPages iterates over the pages of a ListKeyPolicies operation,
- // calling the "fn" function with the response data for each page. To stop
- // iterating, return false from the fn function.
- //
- // See ListKeyPolicies 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 ListKeyPolicies operation.
- // pageNum := 0
- // err := client.ListKeyPoliciesPages(params,
- // func(page *kms.ListKeyPoliciesOutput, lastPage bool) bool {
- // pageNum++
- // fmt.Println(page)
- // return pageNum <= 3
- // })
- //
- func (c *KMS) ListKeyPoliciesPages(input *ListKeyPoliciesInput, fn func(*ListKeyPoliciesOutput, bool) bool) error {
- return c.ListKeyPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
- }
- // ListKeyPoliciesPagesWithContext same as ListKeyPoliciesPages 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 *KMS) ListKeyPoliciesPagesWithContext(ctx aws.Context, input *ListKeyPoliciesInput, fn func(*ListKeyPoliciesOutput, bool) bool, opts ...request.Option) error {
- p := request.Pagination{
- NewRequest: func() (*request.Request, error) {
- var inCpy *ListKeyPoliciesInput
- if input != nil {
- tmp := *input
- inCpy = &tmp
- }
- req, _ := c.ListKeyPoliciesRequest(inCpy)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return req, nil
- },
- }
- for p.Next() {
- if !fn(p.Page().(*ListKeyPoliciesOutput), !p.HasNextPage()) {
- break
- }
- }
- return p.Err()
- }
- const opListKeys = "ListKeys"
- // ListKeysRequest generates a "aws/request.Request" representing the
- // client's request for the ListKeys 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 ListKeys for more information on using the ListKeys
- // 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 ListKeysRequest method.
- // req, resp := client.ListKeysRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeys
- func (c *KMS) ListKeysRequest(input *ListKeysInput) (req *request.Request, output *ListKeysOutput) {
- op := &request.Operation{
- Name: opListKeys,
- HTTPMethod: "POST",
- HTTPPath: "/",
- Paginator: &request.Paginator{
- InputTokens: []string{"Marker"},
- OutputTokens: []string{"NextMarker"},
- LimitToken: "Limit",
- TruncationToken: "Truncated",
- },
- }
- if input == nil {
- input = &ListKeysInput{}
- }
- output = &ListKeysOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // ListKeys API operation for AWS Key Management Service.
- //
- // Gets a list of all customer master keys (CMKs) in the caller's AWS account
- // and Region.
- //
- // 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 Key Management Service's
- // API operation ListKeys for usage and error information.
- //
- // Returned Error Types:
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidMarkerException
- // The request was rejected because the marker that specifies where pagination
- // should next begin is not valid.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeys
- func (c *KMS) ListKeys(input *ListKeysInput) (*ListKeysOutput, error) {
- req, out := c.ListKeysRequest(input)
- return out, req.Send()
- }
- // ListKeysWithContext is the same as ListKeys with the addition of
- // the ability to pass a context and additional request options.
- //
- // See ListKeys 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 *KMS) ListKeysWithContext(ctx aws.Context, input *ListKeysInput, opts ...request.Option) (*ListKeysOutput, error) {
- req, out := c.ListKeysRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- // ListKeysPages iterates over the pages of a ListKeys operation,
- // calling the "fn" function with the response data for each page. To stop
- // iterating, return false from the fn function.
- //
- // See ListKeys 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 ListKeys operation.
- // pageNum := 0
- // err := client.ListKeysPages(params,
- // func(page *kms.ListKeysOutput, lastPage bool) bool {
- // pageNum++
- // fmt.Println(page)
- // return pageNum <= 3
- // })
- //
- func (c *KMS) ListKeysPages(input *ListKeysInput, fn func(*ListKeysOutput, bool) bool) error {
- return c.ListKeysPagesWithContext(aws.BackgroundContext(), input, fn)
- }
- // ListKeysPagesWithContext same as ListKeysPages 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 *KMS) ListKeysPagesWithContext(ctx aws.Context, input *ListKeysInput, fn func(*ListKeysOutput, bool) bool, opts ...request.Option) error {
- p := request.Pagination{
- NewRequest: func() (*request.Request, error) {
- var inCpy *ListKeysInput
- if input != nil {
- tmp := *input
- inCpy = &tmp
- }
- req, _ := c.ListKeysRequest(inCpy)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return req, nil
- },
- }
- for p.Next() {
- if !fn(p.Page().(*ListKeysOutput), !p.HasNextPage()) {
- break
- }
- }
- return p.Err()
- }
- const opListResourceTags = "ListResourceTags"
- // ListResourceTagsRequest generates a "aws/request.Request" representing the
- // client's request for the ListResourceTags 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 ListResourceTags for more information on using the ListResourceTags
- // 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 ListResourceTagsRequest method.
- // req, resp := client.ListResourceTagsRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListResourceTags
- func (c *KMS) ListResourceTagsRequest(input *ListResourceTagsInput) (req *request.Request, output *ListResourceTagsOutput) {
- op := &request.Operation{
- Name: opListResourceTags,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &ListResourceTagsInput{}
- }
- output = &ListResourceTagsOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // ListResourceTags API operation for AWS Key Management Service.
- //
- // Returns a list of all tags for the specified customer master key (CMK).
- //
- // You cannot perform this operation on a CMK in a different AWS account.
- //
- // 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 Key Management Service's
- // API operation ListResourceTags for usage and error information.
- //
- // Returned Error Types:
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * InvalidMarkerException
- // The request was rejected because the marker that specifies where pagination
- // should next begin is not valid.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListResourceTags
- func (c *KMS) ListResourceTags(input *ListResourceTagsInput) (*ListResourceTagsOutput, error) {
- req, out := c.ListResourceTagsRequest(input)
- return out, req.Send()
- }
- // ListResourceTagsWithContext is the same as ListResourceTags with the addition of
- // the ability to pass a context and additional request options.
- //
- // See ListResourceTags 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 *KMS) ListResourceTagsWithContext(ctx aws.Context, input *ListResourceTagsInput, opts ...request.Option) (*ListResourceTagsOutput, error) {
- req, out := c.ListResourceTagsRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opListRetirableGrants = "ListRetirableGrants"
- // ListRetirableGrantsRequest generates a "aws/request.Request" representing the
- // client's request for the ListRetirableGrants 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 ListRetirableGrants for more information on using the ListRetirableGrants
- // 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 ListRetirableGrantsRequest method.
- // req, resp := client.ListRetirableGrantsRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListRetirableGrants
- func (c *KMS) ListRetirableGrantsRequest(input *ListRetirableGrantsInput) (req *request.Request, output *ListGrantsResponse) {
- op := &request.Operation{
- Name: opListRetirableGrants,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &ListRetirableGrantsInput{}
- }
- output = &ListGrantsResponse{}
- req = c.newRequest(op, input, output)
- return
- }
- // ListRetirableGrants API operation for AWS Key Management Service.
- //
- // Returns a list of all grants for which the grant's RetiringPrincipal matches
- // the one specified.
- //
- // A typical use is to list all grants that you are able to retire. To retire
- // a grant, use RetireGrant.
- //
- // 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 Key Management Service's
- // API operation ListRetirableGrants for usage and error information.
- //
- // Returned Error Types:
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidMarkerException
- // The request was rejected because the marker that specifies where pagination
- // should next begin is not valid.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListRetirableGrants
- func (c *KMS) ListRetirableGrants(input *ListRetirableGrantsInput) (*ListGrantsResponse, error) {
- req, out := c.ListRetirableGrantsRequest(input)
- return out, req.Send()
- }
- // ListRetirableGrantsWithContext is the same as ListRetirableGrants with the addition of
- // the ability to pass a context and additional request options.
- //
- // See ListRetirableGrants 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 *KMS) ListRetirableGrantsWithContext(ctx aws.Context, input *ListRetirableGrantsInput, opts ...request.Option) (*ListGrantsResponse, error) {
- req, out := c.ListRetirableGrantsRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opPutKeyPolicy = "PutKeyPolicy"
- // PutKeyPolicyRequest generates a "aws/request.Request" representing the
- // client's request for the PutKeyPolicy 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 PutKeyPolicy for more information on using the PutKeyPolicy
- // 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 PutKeyPolicyRequest method.
- // req, resp := client.PutKeyPolicyRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/PutKeyPolicy
- func (c *KMS) PutKeyPolicyRequest(input *PutKeyPolicyInput) (req *request.Request, output *PutKeyPolicyOutput) {
- op := &request.Operation{
- Name: opPutKeyPolicy,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &PutKeyPolicyInput{}
- }
- output = &PutKeyPolicyOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // PutKeyPolicy API operation for AWS Key Management Service.
- //
- // Attaches a key policy to the specified customer master key (CMK). You cannot
- // perform this operation on a CMK in a different AWS account.
- //
- // For more information about key policies, see Key Policies (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation PutKeyPolicy for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * MalformedPolicyDocumentException
- // The request was rejected because the specified policy is not syntactically
- // or semantically correct.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * UnsupportedOperationException
- // The request was rejected because a specified parameter is not supported or
- // a specified resource is not valid for this operation.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * LimitExceededException
- // The request was rejected because a limit was exceeded. For more information,
- // see Limits (https://docs.aws.amazon.com/kms/latest/developerguide/limits.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/PutKeyPolicy
- func (c *KMS) PutKeyPolicy(input *PutKeyPolicyInput) (*PutKeyPolicyOutput, error) {
- req, out := c.PutKeyPolicyRequest(input)
- return out, req.Send()
- }
- // PutKeyPolicyWithContext is the same as PutKeyPolicy with the addition of
- // the ability to pass a context and additional request options.
- //
- // See PutKeyPolicy 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 *KMS) PutKeyPolicyWithContext(ctx aws.Context, input *PutKeyPolicyInput, opts ...request.Option) (*PutKeyPolicyOutput, error) {
- req, out := c.PutKeyPolicyRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opReEncrypt = "ReEncrypt"
- // ReEncryptRequest generates a "aws/request.Request" representing the
- // client's request for the ReEncrypt 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 ReEncrypt for more information on using the ReEncrypt
- // 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 ReEncryptRequest method.
- // req, resp := client.ReEncryptRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncrypt
- func (c *KMS) ReEncryptRequest(input *ReEncryptInput) (req *request.Request, output *ReEncryptOutput) {
- op := &request.Operation{
- Name: opReEncrypt,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &ReEncryptInput{}
- }
- output = &ReEncryptOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // ReEncrypt API operation for AWS Key Management Service.
- //
- // Decrypts ciphertext and then reencrypts it entirely within AWS KMS. You can
- // use this operation to change the customer master key (CMK) under which data
- // is encrypted, such as when you manually rotate (https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-manually)
- // a CMK or change the CMK that protects a ciphertext. You can also use it to
- // reencrypt ciphertext under the same CMK, such as to change the encryption
- // context of a ciphertext.
- //
- // The ReEncrypt operation can decrypt ciphertext that was encrypted by using
- // an AWS KMS CMK in an AWS KMS operation, such as Encrypt or GenerateDataKey.
- // It can also decrypt ciphertext that was encrypted by using the public key
- // of an asymmetric CMK outside of AWS KMS. However, it cannot decrypt ciphertext
- // produced by other libraries, such as the AWS Encryption SDK (https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/)
- // or Amazon S3 client-side encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html).
- // These libraries return a ciphertext format that is incompatible with AWS
- // KMS.
- //
- // When you use the ReEncrypt operation, you need to provide information for
- // the decrypt operation and the subsequent encrypt operation.
- //
- // * If your ciphertext was encrypted under an asymmetric CMK, you must identify
- // the source CMK, that is, the CMK that encrypted the ciphertext. You must
- // also supply the encryption algorithm that was used. This information is
- // required to decrypt the data.
- //
- // * It is optional, but you can specify a source CMK even when the ciphertext
- // was encrypted under a symmetric CMK. This ensures that the ciphertext
- // is decrypted only by using a particular CMK. If the CMK that you specify
- // cannot decrypt the ciphertext, the ReEncrypt operation fails.
- //
- // * To reencrypt the data, you must specify the destination CMK, that is,
- // the CMK that re-encrypts the data after it is decrypted. You can select
- // a symmetric or asymmetric CMK. If the destination CMK is an asymmetric
- // CMK, you must also provide the encryption algorithm. The algorithm that
- // you choose must be compatible with the CMK. When you use an asymmetric
- // CMK to encrypt or reencrypt data, be sure to record the CMK and encryption
- // algorithm that you choose. You will be required to provide the same CMK
- // and encryption algorithm when you decrypt the data. If the CMK and algorithm
- // do not match the values used to encrypt the data, the decrypt operation
- // fails. You are not required to supply the CMK ID and encryption algorithm
- // when you decrypt with symmetric CMKs because AWS KMS stores this information
- // in the ciphertext blob. AWS KMS cannot store metadata in ciphertext generated
- // with asymmetric keys. The standard format for asymmetric key ciphertext
- // does not include configurable fields.
- //
- // Unlike other AWS KMS API operations, ReEncrypt callers must have two permissions:
- //
- // * kms:EncryptFrom permission on the source CMK
- //
- // * kms:EncryptTo permission on the destination CMK
- //
- // To permit reencryption from
- //
- // or to a CMK, include the "kms:ReEncrypt*" permission in your key policy (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html).
- // This permission is automatically included in the key policy when you use
- // the console to create a CMK. But you must include it manually when you create
- // a CMK programmatically or when you use the PutKeyPolicy operation set a key
- // policy.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation ReEncrypt for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DisabledException
- // The request was rejected because the specified CMK is not enabled.
- //
- // * InvalidCiphertextException
- // From the Decrypt or ReEncrypt operation, the request was rejected because
- // the specified ciphertext, or additional authenticated data incorporated into
- // the ciphertext, such as the encryption context, is corrupted, missing, or
- // otherwise invalid.
- //
- // From the ImportKeyMaterial operation, the request was rejected because AWS
- // KMS could not decrypt the encrypted (wrapped) key material.
- //
- // * KeyUnavailableException
- // The request was rejected because the specified CMK was not available. You
- // can retry the request.
- //
- // * IncorrectKeyException
- // The request was rejected because the specified CMK cannot decrypt the data.
- // The KeyId in a Decrypt request and the SourceKeyId in a ReEncrypt request
- // must identify the same CMK that was used to encrypt the ciphertext.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidKeyUsageException
- // The request was rejected for one of the following reasons:
- //
- // * The KeyUsage value of the CMK is incompatible with the API operation.
- //
- // * The encryption algorithm or signing algorithm specified for the operation
- // is incompatible with the type of key material in the CMK (CustomerMasterKeySpec).
- //
- // For encrypting, decrypting, re-encrypting, and generating data keys, the
- // KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the KeyUsage
- // must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation.
- //
- // To find the encryption or signing algorithms supported for a particular CMK,
- // use the DescribeKey operation.
- //
- // * InvalidGrantTokenException
- // The request was rejected because the specified grant token is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncrypt
- func (c *KMS) ReEncrypt(input *ReEncryptInput) (*ReEncryptOutput, error) {
- req, out := c.ReEncryptRequest(input)
- return out, req.Send()
- }
- // ReEncryptWithContext is the same as ReEncrypt with the addition of
- // the ability to pass a context and additional request options.
- //
- // See ReEncrypt 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 *KMS) ReEncryptWithContext(ctx aws.Context, input *ReEncryptInput, opts ...request.Option) (*ReEncryptOutput, error) {
- req, out := c.ReEncryptRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opRetireGrant = "RetireGrant"
- // RetireGrantRequest generates a "aws/request.Request" representing the
- // client's request for the RetireGrant 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 RetireGrant for more information on using the RetireGrant
- // 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 RetireGrantRequest method.
- // req, resp := client.RetireGrantRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RetireGrant
- func (c *KMS) RetireGrantRequest(input *RetireGrantInput) (req *request.Request, output *RetireGrantOutput) {
- op := &request.Operation{
- Name: opRetireGrant,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &RetireGrantInput{}
- }
- output = &RetireGrantOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // RetireGrant API operation for AWS Key Management Service.
- //
- // Retires a grant. To clean up, you can retire a grant when you're done using
- // it. You should revoke a grant when you intend to actively deny operations
- // that depend on it. The following are permitted to call this API:
- //
- // * The AWS account (root user) under which the grant was created
- //
- // * The RetiringPrincipal, if present in the grant
- //
- // * The GranteePrincipal, if RetireGrant is an operation specified in the
- // grant
- //
- // You must identify the grant to retire by its grant token or by a combination
- // of the grant ID and the Amazon Resource Name (ARN) of the customer master
- // key (CMK). A grant token is a unique variable-length base64-encoded string.
- // A grant ID is a 64 character unique identifier of a grant. The CreateGrant
- // operation returns both.
- //
- // 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 Key Management Service's
- // API operation RetireGrant for usage and error information.
- //
- // Returned Error Types:
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * InvalidGrantTokenException
- // The request was rejected because the specified grant token is not valid.
- //
- // * InvalidGrantIdException
- // The request was rejected because the specified GrantId is not valid.
- //
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RetireGrant
- func (c *KMS) RetireGrant(input *RetireGrantInput) (*RetireGrantOutput, error) {
- req, out := c.RetireGrantRequest(input)
- return out, req.Send()
- }
- // RetireGrantWithContext is the same as RetireGrant with the addition of
- // the ability to pass a context and additional request options.
- //
- // See RetireGrant 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 *KMS) RetireGrantWithContext(ctx aws.Context, input *RetireGrantInput, opts ...request.Option) (*RetireGrantOutput, error) {
- req, out := c.RetireGrantRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opRevokeGrant = "RevokeGrant"
- // RevokeGrantRequest generates a "aws/request.Request" representing the
- // client's request for the RevokeGrant 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 RevokeGrant for more information on using the RevokeGrant
- // 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 RevokeGrantRequest method.
- // req, resp := client.RevokeGrantRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RevokeGrant
- func (c *KMS) RevokeGrantRequest(input *RevokeGrantInput) (req *request.Request, output *RevokeGrantOutput) {
- op := &request.Operation{
- Name: opRevokeGrant,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &RevokeGrantInput{}
- }
- output = &RevokeGrantOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // RevokeGrant API operation for AWS Key Management Service.
- //
- // Revokes the specified grant for the specified customer master key (CMK).
- // You can revoke a grant to actively deny operations that depend on it.
- //
- // To perform this operation on a CMK in a different AWS account, specify the
- // key ARN in the value of the KeyId parameter.
- //
- // 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 Key Management Service's
- // API operation RevokeGrant for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * InvalidGrantIdException
- // The request was rejected because the specified GrantId is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RevokeGrant
- func (c *KMS) RevokeGrant(input *RevokeGrantInput) (*RevokeGrantOutput, error) {
- req, out := c.RevokeGrantRequest(input)
- return out, req.Send()
- }
- // RevokeGrantWithContext is the same as RevokeGrant with the addition of
- // the ability to pass a context and additional request options.
- //
- // See RevokeGrant 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 *KMS) RevokeGrantWithContext(ctx aws.Context, input *RevokeGrantInput, opts ...request.Option) (*RevokeGrantOutput, error) {
- req, out := c.RevokeGrantRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opScheduleKeyDeletion = "ScheduleKeyDeletion"
- // ScheduleKeyDeletionRequest generates a "aws/request.Request" representing the
- // client's request for the ScheduleKeyDeletion 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 ScheduleKeyDeletion for more information on using the ScheduleKeyDeletion
- // 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 ScheduleKeyDeletionRequest method.
- // req, resp := client.ScheduleKeyDeletionRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ScheduleKeyDeletion
- func (c *KMS) ScheduleKeyDeletionRequest(input *ScheduleKeyDeletionInput) (req *request.Request, output *ScheduleKeyDeletionOutput) {
- op := &request.Operation{
- Name: opScheduleKeyDeletion,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &ScheduleKeyDeletionInput{}
- }
- output = &ScheduleKeyDeletionOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // ScheduleKeyDeletion API operation for AWS Key Management Service.
- //
- // Schedules the deletion of a customer master key (CMK). You may provide a
- // waiting period, specified in days, before deletion occurs. If you do not
- // provide a waiting period, the default period of 30 days is used. When this
- // operation is successful, the key state of the CMK changes to PendingDeletion.
- // Before the waiting period ends, you can use CancelKeyDeletion to cancel the
- // deletion of the CMK. After the waiting period ends, AWS KMS deletes the CMK
- // and all AWS KMS data associated with it, including all aliases that refer
- // to it.
- //
- // Deleting a CMK is a destructive and potentially dangerous operation. When
- // a CMK is deleted, all data that was encrypted under the CMK is unrecoverable.
- // To prevent the use of a CMK without deleting it, use DisableKey.
- //
- // If you schedule deletion of a CMK from a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html),
- // when the waiting period expires, ScheduleKeyDeletion deletes the CMK from
- // AWS KMS. Then AWS KMS makes a best effort to delete the key material from
- // the associated AWS CloudHSM cluster. However, you might need to manually
- // delete the orphaned key material (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key)
- // from the cluster and its backups.
- //
- // You cannot perform this operation on a CMK in a different AWS account.
- //
- // For more information about scheduling a CMK for deletion, see Deleting Customer
- // Master Keys (https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation ScheduleKeyDeletion for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ScheduleKeyDeletion
- func (c *KMS) ScheduleKeyDeletion(input *ScheduleKeyDeletionInput) (*ScheduleKeyDeletionOutput, error) {
- req, out := c.ScheduleKeyDeletionRequest(input)
- return out, req.Send()
- }
- // ScheduleKeyDeletionWithContext is the same as ScheduleKeyDeletion with the addition of
- // the ability to pass a context and additional request options.
- //
- // See ScheduleKeyDeletion 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 *KMS) ScheduleKeyDeletionWithContext(ctx aws.Context, input *ScheduleKeyDeletionInput, opts ...request.Option) (*ScheduleKeyDeletionOutput, error) {
- req, out := c.ScheduleKeyDeletionRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opSign = "Sign"
- // SignRequest generates a "aws/request.Request" representing the
- // client's request for the Sign 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 Sign for more information on using the Sign
- // 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 SignRequest method.
- // req, resp := client.SignRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Sign
- func (c *KMS) SignRequest(input *SignInput) (req *request.Request, output *SignOutput) {
- op := &request.Operation{
- Name: opSign,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &SignInput{}
- }
- output = &SignOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // Sign API operation for AWS Key Management Service.
- //
- // Creates a digital signature (https://en.wikipedia.org/wiki/Digital_signature)
- // for a message or message digest by using the private key in an asymmetric
- // CMK. To verify the signature, use the Verify operation, or use the public
- // key in the same asymmetric CMK outside of AWS KMS. For information about
- // symmetric and asymmetric CMKs, see Using Symmetric and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // Digital signatures are generated and verified by using asymmetric key pair,
- // such as an RSA or ECC pair that is represented by an asymmetric customer
- // master key (CMK). The key owner (or an authorized user) uses their private
- // key to sign a message. Anyone with the public key can verify that the message
- // was signed with that particular private key and that the message hasn't changed
- // since it was signed.
- //
- // To use the Sign operation, provide the following information:
- //
- // * Use the KeyId parameter to identify an asymmetric CMK with a KeyUsage
- // value of SIGN_VERIFY. To get the KeyUsage value of a CMK, use the DescribeKey
- // operation. The caller must have kms:Sign permission on the CMK.
- //
- // * Use the Message parameter to specify the message or message digest to
- // sign. You can submit messages of up to 4096 bytes. To sign a larger message,
- // generate a hash digest of the message, and then provide the hash digest
- // in the Message parameter. To indicate whether the message is a full message
- // or a digest, use the MessageType parameter.
- //
- // * Choose a signing algorithm that is compatible with the CMK.
- //
- // When signing a message, be sure to record the CMK and the signing algorithm.
- // This information is required to verify the signature.
- //
- // To verify the signature that this operation generates, use the Verify operation.
- // Or use the GetPublicKey operation to download the public key and then use
- // the public key to verify the signature outside of AWS KMS.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation Sign for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DisabledException
- // The request was rejected because the specified CMK is not enabled.
- //
- // * KeyUnavailableException
- // The request was rejected because the specified CMK was not available. You
- // can retry the request.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidKeyUsageException
- // The request was rejected for one of the following reasons:
- //
- // * The KeyUsage value of the CMK is incompatible with the API operation.
- //
- // * The encryption algorithm or signing algorithm specified for the operation
- // is incompatible with the type of key material in the CMK (CustomerMasterKeySpec).
- //
- // For encrypting, decrypting, re-encrypting, and generating data keys, the
- // KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the KeyUsage
- // must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation.
- //
- // To find the encryption or signing algorithms supported for a particular CMK,
- // use the DescribeKey operation.
- //
- // * InvalidGrantTokenException
- // The request was rejected because the specified grant token is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Sign
- func (c *KMS) Sign(input *SignInput) (*SignOutput, error) {
- req, out := c.SignRequest(input)
- return out, req.Send()
- }
- // SignWithContext is the same as Sign with the addition of
- // the ability to pass a context and additional request options.
- //
- // See Sign 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 *KMS) SignWithContext(ctx aws.Context, input *SignInput, opts ...request.Option) (*SignOutput, error) {
- req, out := c.SignRequest(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/kms-2014-11-01/TagResource
- func (c *KMS) 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 Key Management Service.
- //
- // Adds or edits tags for a customer master key (CMK). You cannot perform this
- // operation on a CMK in a different AWS account.
- //
- // Each tag consists of a tag key and a tag value. Tag keys and tag values are
- // both required, but tag values can be empty (null) strings.
- //
- // You can only use a tag key once for each CMK. If you use the tag key again,
- // AWS KMS replaces the current tag value with the specified value.
- //
- // For information about the rules that apply to tag keys and tag values, see
- // User-Defined Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html)
- // in the AWS Billing and Cost Management User Guide.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation TagResource for usage and error information.
- //
- // Returned Error Types:
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // * LimitExceededException
- // The request was rejected because a limit was exceeded. For more information,
- // see Limits (https://docs.aws.amazon.com/kms/latest/developerguide/limits.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // * TagException
- // The request was rejected because one or more tags are not valid.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/TagResource
- func (c *KMS) 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 *KMS) 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/kms-2014-11-01/UntagResource
- func (c *KMS) 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 Key Management Service.
- //
- // Removes the specified tags from the specified customer master key (CMK).
- // You cannot perform this operation on a CMK in a different AWS account.
- //
- // To remove a tag, specify the tag key. To change the tag value of an existing
- // tag key, use TagResource.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation UntagResource for usage and error information.
- //
- // Returned Error Types:
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // * TagException
- // The request was rejected because one or more tags are not valid.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UntagResource
- func (c *KMS) 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 *KMS) 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 opUpdateAlias = "UpdateAlias"
- // UpdateAliasRequest generates a "aws/request.Request" representing the
- // client's request for the UpdateAlias 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 UpdateAlias for more information on using the UpdateAlias
- // 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 UpdateAliasRequest method.
- // req, resp := client.UpdateAliasRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateAlias
- func (c *KMS) UpdateAliasRequest(input *UpdateAliasInput) (req *request.Request, output *UpdateAliasOutput) {
- op := &request.Operation{
- Name: opUpdateAlias,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &UpdateAliasInput{}
- }
- output = &UpdateAliasOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // UpdateAlias API operation for AWS Key Management Service.
- //
- // Associates an existing AWS KMS alias with a different customer master key
- // (CMK). Each alias is associated with only one CMK at a time, although a CMK
- // can have multiple aliases. The alias and the CMK must be in the same AWS
- // account and region. You cannot perform this operation on an alias in a different
- // AWS account.
- //
- // The current and new CMK must be the same type (both symmetric or both asymmetric),
- // and they must have the same key usage (ENCRYPT_DECRYPT or SIGN_VERIFY). This
- // restriction prevents errors in code that uses aliases. If you must assign
- // an alias to a different type of CMK, use DeleteAlias to delete the old alias
- // and CreateAlias to create a new alias.
- //
- // You cannot use UpdateAlias to change an alias name. To change an alias name,
- // use DeleteAlias to delete the old alias and CreateAlias to create a new alias.
- //
- // Because an alias is not a property of a CMK, you can create, update, and
- // delete the aliases of a CMK without affecting the CMK. Also, aliases do not
- // appear in the response from the DescribeKey operation. To get the aliases
- // of all CMKs in the account, use the ListAliases operation.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation UpdateAlias for usage and error information.
- //
- // Returned Error Types:
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateAlias
- func (c *KMS) UpdateAlias(input *UpdateAliasInput) (*UpdateAliasOutput, error) {
- req, out := c.UpdateAliasRequest(input)
- return out, req.Send()
- }
- // UpdateAliasWithContext is the same as UpdateAlias with the addition of
- // the ability to pass a context and additional request options.
- //
- // See UpdateAlias 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 *KMS) UpdateAliasWithContext(ctx aws.Context, input *UpdateAliasInput, opts ...request.Option) (*UpdateAliasOutput, error) {
- req, out := c.UpdateAliasRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opUpdateCustomKeyStore = "UpdateCustomKeyStore"
- // UpdateCustomKeyStoreRequest generates a "aws/request.Request" representing the
- // client's request for the UpdateCustomKeyStore 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 UpdateCustomKeyStore for more information on using the UpdateCustomKeyStore
- // 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 UpdateCustomKeyStoreRequest method.
- // req, resp := client.UpdateCustomKeyStoreRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateCustomKeyStore
- func (c *KMS) UpdateCustomKeyStoreRequest(input *UpdateCustomKeyStoreInput) (req *request.Request, output *UpdateCustomKeyStoreOutput) {
- op := &request.Operation{
- Name: opUpdateCustomKeyStore,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &UpdateCustomKeyStoreInput{}
- }
- output = &UpdateCustomKeyStoreOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // UpdateCustomKeyStore API operation for AWS Key Management Service.
- //
- // Changes the properties of a custom key store. Use the CustomKeyStoreId parameter
- // to identify the custom key store you want to edit. Use the remaining parameters
- // to change the properties of the custom key store.
- //
- // You can only update a custom key store that is disconnected. To disconnect
- // the custom key store, use DisconnectCustomKeyStore. To reconnect the custom
- // key store after the update completes, use ConnectCustomKeyStore. To find
- // the connection state of a custom key store, use the DescribeCustomKeyStores
- // operation.
- //
- // Use the parameters of UpdateCustomKeyStore to edit your keystore settings.
- //
- // * Use the NewCustomKeyStoreName parameter to change the friendly name
- // of the custom key store to the value that you specify.
- //
- // * Use the KeyStorePassword parameter tell AWS KMS the current password
- // of the kmsuser crypto user (CU) (https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser)
- // in the associated AWS CloudHSM cluster. You can use this parameter to
- // fix connection failures (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-password)
- // that occur when AWS KMS cannot log into the associated cluster because
- // the kmsuser password has changed. This value does not change the password
- // in the AWS CloudHSM cluster.
- //
- // * Use the CloudHsmClusterId parameter to associate the custom key store
- // with a different, but related, AWS CloudHSM cluster. You can use this
- // parameter to repair a custom key store if its AWS CloudHSM cluster becomes
- // corrupted or is deleted, or when you need to create or restore a cluster
- // from a backup.
- //
- // If the operation succeeds, it returns a JSON object with no properties.
- //
- // This operation is part of the Custom Key Store feature (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // feature in AWS KMS, which combines the convenience and extensive integration
- // of AWS KMS with the isolation and control of a single-tenant key store.
- //
- // 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 Key Management Service's
- // API operation UpdateCustomKeyStore for usage and error information.
- //
- // Returned Error Types:
- // * CustomKeyStoreNotFoundException
- // The request was rejected because AWS KMS cannot find a custom key store with
- // the specified key store name or ID.
- //
- // * CustomKeyStoreNameInUseException
- // The request was rejected because the specified custom key store name is already
- // assigned to another custom key store in the account. Try again with a custom
- // key store name that is unique in the account.
- //
- // * CloudHsmClusterNotFoundException
- // The request was rejected because AWS KMS cannot find the AWS CloudHSM cluster
- // with the specified cluster ID. Retry the request with a different cluster
- // ID.
- //
- // * CloudHsmClusterNotRelatedException
- // The request was rejected because the specified AWS CloudHSM cluster has a
- // different cluster certificate than the original cluster. You cannot use the
- // operation to specify an unrelated cluster.
- //
- // Specify a cluster that shares a backup history with the original cluster.
- // This includes clusters that were created from a backup of the current cluster,
- // and clusters that were created from the same backup that produced the current
- // cluster.
- //
- // Clusters that share a backup history have the same cluster certificate. To
- // view the cluster certificate of a cluster, use the DescribeClusters (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html)
- // operation.
- //
- // * CustomKeyStoreInvalidStateException
- // The request was rejected because of the ConnectionState of the custom key
- // store. To get the ConnectionState of a custom key store, use the DescribeCustomKeyStores
- // operation.
- //
- // This exception is thrown under the following conditions:
- //
- // * You requested the CreateKey or GenerateRandom operation in a custom
- // key store that is not connected. These operations are valid only when
- // the custom key store ConnectionState is CONNECTED.
- //
- // * You requested the UpdateCustomKeyStore or DeleteCustomKeyStore operation
- // on a custom key store that is not disconnected. This operation is valid
- // only when the custom key store ConnectionState is DISCONNECTED.
- //
- // * You requested the ConnectCustomKeyStore operation on a custom key store
- // with a ConnectionState of DISCONNECTING or FAILED. This operation is valid
- // for all other ConnectionState values.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * CloudHsmClusterNotActiveException
- // The request was rejected because the AWS CloudHSM cluster that is associated
- // with the custom key store is not active. Initialize and activate the cluster
- // and try the command again. For detailed instructions, see Getting Started
- // (https://docs.aws.amazon.com/cloudhsm/latest/userguide/getting-started.html)
- // in the AWS CloudHSM User Guide.
- //
- // * CloudHsmClusterInvalidConfigurationException
- // The request was rejected because the associated AWS CloudHSM cluster did
- // not meet the configuration requirements for a custom key store.
- //
- // * The cluster must be configured with private subnets in at least two
- // different Availability Zones in the Region.
- //
- // * The security group for the cluster (https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html)
- // (cloudhsm-cluster-<cluster-id>-sg) must include inbound rules and outbound
- // rules that allow TCP traffic on ports 2223-2225. The Source in the inbound
- // rules and the Destination in the outbound rules must match the security
- // group ID. These rules are set by default when you create the cluster.
- // Do not delete or change them. To get information about a particular security
- // group, use the DescribeSecurityGroups (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)
- // operation.
- //
- // * The cluster must contain at least as many HSMs as the operation requires.
- // To add HSMs, use the AWS CloudHSM CreateHsm (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html)
- // operation. For the CreateCustomKeyStore, UpdateCustomKeyStore, and CreateKey
- // operations, the AWS CloudHSM cluster must have at least two active HSMs,
- // each in a different Availability Zone. For the ConnectCustomKeyStore operation,
- // the AWS CloudHSM must contain at least one active HSM.
- //
- // For information about the requirements for an AWS CloudHSM cluster that is
- // associated with a custom key store, see Assemble the Prerequisites (https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore)
- // in the AWS Key Management Service Developer Guide. For information about
- // creating a private subnet for an AWS CloudHSM cluster, see Create a Private
- // Subnet (https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-subnets.html)
- // in the AWS CloudHSM User Guide. For information about cluster security groups,
- // see Configure a Default Security Group (https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html)
- // in the AWS CloudHSM User Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateCustomKeyStore
- func (c *KMS) UpdateCustomKeyStore(input *UpdateCustomKeyStoreInput) (*UpdateCustomKeyStoreOutput, error) {
- req, out := c.UpdateCustomKeyStoreRequest(input)
- return out, req.Send()
- }
- // UpdateCustomKeyStoreWithContext is the same as UpdateCustomKeyStore with the addition of
- // the ability to pass a context and additional request options.
- //
- // See UpdateCustomKeyStore 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 *KMS) UpdateCustomKeyStoreWithContext(ctx aws.Context, input *UpdateCustomKeyStoreInput, opts ...request.Option) (*UpdateCustomKeyStoreOutput, error) {
- req, out := c.UpdateCustomKeyStoreRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opUpdateKeyDescription = "UpdateKeyDescription"
- // UpdateKeyDescriptionRequest generates a "aws/request.Request" representing the
- // client's request for the UpdateKeyDescription 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 UpdateKeyDescription for more information on using the UpdateKeyDescription
- // 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 UpdateKeyDescriptionRequest method.
- // req, resp := client.UpdateKeyDescriptionRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateKeyDescription
- func (c *KMS) UpdateKeyDescriptionRequest(input *UpdateKeyDescriptionInput) (req *request.Request, output *UpdateKeyDescriptionOutput) {
- op := &request.Operation{
- Name: opUpdateKeyDescription,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &UpdateKeyDescriptionInput{}
- }
- output = &UpdateKeyDescriptionOutput{}
- req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
- return
- }
- // UpdateKeyDescription API operation for AWS Key Management Service.
- //
- // Updates the description of a customer master key (CMK). To see the description
- // of a CMK, use DescribeKey.
- //
- // You cannot perform this operation on a CMK in a different AWS account.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation UpdateKeyDescription for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * InvalidArnException
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateKeyDescription
- func (c *KMS) UpdateKeyDescription(input *UpdateKeyDescriptionInput) (*UpdateKeyDescriptionOutput, error) {
- req, out := c.UpdateKeyDescriptionRequest(input)
- return out, req.Send()
- }
- // UpdateKeyDescriptionWithContext is the same as UpdateKeyDescription with the addition of
- // the ability to pass a context and additional request options.
- //
- // See UpdateKeyDescription 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 *KMS) UpdateKeyDescriptionWithContext(ctx aws.Context, input *UpdateKeyDescriptionInput, opts ...request.Option) (*UpdateKeyDescriptionOutput, error) {
- req, out := c.UpdateKeyDescriptionRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- const opVerify = "Verify"
- // VerifyRequest generates a "aws/request.Request" representing the
- // client's request for the Verify 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 Verify for more information on using the Verify
- // 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 VerifyRequest method.
- // req, resp := client.VerifyRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Verify
- func (c *KMS) VerifyRequest(input *VerifyInput) (req *request.Request, output *VerifyOutput) {
- op := &request.Operation{
- Name: opVerify,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &VerifyInput{}
- }
- output = &VerifyOutput{}
- req = c.newRequest(op, input, output)
- return
- }
- // Verify API operation for AWS Key Management Service.
- //
- // Verifies a digital signature that was generated by the Sign operation.
- //
- // Verification confirms that an authorized user signed the message with the
- // specified CMK and signing algorithm, and the message hasn't changed since
- // it was signed. If the signature is verified, the value of the SignatureValid
- // field in the response is True. If the signature verification fails, the Verify
- // operation fails with an KMSInvalidSignatureException exception.
- //
- // A digital signature is generated by using the private key in an asymmetric
- // CMK. The signature is verified by using the public key in the same asymmetric
- // CMK. For information about symmetric and asymmetric CMKs, see Using Symmetric
- // and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // To verify a digital signature, you can use the Verify operation. Specify
- // the same asymmetric CMK, message, and signing algorithm that were used to
- // produce the signature.
- //
- // You can also verify the digital signature by using the public key of the
- // CMK outside of AWS KMS. Use the GetPublicKey operation to download the public
- // key in the asymmetric CMK and then use the public key to verify the signature
- // outside of AWS KMS. The advantage of using the Verify operation is that it
- // is performed within AWS KMS. As a result, it's easy to call, the operation
- // is performed within the FIPS boundary, it is logged in AWS CloudTrail, and
- // you can use key policy and IAM policy to determine who is authorized to use
- // the CMK to verify signatures.
- //
- // The CMK that you use for this operation must be in a compatible key state.
- // For details, see How Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // 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 Key Management Service's
- // API operation Verify for usage and error information.
- //
- // Returned Error Types:
- // * NotFoundException
- // The request was rejected because the specified entity or resource could not
- // be found.
- //
- // * DisabledException
- // The request was rejected because the specified CMK is not enabled.
- //
- // * KeyUnavailableException
- // The request was rejected because the specified CMK was not available. You
- // can retry the request.
- //
- // * DependencyTimeoutException
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- //
- // * InvalidKeyUsageException
- // The request was rejected for one of the following reasons:
- //
- // * The KeyUsage value of the CMK is incompatible with the API operation.
- //
- // * The encryption algorithm or signing algorithm specified for the operation
- // is incompatible with the type of key material in the CMK (CustomerMasterKeySpec).
- //
- // For encrypting, decrypting, re-encrypting, and generating data keys, the
- // KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the KeyUsage
- // must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation.
- //
- // To find the encryption or signing algorithms supported for a particular CMK,
- // use the DescribeKey operation.
- //
- // * InvalidGrantTokenException
- // The request was rejected because the specified grant token is not valid.
- //
- // * InternalException
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- //
- // * InvalidStateException
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- //
- // * KMSInvalidSignatureException
- // The request was rejected because the signature verification failed. Signature
- // verification fails when it cannot confirm that signature was produced by
- // signing the specified message with the specified CMK and signing algorithm.
- //
- // See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Verify
- func (c *KMS) Verify(input *VerifyInput) (*VerifyOutput, error) {
- req, out := c.VerifyRequest(input)
- return out, req.Send()
- }
- // VerifyWithContext is the same as Verify with the addition of
- // the ability to pass a context and additional request options.
- //
- // See Verify 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 *KMS) VerifyWithContext(ctx aws.Context, input *VerifyInput, opts ...request.Option) (*VerifyOutput, error) {
- req, out := c.VerifyRequest(input)
- req.SetContext(ctx)
- req.ApplyOptions(opts...)
- return out, req.Send()
- }
- // Contains information about an alias.
- type AliasListEntry struct {
- _ struct{} `type:"structure"`
- // String that contains the key ARN.
- AliasArn *string `min:"20" type:"string"`
- // String that contains the alias. This value begins with alias/.
- AliasName *string `min:"1" type:"string"`
- // String that contains the key identifier referred to by the alias.
- TargetKeyId *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s AliasListEntry) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s AliasListEntry) GoString() string {
- return s.String()
- }
- // SetAliasArn sets the AliasArn field's value.
- func (s *AliasListEntry) SetAliasArn(v string) *AliasListEntry {
- s.AliasArn = &v
- return s
- }
- // SetAliasName sets the AliasName field's value.
- func (s *AliasListEntry) SetAliasName(v string) *AliasListEntry {
- s.AliasName = &v
- return s
- }
- // SetTargetKeyId sets the TargetKeyId field's value.
- func (s *AliasListEntry) SetTargetKeyId(v string) *AliasListEntry {
- s.TargetKeyId = &v
- return s
- }
- // The request was rejected because it attempted to create a resource that already
- // exists.
- type AlreadyExistsException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s AlreadyExistsException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s AlreadyExistsException) GoString() string {
- return s.String()
- }
- func newErrorAlreadyExistsException(v protocol.ResponseMetadata) error {
- return &AlreadyExistsException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s AlreadyExistsException) Code() string {
- return "AlreadyExistsException"
- }
- // Message returns the exception's message.
- func (s AlreadyExistsException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s AlreadyExistsException) OrigErr() error {
- return nil
- }
- func (s AlreadyExistsException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s AlreadyExistsException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s AlreadyExistsException) RequestID() string {
- return s.respMetadata.RequestID
- }
- type CancelKeyDeletionInput struct {
- _ struct{} `type:"structure"`
- // The unique identifier for the customer master key (CMK) for which to cancel
- // deletion.
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s CancelKeyDeletionInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CancelKeyDeletionInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *CancelKeyDeletionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CancelKeyDeletionInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *CancelKeyDeletionInput) SetKeyId(v string) *CancelKeyDeletionInput {
- s.KeyId = &v
- return s
- }
- type CancelKeyDeletionOutput struct {
- _ struct{} `type:"structure"`
- // The unique identifier of the master key for which deletion is canceled.
- KeyId *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s CancelKeyDeletionOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CancelKeyDeletionOutput) GoString() string {
- return s.String()
- }
- // SetKeyId sets the KeyId field's value.
- func (s *CancelKeyDeletionOutput) SetKeyId(v string) *CancelKeyDeletionOutput {
- s.KeyId = &v
- return s
- }
- // The request was rejected because the specified AWS CloudHSM cluster is already
- // associated with a custom key store or it shares a backup history with a cluster
- // that is associated with a custom key store. Each custom key store must be
- // associated with a different AWS CloudHSM cluster.
- //
- // Clusters that share a backup history have the same cluster certificate. To
- // view the cluster certificate of a cluster, use the DescribeClusters (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html)
- // operation.
- type CloudHsmClusterInUseException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s CloudHsmClusterInUseException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CloudHsmClusterInUseException) GoString() string {
- return s.String()
- }
- func newErrorCloudHsmClusterInUseException(v protocol.ResponseMetadata) error {
- return &CloudHsmClusterInUseException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s CloudHsmClusterInUseException) Code() string {
- return "CloudHsmClusterInUseException"
- }
- // Message returns the exception's message.
- func (s CloudHsmClusterInUseException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s CloudHsmClusterInUseException) OrigErr() error {
- return nil
- }
- func (s CloudHsmClusterInUseException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s CloudHsmClusterInUseException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s CloudHsmClusterInUseException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the associated AWS CloudHSM cluster did
- // not meet the configuration requirements for a custom key store.
- //
- // * The cluster must be configured with private subnets in at least two
- // different Availability Zones in the Region.
- //
- // * The security group for the cluster (https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html)
- // (cloudhsm-cluster-<cluster-id>-sg) must include inbound rules and outbound
- // rules that allow TCP traffic on ports 2223-2225. The Source in the inbound
- // rules and the Destination in the outbound rules must match the security
- // group ID. These rules are set by default when you create the cluster.
- // Do not delete or change them. To get information about a particular security
- // group, use the DescribeSecurityGroups (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)
- // operation.
- //
- // * The cluster must contain at least as many HSMs as the operation requires.
- // To add HSMs, use the AWS CloudHSM CreateHsm (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html)
- // operation. For the CreateCustomKeyStore, UpdateCustomKeyStore, and CreateKey
- // operations, the AWS CloudHSM cluster must have at least two active HSMs,
- // each in a different Availability Zone. For the ConnectCustomKeyStore operation,
- // the AWS CloudHSM must contain at least one active HSM.
- //
- // For information about the requirements for an AWS CloudHSM cluster that is
- // associated with a custom key store, see Assemble the Prerequisites (https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore)
- // in the AWS Key Management Service Developer Guide. For information about
- // creating a private subnet for an AWS CloudHSM cluster, see Create a Private
- // Subnet (https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-subnets.html)
- // in the AWS CloudHSM User Guide. For information about cluster security groups,
- // see Configure a Default Security Group (https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html)
- // in the AWS CloudHSM User Guide .
- type CloudHsmClusterInvalidConfigurationException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s CloudHsmClusterInvalidConfigurationException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CloudHsmClusterInvalidConfigurationException) GoString() string {
- return s.String()
- }
- func newErrorCloudHsmClusterInvalidConfigurationException(v protocol.ResponseMetadata) error {
- return &CloudHsmClusterInvalidConfigurationException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s CloudHsmClusterInvalidConfigurationException) Code() string {
- return "CloudHsmClusterInvalidConfigurationException"
- }
- // Message returns the exception's message.
- func (s CloudHsmClusterInvalidConfigurationException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s CloudHsmClusterInvalidConfigurationException) OrigErr() error {
- return nil
- }
- func (s CloudHsmClusterInvalidConfigurationException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s CloudHsmClusterInvalidConfigurationException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s CloudHsmClusterInvalidConfigurationException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the AWS CloudHSM cluster that is associated
- // with the custom key store is not active. Initialize and activate the cluster
- // and try the command again. For detailed instructions, see Getting Started
- // (https://docs.aws.amazon.com/cloudhsm/latest/userguide/getting-started.html)
- // in the AWS CloudHSM User Guide.
- type CloudHsmClusterNotActiveException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s CloudHsmClusterNotActiveException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CloudHsmClusterNotActiveException) GoString() string {
- return s.String()
- }
- func newErrorCloudHsmClusterNotActiveException(v protocol.ResponseMetadata) error {
- return &CloudHsmClusterNotActiveException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s CloudHsmClusterNotActiveException) Code() string {
- return "CloudHsmClusterNotActiveException"
- }
- // Message returns the exception's message.
- func (s CloudHsmClusterNotActiveException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s CloudHsmClusterNotActiveException) OrigErr() error {
- return nil
- }
- func (s CloudHsmClusterNotActiveException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s CloudHsmClusterNotActiveException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s CloudHsmClusterNotActiveException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because AWS KMS cannot find the AWS CloudHSM cluster
- // with the specified cluster ID. Retry the request with a different cluster
- // ID.
- type CloudHsmClusterNotFoundException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s CloudHsmClusterNotFoundException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CloudHsmClusterNotFoundException) GoString() string {
- return s.String()
- }
- func newErrorCloudHsmClusterNotFoundException(v protocol.ResponseMetadata) error {
- return &CloudHsmClusterNotFoundException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s CloudHsmClusterNotFoundException) Code() string {
- return "CloudHsmClusterNotFoundException"
- }
- // Message returns the exception's message.
- func (s CloudHsmClusterNotFoundException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s CloudHsmClusterNotFoundException) OrigErr() error {
- return nil
- }
- func (s CloudHsmClusterNotFoundException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s CloudHsmClusterNotFoundException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s CloudHsmClusterNotFoundException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the specified AWS CloudHSM cluster has a
- // different cluster certificate than the original cluster. You cannot use the
- // operation to specify an unrelated cluster.
- //
- // Specify a cluster that shares a backup history with the original cluster.
- // This includes clusters that were created from a backup of the current cluster,
- // and clusters that were created from the same backup that produced the current
- // cluster.
- //
- // Clusters that share a backup history have the same cluster certificate. To
- // view the cluster certificate of a cluster, use the DescribeClusters (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html)
- // operation.
- type CloudHsmClusterNotRelatedException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s CloudHsmClusterNotRelatedException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CloudHsmClusterNotRelatedException) GoString() string {
- return s.String()
- }
- func newErrorCloudHsmClusterNotRelatedException(v protocol.ResponseMetadata) error {
- return &CloudHsmClusterNotRelatedException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s CloudHsmClusterNotRelatedException) Code() string {
- return "CloudHsmClusterNotRelatedException"
- }
- // Message returns the exception's message.
- func (s CloudHsmClusterNotRelatedException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s CloudHsmClusterNotRelatedException) OrigErr() error {
- return nil
- }
- func (s CloudHsmClusterNotRelatedException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s CloudHsmClusterNotRelatedException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s CloudHsmClusterNotRelatedException) RequestID() string {
- return s.respMetadata.RequestID
- }
- type ConnectCustomKeyStoreInput struct {
- _ struct{} `type:"structure"`
- // Enter the key store ID of the custom key store that you want to connect.
- // To find the ID of a custom key store, use the DescribeCustomKeyStores operation.
- //
- // CustomKeyStoreId is a required field
- CustomKeyStoreId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s ConnectCustomKeyStoreInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ConnectCustomKeyStoreInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ConnectCustomKeyStoreInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ConnectCustomKeyStoreInput"}
- if s.CustomKeyStoreId == nil {
- invalidParams.Add(request.NewErrParamRequired("CustomKeyStoreId"))
- }
- if s.CustomKeyStoreId != nil && len(*s.CustomKeyStoreId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CustomKeyStoreId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetCustomKeyStoreId sets the CustomKeyStoreId field's value.
- func (s *ConnectCustomKeyStoreInput) SetCustomKeyStoreId(v string) *ConnectCustomKeyStoreInput {
- s.CustomKeyStoreId = &v
- return s
- }
- type ConnectCustomKeyStoreOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s ConnectCustomKeyStoreOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ConnectCustomKeyStoreOutput) GoString() string {
- return s.String()
- }
- type CreateAliasInput struct {
- _ struct{} `type:"structure"`
- // Specifies the alias name. This value must begin with alias/ followed by a
- // name, such as alias/ExampleAlias. The alias name cannot begin with alias/aws/.
- // The alias/aws/ prefix is reserved for AWS managed CMKs.
- //
- // AliasName is a required field
- AliasName *string `min:"1" type:"string" required:"true"`
- // Identifies the CMK to which the alias refers. Specify the key ID or the Amazon
- // Resource Name (ARN) of the CMK. You cannot specify another alias. For help
- // finding the key ID and ARN, see Finding the Key ID and ARN (https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn)
- // in the AWS Key Management Service Developer Guide.
- //
- // TargetKeyId is a required field
- TargetKeyId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s CreateAliasInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateAliasInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *CreateAliasInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateAliasInput"}
- if s.AliasName == nil {
- invalidParams.Add(request.NewErrParamRequired("AliasName"))
- }
- if s.AliasName != nil && len(*s.AliasName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("AliasName", 1))
- }
- if s.TargetKeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("TargetKeyId"))
- }
- if s.TargetKeyId != nil && len(*s.TargetKeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("TargetKeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetAliasName sets the AliasName field's value.
- func (s *CreateAliasInput) SetAliasName(v string) *CreateAliasInput {
- s.AliasName = &v
- return s
- }
- // SetTargetKeyId sets the TargetKeyId field's value.
- func (s *CreateAliasInput) SetTargetKeyId(v string) *CreateAliasInput {
- s.TargetKeyId = &v
- return s
- }
- type CreateAliasOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s CreateAliasOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateAliasOutput) GoString() string {
- return s.String()
- }
- type CreateCustomKeyStoreInput struct {
- _ struct{} `type:"structure"`
- // Identifies the AWS CloudHSM cluster for the custom key store. Enter the cluster
- // ID of any active AWS CloudHSM cluster that is not already associated with
- // a custom key store. To find the cluster ID, use the DescribeClusters (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html)
- // operation.
- //
- // CloudHsmClusterId is a required field
- CloudHsmClusterId *string `min:"19" type:"string" required:"true"`
- // Specifies a friendly name for the custom key store. The name must be unique
- // in your AWS account.
- //
- // CustomKeyStoreName is a required field
- CustomKeyStoreName *string `min:"1" type:"string" required:"true"`
- // Enter the password of the kmsuser crypto user (CU) account (https://docs.aws.amazon.com/kms/latest/developerguide/key-store-concepts.html#concept-kmsuser)
- // in the specified AWS CloudHSM cluster. AWS KMS logs into the cluster as this
- // user to manage key material on your behalf.
- //
- // This parameter tells AWS KMS the kmsuser account password; it does not change
- // the password in the AWS CloudHSM cluster.
- //
- // KeyStorePassword is a required field
- KeyStorePassword *string `min:"1" type:"string" required:"true" sensitive:"true"`
- // Enter the content of the trust anchor certificate for the cluster. This is
- // the content of the customerCA.crt file that you created when you initialized
- // the cluster (https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html).
- //
- // TrustAnchorCertificate is a required field
- TrustAnchorCertificate *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s CreateCustomKeyStoreInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateCustomKeyStoreInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *CreateCustomKeyStoreInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateCustomKeyStoreInput"}
- if s.CloudHsmClusterId == nil {
- invalidParams.Add(request.NewErrParamRequired("CloudHsmClusterId"))
- }
- if s.CloudHsmClusterId != nil && len(*s.CloudHsmClusterId) < 19 {
- invalidParams.Add(request.NewErrParamMinLen("CloudHsmClusterId", 19))
- }
- if s.CustomKeyStoreName == nil {
- invalidParams.Add(request.NewErrParamRequired("CustomKeyStoreName"))
- }
- if s.CustomKeyStoreName != nil && len(*s.CustomKeyStoreName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CustomKeyStoreName", 1))
- }
- if s.KeyStorePassword == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyStorePassword"))
- }
- if s.KeyStorePassword != nil && len(*s.KeyStorePassword) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyStorePassword", 1))
- }
- if s.TrustAnchorCertificate == nil {
- invalidParams.Add(request.NewErrParamRequired("TrustAnchorCertificate"))
- }
- if s.TrustAnchorCertificate != nil && len(*s.TrustAnchorCertificate) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("TrustAnchorCertificate", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetCloudHsmClusterId sets the CloudHsmClusterId field's value.
- func (s *CreateCustomKeyStoreInput) SetCloudHsmClusterId(v string) *CreateCustomKeyStoreInput {
- s.CloudHsmClusterId = &v
- return s
- }
- // SetCustomKeyStoreName sets the CustomKeyStoreName field's value.
- func (s *CreateCustomKeyStoreInput) SetCustomKeyStoreName(v string) *CreateCustomKeyStoreInput {
- s.CustomKeyStoreName = &v
- return s
- }
- // SetKeyStorePassword sets the KeyStorePassword field's value.
- func (s *CreateCustomKeyStoreInput) SetKeyStorePassword(v string) *CreateCustomKeyStoreInput {
- s.KeyStorePassword = &v
- return s
- }
- // SetTrustAnchorCertificate sets the TrustAnchorCertificate field's value.
- func (s *CreateCustomKeyStoreInput) SetTrustAnchorCertificate(v string) *CreateCustomKeyStoreInput {
- s.TrustAnchorCertificate = &v
- return s
- }
- type CreateCustomKeyStoreOutput struct {
- _ struct{} `type:"structure"`
- // A unique identifier for the new custom key store.
- CustomKeyStoreId *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s CreateCustomKeyStoreOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateCustomKeyStoreOutput) GoString() string {
- return s.String()
- }
- // SetCustomKeyStoreId sets the CustomKeyStoreId field's value.
- func (s *CreateCustomKeyStoreOutput) SetCustomKeyStoreId(v string) *CreateCustomKeyStoreOutput {
- s.CustomKeyStoreId = &v
- return s
- }
- type CreateGrantInput struct {
- _ struct{} `type:"structure"`
- // Allows a cryptographic operation only when the encryption context matches
- // or includes the encryption context specified in this structure. For more
- // information about encryption context, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide .
- Constraints *GrantConstraints `type:"structure"`
- // A list of grant tokens.
- //
- // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token)
- // in the AWS Key Management Service Developer Guide.
- GrantTokens []*string `type:"list"`
- // The principal that is given permission to perform the operations that the
- // grant permits.
- //
- // To specify the principal, use the Amazon Resource Name (ARN) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
- // of an AWS principal. Valid AWS principals include AWS accounts (root), IAM
- // users, IAM roles, federated users, and assumed role users. For examples of
- // the ARN syntax to use for specifying a principal, see AWS Identity and Access
- // Management (IAM) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam)
- // in the Example ARNs section of the AWS General Reference.
- //
- // GranteePrincipal is a required field
- GranteePrincipal *string `min:"1" type:"string" required:"true"`
- // The unique identifier for the customer master key (CMK) that the grant applies
- // to.
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify
- // a CMK in a different AWS account, you must use the key ARN.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // A friendly name for identifying the grant. Use this value to prevent the
- // unintended creation of duplicate grants when retrying this request.
- //
- // When this value is absent, all CreateGrant requests result in a new grant
- // with a unique GrantId even if all the supplied parameters are identical.
- // This can result in unintended duplicates when you retry the CreateGrant request.
- //
- // When this value is present, you can retry a CreateGrant request with identical
- // parameters; if the grant already exists, the original GrantId is returned
- // without creating a new grant. Note that the returned grant token is unique
- // with every CreateGrant request, even when a duplicate GrantId is returned.
- // All grant tokens obtained in this way can be used interchangeably.
- Name *string `min:"1" type:"string"`
- // A list of operations that the grant permits.
- //
- // Operations is a required field
- Operations []*string `type:"list" required:"true"`
- // The principal that is given permission to retire the grant by using RetireGrant
- // operation.
- //
- // To specify the principal, use the Amazon Resource Name (ARN) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
- // of an AWS principal. Valid AWS principals include AWS accounts (root), IAM
- // users, federated users, and assumed role users. For examples of the ARN syntax
- // to use for specifying a principal, see AWS Identity and Access Management
- // (IAM) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam)
- // in the Example ARNs section of the AWS General Reference.
- RetiringPrincipal *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s CreateGrantInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateGrantInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *CreateGrantInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateGrantInput"}
- if s.GranteePrincipal == nil {
- invalidParams.Add(request.NewErrParamRequired("GranteePrincipal"))
- }
- if s.GranteePrincipal != nil && len(*s.GranteePrincipal) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("GranteePrincipal", 1))
- }
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.Name != nil && len(*s.Name) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Name", 1))
- }
- if s.Operations == nil {
- invalidParams.Add(request.NewErrParamRequired("Operations"))
- }
- if s.RetiringPrincipal != nil && len(*s.RetiringPrincipal) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("RetiringPrincipal", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetConstraints sets the Constraints field's value.
- func (s *CreateGrantInput) SetConstraints(v *GrantConstraints) *CreateGrantInput {
- s.Constraints = v
- return s
- }
- // SetGrantTokens sets the GrantTokens field's value.
- func (s *CreateGrantInput) SetGrantTokens(v []*string) *CreateGrantInput {
- s.GrantTokens = v
- return s
- }
- // SetGranteePrincipal sets the GranteePrincipal field's value.
- func (s *CreateGrantInput) SetGranteePrincipal(v string) *CreateGrantInput {
- s.GranteePrincipal = &v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *CreateGrantInput) SetKeyId(v string) *CreateGrantInput {
- s.KeyId = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *CreateGrantInput) SetName(v string) *CreateGrantInput {
- s.Name = &v
- return s
- }
- // SetOperations sets the Operations field's value.
- func (s *CreateGrantInput) SetOperations(v []*string) *CreateGrantInput {
- s.Operations = v
- return s
- }
- // SetRetiringPrincipal sets the RetiringPrincipal field's value.
- func (s *CreateGrantInput) SetRetiringPrincipal(v string) *CreateGrantInput {
- s.RetiringPrincipal = &v
- return s
- }
- type CreateGrantOutput struct {
- _ struct{} `type:"structure"`
- // The unique identifier for the grant.
- //
- // You can use the GrantId in a subsequent RetireGrant or RevokeGrant operation.
- GrantId *string `min:"1" type:"string"`
- // The grant token.
- //
- // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token)
- // in the AWS Key Management Service Developer Guide.
- GrantToken *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s CreateGrantOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateGrantOutput) GoString() string {
- return s.String()
- }
- // SetGrantId sets the GrantId field's value.
- func (s *CreateGrantOutput) SetGrantId(v string) *CreateGrantOutput {
- s.GrantId = &v
- return s
- }
- // SetGrantToken sets the GrantToken field's value.
- func (s *CreateGrantOutput) SetGrantToken(v string) *CreateGrantOutput {
- s.GrantToken = &v
- return s
- }
- type CreateKeyInput struct {
- _ struct{} `type:"structure"`
- // A flag to indicate whether to bypass the key policy lockout safety check.
- //
- // Setting this value to true increases the risk that the CMK becomes unmanageable.
- // Do not set this value to true indiscriminately.
- //
- // For more information, refer to the scenario in the Default Key Policy (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam)
- // section in the AWS Key Management Service Developer Guide .
- //
- // Use this parameter only when you include a policy in the request and you
- // intend to prevent the principal that is making the request from making a
- // subsequent PutKeyPolicy request on the CMK.
- //
- // The default value is false.
- BypassPolicyLockoutSafetyCheck *bool `type:"boolean"`
- // Creates the CMK in the specified custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // and the key material in its associated AWS CloudHSM cluster. To create a
- // CMK in a custom key store, you must also specify the Origin parameter with
- // a value of AWS_CLOUDHSM. The AWS CloudHSM cluster that is associated with
- // the custom key store must have at least two active HSMs, each in a different
- // Availability Zone in the Region.
- //
- // This parameter is valid only for symmetric CMKs. You cannot create an asymmetric
- // CMK in a custom key store.
- //
- // To find the ID of a custom key store, use the DescribeCustomKeyStores operation.
- //
- // The response includes the custom key store ID and the ID of the AWS CloudHSM
- // cluster.
- //
- // This operation is part of the Custom Key Store feature (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // feature in AWS KMS, which combines the convenience and extensive integration
- // of AWS KMS with the isolation and control of a single-tenant key store.
- CustomKeyStoreId *string `min:"1" type:"string"`
- // Specifies the type of CMK to create. The CustomerMasterKeySpec determines
- // whether the CMK contains a symmetric key or an asymmetric key pair. It also
- // determines the encryption algorithms or signing algorithms that the CMK supports.
- // You can't change the CustomerMasterKeySpec after the CMK is created. To further
- // restrict the algorithms that can be used with the CMK, use its key policy
- // or IAM policy.
- //
- // For help with choosing a key spec for your CMK, see Selecting a Customer
- // Master Key Spec (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#cmk-key-spec)
- // in the AWS Key Management Service Developer Guide.
- //
- // The default value, SYMMETRIC_DEFAULT, creates a CMK with a 256-bit symmetric
- // key.
- //
- // AWS KMS supports the following key specs for CMKs:
- //
- // * Symmetric key (default) SYMMETRIC_DEFAULT (AES-256-GCM)
- //
- // * Asymmetric RSA key pairs RSA_2048 RSA_3072 RSA_4096
- //
- // * Asymmetric NIST-recommended elliptic curve key pairs ECC_NIST_P256 (secp256r1)
- // ECC_NIST_P384 (secp384r1) ECC_NIST_P521 (secp521r1)
- //
- // * Other asymmetric elliptic curve key pairs ECC_SECG_P256K1 (secp256k1),
- // commonly used for cryptocurrencies.
- CustomerMasterKeySpec *string `type:"string" enum:"CustomerMasterKeySpec"`
- // A description of the CMK.
- //
- // Use a description that helps you decide whether the CMK is appropriate for
- // a task.
- Description *string `type:"string"`
- // Determines the cryptographic operations for which you can use the CMK. The
- // default value is ENCRYPT_DECRYPT. This parameter is required only for asymmetric
- // CMKs. You can't change the KeyUsage value after the CMK is created.
- //
- // Select only one valid value.
- //
- // * For symmetric CMKs, omit the parameter or specify ENCRYPT_DECRYPT.
- //
- // * For asymmetric CMKs with RSA key material, specify ENCRYPT_DECRYPT or
- // SIGN_VERIFY.
- //
- // * For asymmetric CMKs with ECC key material, specify SIGN_VERIFY.
- KeyUsage *string `type:"string" enum:"KeyUsageType"`
- // The source of the key material for the CMK. You cannot change the origin
- // after you create the CMK. The default is AWS_KMS, which means AWS KMS creates
- // the key material.
- //
- // When the parameter value is EXTERNAL, AWS KMS creates a CMK without key material
- // so that you can import key material from your existing key management infrastructure.
- // For more information about importing key material into AWS KMS, see Importing
- // Key Material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html)
- // in the AWS Key Management Service Developer Guide. This value is valid only
- // for symmetric CMKs.
- //
- // When the parameter value is AWS_CLOUDHSM, AWS KMS creates the CMK in an AWS
- // KMS custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // and creates its key material in the associated AWS CloudHSM cluster. You
- // must also use the CustomKeyStoreId parameter to identify the custom key store.
- // This value is valid only for symmetric CMKs.
- Origin *string `type:"string" enum:"OriginType"`
- // The key policy to attach to the CMK.
- //
- // If you provide a key policy, it must meet the following criteria:
- //
- // * If you don't set BypassPolicyLockoutSafetyCheck to true, the key policy
- // must allow the principal that is making the CreateKey request to make
- // a subsequent PutKeyPolicy request on the CMK. This reduces the risk that
- // the CMK becomes unmanageable. For more information, refer to the scenario
- // in the Default Key Policy (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam)
- // section of the AWS Key Management Service Developer Guide .
- //
- // * Each statement in the key policy must contain one or more principals.
- // The principals in the key policy must exist and be visible to AWS KMS.
- // When you create a new AWS principal (for example, an IAM user or role),
- // you might need to enforce a delay before including the new principal in
- // a key policy because the new principal might not be immediately visible
- // to AWS KMS. For more information, see Changes that I make are not always
- // immediately visible (https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency)
- // in the AWS Identity and Access Management User Guide.
- //
- // If you do not provide a key policy, AWS KMS attaches a default key policy
- // to the CMK. For more information, see Default Key Policy (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default)
- // in the AWS Key Management Service Developer Guide.
- //
- // The key policy size limit is 32 kilobytes (32768 bytes).
- Policy *string `min:"1" type:"string"`
- // One or more tags. Each tag consists of a tag key and a tag value. Both the
- // tag key and the tag value are required, but the tag value can be an empty
- // (null) string.
- //
- // When you add tags to an AWS resource, AWS generates a cost allocation report
- // with usage and costs aggregated by tags. For information about adding, changing,
- // deleting and listing tags for CMKs, see Tagging Keys (https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html).
- //
- // Use this parameter to tag the CMK when it is created. To add tags to an existing
- // CMK, use the TagResource operation.
- Tags []*Tag `type:"list"`
- }
- // String returns the string representation
- func (s CreateKeyInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateKeyInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *CreateKeyInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateKeyInput"}
- if s.CustomKeyStoreId != nil && len(*s.CustomKeyStoreId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CustomKeyStoreId", 1))
- }
- if s.Policy != nil && len(*s.Policy) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Policy", 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
- }
- // SetBypassPolicyLockoutSafetyCheck sets the BypassPolicyLockoutSafetyCheck field's value.
- func (s *CreateKeyInput) SetBypassPolicyLockoutSafetyCheck(v bool) *CreateKeyInput {
- s.BypassPolicyLockoutSafetyCheck = &v
- return s
- }
- // SetCustomKeyStoreId sets the CustomKeyStoreId field's value.
- func (s *CreateKeyInput) SetCustomKeyStoreId(v string) *CreateKeyInput {
- s.CustomKeyStoreId = &v
- return s
- }
- // SetCustomerMasterKeySpec sets the CustomerMasterKeySpec field's value.
- func (s *CreateKeyInput) SetCustomerMasterKeySpec(v string) *CreateKeyInput {
- s.CustomerMasterKeySpec = &v
- return s
- }
- // SetDescription sets the Description field's value.
- func (s *CreateKeyInput) SetDescription(v string) *CreateKeyInput {
- s.Description = &v
- return s
- }
- // SetKeyUsage sets the KeyUsage field's value.
- func (s *CreateKeyInput) SetKeyUsage(v string) *CreateKeyInput {
- s.KeyUsage = &v
- return s
- }
- // SetOrigin sets the Origin field's value.
- func (s *CreateKeyInput) SetOrigin(v string) *CreateKeyInput {
- s.Origin = &v
- return s
- }
- // SetPolicy sets the Policy field's value.
- func (s *CreateKeyInput) SetPolicy(v string) *CreateKeyInput {
- s.Policy = &v
- return s
- }
- // SetTags sets the Tags field's value.
- func (s *CreateKeyInput) SetTags(v []*Tag) *CreateKeyInput {
- s.Tags = v
- return s
- }
- type CreateKeyOutput struct {
- _ struct{} `type:"structure"`
- // Metadata associated with the CMK.
- KeyMetadata *KeyMetadata `type:"structure"`
- }
- // String returns the string representation
- func (s CreateKeyOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateKeyOutput) GoString() string {
- return s.String()
- }
- // SetKeyMetadata sets the KeyMetadata field's value.
- func (s *CreateKeyOutput) SetKeyMetadata(v *KeyMetadata) *CreateKeyOutput {
- s.KeyMetadata = v
- return s
- }
- // The request was rejected because the custom key store contains AWS KMS customer
- // master keys (CMKs). After verifying that you do not need to use the CMKs,
- // use the ScheduleKeyDeletion operation to delete the CMKs. After they are
- // deleted, you can delete the custom key store.
- type CustomKeyStoreHasCMKsException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s CustomKeyStoreHasCMKsException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CustomKeyStoreHasCMKsException) GoString() string {
- return s.String()
- }
- func newErrorCustomKeyStoreHasCMKsException(v protocol.ResponseMetadata) error {
- return &CustomKeyStoreHasCMKsException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s CustomKeyStoreHasCMKsException) Code() string {
- return "CustomKeyStoreHasCMKsException"
- }
- // Message returns the exception's message.
- func (s CustomKeyStoreHasCMKsException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s CustomKeyStoreHasCMKsException) OrigErr() error {
- return nil
- }
- func (s CustomKeyStoreHasCMKsException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s CustomKeyStoreHasCMKsException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s CustomKeyStoreHasCMKsException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because of the ConnectionState of the custom key
- // store. To get the ConnectionState of a custom key store, use the DescribeCustomKeyStores
- // operation.
- //
- // This exception is thrown under the following conditions:
- //
- // * You requested the CreateKey or GenerateRandom operation in a custom
- // key store that is not connected. These operations are valid only when
- // the custom key store ConnectionState is CONNECTED.
- //
- // * You requested the UpdateCustomKeyStore or DeleteCustomKeyStore operation
- // on a custom key store that is not disconnected. This operation is valid
- // only when the custom key store ConnectionState is DISCONNECTED.
- //
- // * You requested the ConnectCustomKeyStore operation on a custom key store
- // with a ConnectionState of DISCONNECTING or FAILED. This operation is valid
- // for all other ConnectionState values.
- type CustomKeyStoreInvalidStateException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s CustomKeyStoreInvalidStateException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CustomKeyStoreInvalidStateException) GoString() string {
- return s.String()
- }
- func newErrorCustomKeyStoreInvalidStateException(v protocol.ResponseMetadata) error {
- return &CustomKeyStoreInvalidStateException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s CustomKeyStoreInvalidStateException) Code() string {
- return "CustomKeyStoreInvalidStateException"
- }
- // Message returns the exception's message.
- func (s CustomKeyStoreInvalidStateException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s CustomKeyStoreInvalidStateException) OrigErr() error {
- return nil
- }
- func (s CustomKeyStoreInvalidStateException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s CustomKeyStoreInvalidStateException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s CustomKeyStoreInvalidStateException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the specified custom key store name is already
- // assigned to another custom key store in the account. Try again with a custom
- // key store name that is unique in the account.
- type CustomKeyStoreNameInUseException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s CustomKeyStoreNameInUseException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CustomKeyStoreNameInUseException) GoString() string {
- return s.String()
- }
- func newErrorCustomKeyStoreNameInUseException(v protocol.ResponseMetadata) error {
- return &CustomKeyStoreNameInUseException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s CustomKeyStoreNameInUseException) Code() string {
- return "CustomKeyStoreNameInUseException"
- }
- // Message returns the exception's message.
- func (s CustomKeyStoreNameInUseException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s CustomKeyStoreNameInUseException) OrigErr() error {
- return nil
- }
- func (s CustomKeyStoreNameInUseException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s CustomKeyStoreNameInUseException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s CustomKeyStoreNameInUseException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because AWS KMS cannot find a custom key store with
- // the specified key store name or ID.
- type CustomKeyStoreNotFoundException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s CustomKeyStoreNotFoundException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CustomKeyStoreNotFoundException) GoString() string {
- return s.String()
- }
- func newErrorCustomKeyStoreNotFoundException(v protocol.ResponseMetadata) error {
- return &CustomKeyStoreNotFoundException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s CustomKeyStoreNotFoundException) Code() string {
- return "CustomKeyStoreNotFoundException"
- }
- // Message returns the exception's message.
- func (s CustomKeyStoreNotFoundException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s CustomKeyStoreNotFoundException) OrigErr() error {
- return nil
- }
- func (s CustomKeyStoreNotFoundException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s CustomKeyStoreNotFoundException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s CustomKeyStoreNotFoundException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // Contains information about each custom key store in the custom key store
- // list.
- type CustomKeyStoresListEntry struct {
- _ struct{} `type:"structure"`
- // A unique identifier for the AWS CloudHSM cluster that is associated with
- // the custom key store.
- CloudHsmClusterId *string `min:"19" type:"string"`
- // Describes the connection error. Valid values are:
- //
- // * CLUSTER_NOT_FOUND - AWS KMS cannot find the AWS CloudHSM cluster with
- // the specified cluster ID.
- //
- // * INSUFFICIENT_CLOUDHSM_HSMS - The associated AWS CloudHSM cluster does
- // not contain any active HSMs. To connect a custom key store to its AWS
- // CloudHSM cluster, the cluster must contain at least one active HSM.
- //
- // * INTERNAL_ERROR - AWS KMS could not complete the request due to an internal
- // error. Retry the request. For ConnectCustomKeyStore requests, disconnect
- // the custom key store before trying to connect again.
- //
- // * INVALID_CREDENTIALS - AWS KMS does not have the correct password for
- // the kmsuser crypto user in the AWS CloudHSM cluster.
- //
- // * NETWORK_ERRORS - Network errors are preventing AWS KMS from connecting
- // to the custom key store.
- //
- // * USER_LOCKED_OUT - The kmsuser CU account is locked out of the associated
- // AWS CloudHSM cluster due to too many failed password attempts. Before
- // you can connect your custom key store to its AWS CloudHSM cluster, you
- // must change the kmsuser account password and update the password value
- // for the custom key store.
- //
- // For help with connection failures, see Troubleshooting Custom Key Stores
- // (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html)
- // in the AWS Key Management Service Developer Guide.
- ConnectionErrorCode *string `type:"string" enum:"ConnectionErrorCodeType"`
- // Indicates whether the custom key store is connected to its AWS CloudHSM cluster.
- //
- // You can create and use CMKs in your custom key stores only when its connection
- // state is CONNECTED.
- //
- // The value is DISCONNECTED if the key store has never been connected or you
- // use the DisconnectCustomKeyStore operation to disconnect it. If the value
- // is CONNECTED but you are having trouble using the custom key store, make
- // sure that its associated AWS CloudHSM cluster is active and contains at least
- // one active HSM.
- //
- // A value of FAILED indicates that an attempt to connect was unsuccessful.
- // For help resolving a connection failure, see Troubleshooting a Custom Key
- // Store (https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html)
- // in the AWS Key Management Service Developer Guide.
- ConnectionState *string `type:"string" enum:"ConnectionStateType"`
- // The date and time when the custom key store was created.
- CreationDate *time.Time `type:"timestamp"`
- // A unique identifier for the custom key store.
- CustomKeyStoreId *string `min:"1" type:"string"`
- // The user-specified friendly name for the custom key store.
- CustomKeyStoreName *string `min:"1" type:"string"`
- // The trust anchor certificate of the associated AWS CloudHSM cluster. When
- // you initialize the cluster (https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr),
- // you create this certificate and save it in the customerCA.crt file.
- TrustAnchorCertificate *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s CustomKeyStoresListEntry) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CustomKeyStoresListEntry) GoString() string {
- return s.String()
- }
- // SetCloudHsmClusterId sets the CloudHsmClusterId field's value.
- func (s *CustomKeyStoresListEntry) SetCloudHsmClusterId(v string) *CustomKeyStoresListEntry {
- s.CloudHsmClusterId = &v
- return s
- }
- // SetConnectionErrorCode sets the ConnectionErrorCode field's value.
- func (s *CustomKeyStoresListEntry) SetConnectionErrorCode(v string) *CustomKeyStoresListEntry {
- s.ConnectionErrorCode = &v
- return s
- }
- // SetConnectionState sets the ConnectionState field's value.
- func (s *CustomKeyStoresListEntry) SetConnectionState(v string) *CustomKeyStoresListEntry {
- s.ConnectionState = &v
- return s
- }
- // SetCreationDate sets the CreationDate field's value.
- func (s *CustomKeyStoresListEntry) SetCreationDate(v time.Time) *CustomKeyStoresListEntry {
- s.CreationDate = &v
- return s
- }
- // SetCustomKeyStoreId sets the CustomKeyStoreId field's value.
- func (s *CustomKeyStoresListEntry) SetCustomKeyStoreId(v string) *CustomKeyStoresListEntry {
- s.CustomKeyStoreId = &v
- return s
- }
- // SetCustomKeyStoreName sets the CustomKeyStoreName field's value.
- func (s *CustomKeyStoresListEntry) SetCustomKeyStoreName(v string) *CustomKeyStoresListEntry {
- s.CustomKeyStoreName = &v
- return s
- }
- // SetTrustAnchorCertificate sets the TrustAnchorCertificate field's value.
- func (s *CustomKeyStoresListEntry) SetTrustAnchorCertificate(v string) *CustomKeyStoresListEntry {
- s.TrustAnchorCertificate = &v
- return s
- }
- type DecryptInput struct {
- _ struct{} `type:"structure"`
- // Ciphertext to be decrypted. The blob includes metadata.
- //
- // CiphertextBlob is automatically base64 encoded/decoded by the SDK.
- //
- // CiphertextBlob is a required field
- CiphertextBlob []byte `min:"1" type:"blob" required:"true"`
- // Specifies the encryption algorithm that will be used to decrypt the ciphertext.
- // Specify the same algorithm that was used to encrypt the data. If you specify
- // a different algorithm, the Decrypt operation fails.
- //
- // This parameter is required only when the ciphertext was encrypted under an
- // asymmetric CMK. The default value, SYMMETRIC_DEFAULT, represents the only
- // supported algorithm that is valid for symmetric CMKs.
- EncryptionAlgorithm *string `type:"string" enum:"EncryptionAlgorithmSpec"`
- // Specifies the encryption context to use when decrypting the data. An encryption
- // context is valid only for cryptographic operations with a symmetric CMK.
- // The standard asymmetric encryption algorithms that AWS KMS uses do not support
- // an encryption context.
- //
- // An encryption context is a collection of non-secret key-value pairs that
- // represents additional authenticated data. When you use an encryption context
- // to encrypt data, you must specify the same (an exact case-sensitive match)
- // encryption context to decrypt the data. An encryption context is optional
- // when encrypting with a symmetric CMK, but it is highly recommended.
- //
- // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide.
- EncryptionContext map[string]*string `type:"map"`
- // A list of grant tokens.
- //
- // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token)
- // in the AWS Key Management Service Developer Guide.
- GrantTokens []*string `type:"list"`
- // Specifies the customer master key (CMK) that AWS KMS will use to decrypt
- // the ciphertext. Enter a key ID of the CMK that was used to encrypt the ciphertext.
- //
- // If you specify a KeyId value, the Decrypt operation succeeds only if the
- // specified CMK was used to encrypt the ciphertext.
- //
- // This parameter is required only when the ciphertext was encrypted under an
- // asymmetric CMK. Otherwise, AWS KMS uses the metadata that it adds to the
- // ciphertext blob to determine which CMK was used to encrypt the ciphertext.
- // However, you can use this parameter to ensure that a particular CMK (of any
- // kind) is used to decrypt the ciphertext.
- //
- // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name,
- // or alias ARN. When using an alias name, prefix it with "alias/".
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Alias name: alias/ExampleAlias
- //
- // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To
- // get the alias name and alias ARN, use ListAliases.
- KeyId *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s DecryptInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DecryptInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DecryptInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DecryptInput"}
- if s.CiphertextBlob == nil {
- invalidParams.Add(request.NewErrParamRequired("CiphertextBlob"))
- }
- if s.CiphertextBlob != nil && len(s.CiphertextBlob) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CiphertextBlob", 1))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetCiphertextBlob sets the CiphertextBlob field's value.
- func (s *DecryptInput) SetCiphertextBlob(v []byte) *DecryptInput {
- s.CiphertextBlob = v
- return s
- }
- // SetEncryptionAlgorithm sets the EncryptionAlgorithm field's value.
- func (s *DecryptInput) SetEncryptionAlgorithm(v string) *DecryptInput {
- s.EncryptionAlgorithm = &v
- return s
- }
- // SetEncryptionContext sets the EncryptionContext field's value.
- func (s *DecryptInput) SetEncryptionContext(v map[string]*string) *DecryptInput {
- s.EncryptionContext = v
- return s
- }
- // SetGrantTokens sets the GrantTokens field's value.
- func (s *DecryptInput) SetGrantTokens(v []*string) *DecryptInput {
- s.GrantTokens = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *DecryptInput) SetKeyId(v string) *DecryptInput {
- s.KeyId = &v
- return s
- }
- type DecryptOutput struct {
- _ struct{} `type:"structure"`
- // The encryption algorithm that was used to decrypt the ciphertext.
- EncryptionAlgorithm *string `type:"string" enum:"EncryptionAlgorithmSpec"`
- // The ARN of the customer master key that was used to perform the decryption.
- KeyId *string `min:"1" type:"string"`
- // Decrypted plaintext data. When you use the HTTP API or the AWS CLI, the value
- // is Base64-encoded. Otherwise, it is not Base64-encoded.
- //
- // Plaintext is automatically base64 encoded/decoded by the SDK.
- Plaintext []byte `min:"1" type:"blob" sensitive:"true"`
- }
- // String returns the string representation
- func (s DecryptOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DecryptOutput) GoString() string {
- return s.String()
- }
- // SetEncryptionAlgorithm sets the EncryptionAlgorithm field's value.
- func (s *DecryptOutput) SetEncryptionAlgorithm(v string) *DecryptOutput {
- s.EncryptionAlgorithm = &v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *DecryptOutput) SetKeyId(v string) *DecryptOutput {
- s.KeyId = &v
- return s
- }
- // SetPlaintext sets the Plaintext field's value.
- func (s *DecryptOutput) SetPlaintext(v []byte) *DecryptOutput {
- s.Plaintext = v
- return s
- }
- type DeleteAliasInput struct {
- _ struct{} `type:"structure"`
- // The alias to be deleted. The alias name must begin with alias/ followed by
- // the alias name, such as alias/ExampleAlias.
- //
- // AliasName is a required field
- AliasName *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s DeleteAliasInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteAliasInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DeleteAliasInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteAliasInput"}
- if s.AliasName == nil {
- invalidParams.Add(request.NewErrParamRequired("AliasName"))
- }
- if s.AliasName != nil && len(*s.AliasName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("AliasName", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetAliasName sets the AliasName field's value.
- func (s *DeleteAliasInput) SetAliasName(v string) *DeleteAliasInput {
- s.AliasName = &v
- return s
- }
- type DeleteAliasOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s DeleteAliasOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteAliasOutput) GoString() string {
- return s.String()
- }
- type DeleteCustomKeyStoreInput struct {
- _ struct{} `type:"structure"`
- // Enter the ID of the custom key store you want to delete. To find the ID of
- // a custom key store, use the DescribeCustomKeyStores operation.
- //
- // CustomKeyStoreId is a required field
- CustomKeyStoreId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s DeleteCustomKeyStoreInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteCustomKeyStoreInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DeleteCustomKeyStoreInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteCustomKeyStoreInput"}
- if s.CustomKeyStoreId == nil {
- invalidParams.Add(request.NewErrParamRequired("CustomKeyStoreId"))
- }
- if s.CustomKeyStoreId != nil && len(*s.CustomKeyStoreId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CustomKeyStoreId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetCustomKeyStoreId sets the CustomKeyStoreId field's value.
- func (s *DeleteCustomKeyStoreInput) SetCustomKeyStoreId(v string) *DeleteCustomKeyStoreInput {
- s.CustomKeyStoreId = &v
- return s
- }
- type DeleteCustomKeyStoreOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s DeleteCustomKeyStoreOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteCustomKeyStoreOutput) GoString() string {
- return s.String()
- }
- type DeleteImportedKeyMaterialInput struct {
- _ struct{} `type:"structure"`
- // Identifies the CMK from which you are deleting imported key material. The
- // Origin of the CMK must be EXTERNAL.
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s DeleteImportedKeyMaterialInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteImportedKeyMaterialInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DeleteImportedKeyMaterialInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteImportedKeyMaterialInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *DeleteImportedKeyMaterialInput) SetKeyId(v string) *DeleteImportedKeyMaterialInput {
- s.KeyId = &v
- return s
- }
- type DeleteImportedKeyMaterialOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s DeleteImportedKeyMaterialOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteImportedKeyMaterialOutput) GoString() string {
- return s.String()
- }
- // The system timed out while trying to fulfill the request. The request can
- // be retried.
- type DependencyTimeoutException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s DependencyTimeoutException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DependencyTimeoutException) GoString() string {
- return s.String()
- }
- func newErrorDependencyTimeoutException(v protocol.ResponseMetadata) error {
- return &DependencyTimeoutException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s DependencyTimeoutException) Code() string {
- return "DependencyTimeoutException"
- }
- // Message returns the exception's message.
- func (s DependencyTimeoutException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s DependencyTimeoutException) OrigErr() error {
- return nil
- }
- func (s DependencyTimeoutException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s DependencyTimeoutException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s DependencyTimeoutException) RequestID() string {
- return s.respMetadata.RequestID
- }
- type DescribeCustomKeyStoresInput struct {
- _ struct{} `type:"structure"`
- // Gets only information about the specified custom key store. Enter the key
- // store ID.
- //
- // By default, this operation gets information about all custom key stores in
- // the account and region. To limit the output to a particular custom key store,
- // you can use either the CustomKeyStoreId or CustomKeyStoreName parameter,
- // but not both.
- CustomKeyStoreId *string `min:"1" type:"string"`
- // Gets only information about the specified custom key store. Enter the friendly
- // name of the custom key store.
- //
- // By default, this operation gets information about all custom key stores in
- // the account and region. To limit the output to a particular custom key store,
- // you can use either the CustomKeyStoreId or CustomKeyStoreName parameter,
- // but not both.
- CustomKeyStoreName *string `min:"1" type:"string"`
- // Use this parameter to specify the maximum number of items to return. When
- // this value is present, AWS KMS does not return more than the specified number
- // of items, but it might return fewer.
- Limit *int64 `min:"1" type:"integer"`
- // Use this parameter in a subsequent request after you receive a response with
- // truncated results. Set it to the value of NextMarker from the truncated response
- // you just received.
- Marker *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s DescribeCustomKeyStoresInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DescribeCustomKeyStoresInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DescribeCustomKeyStoresInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DescribeCustomKeyStoresInput"}
- if s.CustomKeyStoreId != nil && len(*s.CustomKeyStoreId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CustomKeyStoreId", 1))
- }
- if s.CustomKeyStoreName != nil && len(*s.CustomKeyStoreName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CustomKeyStoreName", 1))
- }
- if s.Limit != nil && *s.Limit < 1 {
- invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
- }
- if s.Marker != nil && len(*s.Marker) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetCustomKeyStoreId sets the CustomKeyStoreId field's value.
- func (s *DescribeCustomKeyStoresInput) SetCustomKeyStoreId(v string) *DescribeCustomKeyStoresInput {
- s.CustomKeyStoreId = &v
- return s
- }
- // SetCustomKeyStoreName sets the CustomKeyStoreName field's value.
- func (s *DescribeCustomKeyStoresInput) SetCustomKeyStoreName(v string) *DescribeCustomKeyStoresInput {
- s.CustomKeyStoreName = &v
- return s
- }
- // SetLimit sets the Limit field's value.
- func (s *DescribeCustomKeyStoresInput) SetLimit(v int64) *DescribeCustomKeyStoresInput {
- s.Limit = &v
- return s
- }
- // SetMarker sets the Marker field's value.
- func (s *DescribeCustomKeyStoresInput) SetMarker(v string) *DescribeCustomKeyStoresInput {
- s.Marker = &v
- return s
- }
- type DescribeCustomKeyStoresOutput struct {
- _ struct{} `type:"structure"`
- // Contains metadata about each custom key store.
- CustomKeyStores []*CustomKeyStoresListEntry `type:"list"`
- // When Truncated is true, this element is present and contains the value to
- // use for the Marker parameter in a subsequent request.
- NextMarker *string `min:"1" type:"string"`
- // A flag that indicates whether there are more items in the list. When this
- // value is true, the list in this response is truncated. To get more items,
- // pass the value of the NextMarker element in thisresponse to the Marker parameter
- // in a subsequent request.
- Truncated *bool `type:"boolean"`
- }
- // String returns the string representation
- func (s DescribeCustomKeyStoresOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DescribeCustomKeyStoresOutput) GoString() string {
- return s.String()
- }
- // SetCustomKeyStores sets the CustomKeyStores field's value.
- func (s *DescribeCustomKeyStoresOutput) SetCustomKeyStores(v []*CustomKeyStoresListEntry) *DescribeCustomKeyStoresOutput {
- s.CustomKeyStores = v
- return s
- }
- // SetNextMarker sets the NextMarker field's value.
- func (s *DescribeCustomKeyStoresOutput) SetNextMarker(v string) *DescribeCustomKeyStoresOutput {
- s.NextMarker = &v
- return s
- }
- // SetTruncated sets the Truncated field's value.
- func (s *DescribeCustomKeyStoresOutput) SetTruncated(v bool) *DescribeCustomKeyStoresOutput {
- s.Truncated = &v
- return s
- }
- type DescribeKeyInput struct {
- _ struct{} `type:"structure"`
- // A list of grant tokens.
- //
- // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token)
- // in the AWS Key Management Service Developer Guide.
- GrantTokens []*string `type:"list"`
- // Describes the specified customer master key (CMK).
- //
- // If you specify a predefined AWS alias (an AWS alias with no key ID), KMS
- // associates the alias with an AWS managed CMK (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)
- // and returns its KeyId and Arn in the response.
- //
- // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name,
- // or alias ARN. When using an alias name, prefix it with "alias/". To specify
- // a CMK in a different AWS account, you must use the key ARN or alias ARN.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Alias name: alias/ExampleAlias
- //
- // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To
- // get the alias name and alias ARN, use ListAliases.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s DescribeKeyInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DescribeKeyInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DescribeKeyInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DescribeKeyInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetGrantTokens sets the GrantTokens field's value.
- func (s *DescribeKeyInput) SetGrantTokens(v []*string) *DescribeKeyInput {
- s.GrantTokens = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *DescribeKeyInput) SetKeyId(v string) *DescribeKeyInput {
- s.KeyId = &v
- return s
- }
- type DescribeKeyOutput struct {
- _ struct{} `type:"structure"`
- // Metadata associated with the key.
- KeyMetadata *KeyMetadata `type:"structure"`
- }
- // String returns the string representation
- func (s DescribeKeyOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DescribeKeyOutput) GoString() string {
- return s.String()
- }
- // SetKeyMetadata sets the KeyMetadata field's value.
- func (s *DescribeKeyOutput) SetKeyMetadata(v *KeyMetadata) *DescribeKeyOutput {
- s.KeyMetadata = v
- return s
- }
- type DisableKeyInput struct {
- _ struct{} `type:"structure"`
- // A unique identifier for the customer master key (CMK).
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s DisableKeyInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DisableKeyInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DisableKeyInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DisableKeyInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *DisableKeyInput) SetKeyId(v string) *DisableKeyInput {
- s.KeyId = &v
- return s
- }
- type DisableKeyOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s DisableKeyOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DisableKeyOutput) GoString() string {
- return s.String()
- }
- type DisableKeyRotationInput struct {
- _ struct{} `type:"structure"`
- // Identifies a symmetric customer master key (CMK). You cannot enable automatic
- // rotation of asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks),
- // CMKs with imported key material (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html),
- // or CMKs in a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s DisableKeyRotationInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DisableKeyRotationInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DisableKeyRotationInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DisableKeyRotationInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *DisableKeyRotationInput) SetKeyId(v string) *DisableKeyRotationInput {
- s.KeyId = &v
- return s
- }
- type DisableKeyRotationOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s DisableKeyRotationOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DisableKeyRotationOutput) GoString() string {
- return s.String()
- }
- // The request was rejected because the specified CMK is not enabled.
- type DisabledException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s DisabledException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DisabledException) GoString() string {
- return s.String()
- }
- func newErrorDisabledException(v protocol.ResponseMetadata) error {
- return &DisabledException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s DisabledException) Code() string {
- return "DisabledException"
- }
- // Message returns the exception's message.
- func (s DisabledException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s DisabledException) OrigErr() error {
- return nil
- }
- func (s DisabledException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s DisabledException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s DisabledException) RequestID() string {
- return s.respMetadata.RequestID
- }
- type DisconnectCustomKeyStoreInput struct {
- _ struct{} `type:"structure"`
- // Enter the ID of the custom key store you want to disconnect. To find the
- // ID of a custom key store, use the DescribeCustomKeyStores operation.
- //
- // CustomKeyStoreId is a required field
- CustomKeyStoreId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s DisconnectCustomKeyStoreInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DisconnectCustomKeyStoreInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DisconnectCustomKeyStoreInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DisconnectCustomKeyStoreInput"}
- if s.CustomKeyStoreId == nil {
- invalidParams.Add(request.NewErrParamRequired("CustomKeyStoreId"))
- }
- if s.CustomKeyStoreId != nil && len(*s.CustomKeyStoreId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CustomKeyStoreId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetCustomKeyStoreId sets the CustomKeyStoreId field's value.
- func (s *DisconnectCustomKeyStoreInput) SetCustomKeyStoreId(v string) *DisconnectCustomKeyStoreInput {
- s.CustomKeyStoreId = &v
- return s
- }
- type DisconnectCustomKeyStoreOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s DisconnectCustomKeyStoreOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DisconnectCustomKeyStoreOutput) GoString() string {
- return s.String()
- }
- type EnableKeyInput struct {
- _ struct{} `type:"structure"`
- // A unique identifier for the customer master key (CMK).
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s EnableKeyInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s EnableKeyInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *EnableKeyInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "EnableKeyInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *EnableKeyInput) SetKeyId(v string) *EnableKeyInput {
- s.KeyId = &v
- return s
- }
- type EnableKeyOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s EnableKeyOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s EnableKeyOutput) GoString() string {
- return s.String()
- }
- type EnableKeyRotationInput struct {
- _ struct{} `type:"structure"`
- // Identifies a symmetric customer master key (CMK). You cannot enable automatic
- // rotation of asymmetric CMKs, CMKs with imported key material, or CMKs in
- // a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s EnableKeyRotationInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s EnableKeyRotationInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *EnableKeyRotationInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "EnableKeyRotationInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *EnableKeyRotationInput) SetKeyId(v string) *EnableKeyRotationInput {
- s.KeyId = &v
- return s
- }
- type EnableKeyRotationOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s EnableKeyRotationOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s EnableKeyRotationOutput) GoString() string {
- return s.String()
- }
- type EncryptInput struct {
- _ struct{} `type:"structure"`
- // Specifies the encryption algorithm that AWS KMS will use to encrypt the plaintext
- // message. The algorithm must be compatible with the CMK that you specify.
- //
- // This parameter is required only for asymmetric CMKs. The default value, SYMMETRIC_DEFAULT,
- // is the algorithm used for symmetric CMKs. If you are using an asymmetric
- // CMK, we recommend RSAES_OAEP_SHA_256.
- EncryptionAlgorithm *string `type:"string" enum:"EncryptionAlgorithmSpec"`
- // Specifies the encryption context that will be used to encrypt the data. An
- // encryption context is valid only for cryptographic operations with a symmetric
- // CMK. The standard asymmetric encryption algorithms that AWS KMS uses do not
- // support an encryption context.
- //
- // An encryption context is a collection of non-secret key-value pairs that
- // represents additional authenticated data. When you use an encryption context
- // to encrypt data, you must specify the same (an exact case-sensitive match)
- // encryption context to decrypt the data. An encryption context is optional
- // when encrypting with a symmetric CMK, but it is highly recommended.
- //
- // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide.
- EncryptionContext map[string]*string `type:"map"`
- // A list of grant tokens.
- //
- // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token)
- // in the AWS Key Management Service Developer Guide.
- GrantTokens []*string `type:"list"`
- // A unique identifier for the customer master key (CMK).
- //
- // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name,
- // or alias ARN. When using an alias name, prefix it with "alias/". To specify
- // a CMK in a different AWS account, you must use the key ARN or alias ARN.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Alias name: alias/ExampleAlias
- //
- // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To
- // get the alias name and alias ARN, use ListAliases.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // Data to be encrypted.
- //
- // Plaintext is automatically base64 encoded/decoded by the SDK.
- //
- // Plaintext is a required field
- Plaintext []byte `min:"1" type:"blob" required:"true" sensitive:"true"`
- }
- // String returns the string representation
- func (s EncryptInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s EncryptInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *EncryptInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "EncryptInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.Plaintext == nil {
- invalidParams.Add(request.NewErrParamRequired("Plaintext"))
- }
- if s.Plaintext != nil && len(s.Plaintext) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Plaintext", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetEncryptionAlgorithm sets the EncryptionAlgorithm field's value.
- func (s *EncryptInput) SetEncryptionAlgorithm(v string) *EncryptInput {
- s.EncryptionAlgorithm = &v
- return s
- }
- // SetEncryptionContext sets the EncryptionContext field's value.
- func (s *EncryptInput) SetEncryptionContext(v map[string]*string) *EncryptInput {
- s.EncryptionContext = v
- return s
- }
- // SetGrantTokens sets the GrantTokens field's value.
- func (s *EncryptInput) SetGrantTokens(v []*string) *EncryptInput {
- s.GrantTokens = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *EncryptInput) SetKeyId(v string) *EncryptInput {
- s.KeyId = &v
- return s
- }
- // SetPlaintext sets the Plaintext field's value.
- func (s *EncryptInput) SetPlaintext(v []byte) *EncryptInput {
- s.Plaintext = v
- return s
- }
- type EncryptOutput struct {
- _ struct{} `type:"structure"`
- // The encrypted plaintext. When you use the HTTP API or the AWS CLI, the value
- // is Base64-encoded. Otherwise, it is not Base64-encoded.
- //
- // CiphertextBlob is automatically base64 encoded/decoded by the SDK.
- CiphertextBlob []byte `min:"1" type:"blob"`
- // The encryption algorithm that was used to encrypt the plaintext.
- EncryptionAlgorithm *string `type:"string" enum:"EncryptionAlgorithmSpec"`
- // The ID of the key used during encryption.
- KeyId *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s EncryptOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s EncryptOutput) GoString() string {
- return s.String()
- }
- // SetCiphertextBlob sets the CiphertextBlob field's value.
- func (s *EncryptOutput) SetCiphertextBlob(v []byte) *EncryptOutput {
- s.CiphertextBlob = v
- return s
- }
- // SetEncryptionAlgorithm sets the EncryptionAlgorithm field's value.
- func (s *EncryptOutput) SetEncryptionAlgorithm(v string) *EncryptOutput {
- s.EncryptionAlgorithm = &v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *EncryptOutput) SetKeyId(v string) *EncryptOutput {
- s.KeyId = &v
- return s
- }
- // The request was rejected because the specified import token is expired. Use
- // GetParametersForImport to get a new import token and public key, use the
- // new public key to encrypt the key material, and then try the request again.
- type ExpiredImportTokenException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s ExpiredImportTokenException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ExpiredImportTokenException) GoString() string {
- return s.String()
- }
- func newErrorExpiredImportTokenException(v protocol.ResponseMetadata) error {
- return &ExpiredImportTokenException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s ExpiredImportTokenException) Code() string {
- return "ExpiredImportTokenException"
- }
- // Message returns the exception's message.
- func (s ExpiredImportTokenException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s ExpiredImportTokenException) OrigErr() error {
- return nil
- }
- func (s ExpiredImportTokenException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s ExpiredImportTokenException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s ExpiredImportTokenException) RequestID() string {
- return s.respMetadata.RequestID
- }
- type GenerateDataKeyInput struct {
- _ struct{} `type:"structure"`
- // Specifies the encryption context that will be used when encrypting the data
- // key.
- //
- // An encryption context is a collection of non-secret key-value pairs that
- // represents additional authenticated data. When you use an encryption context
- // to encrypt data, you must specify the same (an exact case-sensitive match)
- // encryption context to decrypt the data. An encryption context is optional
- // when encrypting with a symmetric CMK, but it is highly recommended.
- //
- // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide.
- EncryptionContext map[string]*string `type:"map"`
- // A list of grant tokens.
- //
- // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token)
- // in the AWS Key Management Service Developer Guide.
- GrantTokens []*string `type:"list"`
- // Identifies the symmetric CMK that encrypts the data key.
- //
- // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name,
- // or alias ARN. When using an alias name, prefix it with "alias/". To specify
- // a CMK in a different AWS account, you must use the key ARN or alias ARN.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Alias name: alias/ExampleAlias
- //
- // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To
- // get the alias name and alias ARN, use ListAliases.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // Specifies the length of the data key. Use AES_128 to generate a 128-bit symmetric
- // key, or AES_256 to generate a 256-bit symmetric key.
- //
- // You must specify either the KeySpec or the NumberOfBytes parameter (but not
- // both) in every GenerateDataKey request.
- KeySpec *string `type:"string" enum:"DataKeySpec"`
- // Specifies the length of the data key in bytes. For example, use the value
- // 64 to generate a 512-bit data key (64 bytes is 512 bits). For 128-bit (16-byte)
- // and 256-bit (32-byte) data keys, use the KeySpec parameter.
- //
- // You must specify either the KeySpec or the NumberOfBytes parameter (but not
- // both) in every GenerateDataKey request.
- NumberOfBytes *int64 `min:"1" type:"integer"`
- }
- // String returns the string representation
- func (s GenerateDataKeyInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GenerateDataKeyInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *GenerateDataKeyInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GenerateDataKeyInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.NumberOfBytes != nil && *s.NumberOfBytes < 1 {
- invalidParams.Add(request.NewErrParamMinValue("NumberOfBytes", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetEncryptionContext sets the EncryptionContext field's value.
- func (s *GenerateDataKeyInput) SetEncryptionContext(v map[string]*string) *GenerateDataKeyInput {
- s.EncryptionContext = v
- return s
- }
- // SetGrantTokens sets the GrantTokens field's value.
- func (s *GenerateDataKeyInput) SetGrantTokens(v []*string) *GenerateDataKeyInput {
- s.GrantTokens = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GenerateDataKeyInput) SetKeyId(v string) *GenerateDataKeyInput {
- s.KeyId = &v
- return s
- }
- // SetKeySpec sets the KeySpec field's value.
- func (s *GenerateDataKeyInput) SetKeySpec(v string) *GenerateDataKeyInput {
- s.KeySpec = &v
- return s
- }
- // SetNumberOfBytes sets the NumberOfBytes field's value.
- func (s *GenerateDataKeyInput) SetNumberOfBytes(v int64) *GenerateDataKeyInput {
- s.NumberOfBytes = &v
- return s
- }
- type GenerateDataKeyOutput struct {
- _ struct{} `type:"structure"`
- // The encrypted copy of the data key. When you use the HTTP API or the AWS
- // CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.
- //
- // CiphertextBlob is automatically base64 encoded/decoded by the SDK.
- CiphertextBlob []byte `min:"1" type:"blob"`
- // The identifier of the CMK that encrypted the data key.
- KeyId *string `min:"1" type:"string"`
- // The plaintext data key. When you use the HTTP API or the AWS CLI, the value
- // is Base64-encoded. Otherwise, it is not Base64-encoded. Use this data key
- // to encrypt your data outside of KMS. Then, remove it from memory as soon
- // as possible.
- //
- // Plaintext is automatically base64 encoded/decoded by the SDK.
- Plaintext []byte `min:"1" type:"blob" sensitive:"true"`
- }
- // String returns the string representation
- func (s GenerateDataKeyOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GenerateDataKeyOutput) GoString() string {
- return s.String()
- }
- // SetCiphertextBlob sets the CiphertextBlob field's value.
- func (s *GenerateDataKeyOutput) SetCiphertextBlob(v []byte) *GenerateDataKeyOutput {
- s.CiphertextBlob = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GenerateDataKeyOutput) SetKeyId(v string) *GenerateDataKeyOutput {
- s.KeyId = &v
- return s
- }
- // SetPlaintext sets the Plaintext field's value.
- func (s *GenerateDataKeyOutput) SetPlaintext(v []byte) *GenerateDataKeyOutput {
- s.Plaintext = v
- return s
- }
- type GenerateDataKeyPairInput struct {
- _ struct{} `type:"structure"`
- // Specifies the encryption context that will be used when encrypting the private
- // key in the data key pair.
- //
- // An encryption context is a collection of non-secret key-value pairs that
- // represents additional authenticated data. When you use an encryption context
- // to encrypt data, you must specify the same (an exact case-sensitive match)
- // encryption context to decrypt the data. An encryption context is optional
- // when encrypting with a symmetric CMK, but it is highly recommended.
- //
- // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide.
- EncryptionContext map[string]*string `type:"map"`
- // A list of grant tokens.
- //
- // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token)
- // in the AWS Key Management Service Developer Guide.
- GrantTokens []*string `type:"list"`
- // Specifies the symmetric CMK that encrypts the private key in the data key
- // pair. You cannot specify an asymmetric CMKs.
- //
- // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name,
- // or alias ARN. When using an alias name, prefix it with "alias/". To specify
- // a CMK in a different AWS account, you must use the key ARN or alias ARN.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Alias name: alias/ExampleAlias
- //
- // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To
- // get the alias name and alias ARN, use ListAliases.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // Determines the type of data key pair that is generated.
- //
- // The AWS KMS rule that restricts the use of asymmetric RSA CMKs to encrypt
- // and decrypt or to sign and verify (but not both), and the rule that permits
- // you to use ECC CMKs only to sign and verify, are not effective outside of
- // AWS KMS.
- //
- // KeyPairSpec is a required field
- KeyPairSpec *string `type:"string" required:"true" enum:"DataKeyPairSpec"`
- }
- // String returns the string representation
- func (s GenerateDataKeyPairInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GenerateDataKeyPairInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *GenerateDataKeyPairInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GenerateDataKeyPairInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.KeyPairSpec == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyPairSpec"))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetEncryptionContext sets the EncryptionContext field's value.
- func (s *GenerateDataKeyPairInput) SetEncryptionContext(v map[string]*string) *GenerateDataKeyPairInput {
- s.EncryptionContext = v
- return s
- }
- // SetGrantTokens sets the GrantTokens field's value.
- func (s *GenerateDataKeyPairInput) SetGrantTokens(v []*string) *GenerateDataKeyPairInput {
- s.GrantTokens = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GenerateDataKeyPairInput) SetKeyId(v string) *GenerateDataKeyPairInput {
- s.KeyId = &v
- return s
- }
- // SetKeyPairSpec sets the KeyPairSpec field's value.
- func (s *GenerateDataKeyPairInput) SetKeyPairSpec(v string) *GenerateDataKeyPairInput {
- s.KeyPairSpec = &v
- return s
- }
- type GenerateDataKeyPairOutput struct {
- _ struct{} `type:"structure"`
- // The identifier of the CMK that encrypted the private key.
- KeyId *string `min:"1" type:"string"`
- // The type of data key pair that was generated.
- KeyPairSpec *string `type:"string" enum:"DataKeyPairSpec"`
- // The encrypted copy of the private key. When you use the HTTP API or the AWS
- // CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.
- //
- // PrivateKeyCiphertextBlob is automatically base64 encoded/decoded by the SDK.
- PrivateKeyCiphertextBlob []byte `min:"1" type:"blob"`
- // The plaintext copy of the private key. When you use the HTTP API or the AWS
- // CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.
- //
- // PrivateKeyPlaintext is automatically base64 encoded/decoded by the SDK.
- PrivateKeyPlaintext []byte `min:"1" type:"blob" sensitive:"true"`
- // The public key (in plaintext).
- //
- // PublicKey is automatically base64 encoded/decoded by the SDK.
- PublicKey []byte `min:"1" type:"blob"`
- }
- // String returns the string representation
- func (s GenerateDataKeyPairOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GenerateDataKeyPairOutput) GoString() string {
- return s.String()
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GenerateDataKeyPairOutput) SetKeyId(v string) *GenerateDataKeyPairOutput {
- s.KeyId = &v
- return s
- }
- // SetKeyPairSpec sets the KeyPairSpec field's value.
- func (s *GenerateDataKeyPairOutput) SetKeyPairSpec(v string) *GenerateDataKeyPairOutput {
- s.KeyPairSpec = &v
- return s
- }
- // SetPrivateKeyCiphertextBlob sets the PrivateKeyCiphertextBlob field's value.
- func (s *GenerateDataKeyPairOutput) SetPrivateKeyCiphertextBlob(v []byte) *GenerateDataKeyPairOutput {
- s.PrivateKeyCiphertextBlob = v
- return s
- }
- // SetPrivateKeyPlaintext sets the PrivateKeyPlaintext field's value.
- func (s *GenerateDataKeyPairOutput) SetPrivateKeyPlaintext(v []byte) *GenerateDataKeyPairOutput {
- s.PrivateKeyPlaintext = v
- return s
- }
- // SetPublicKey sets the PublicKey field's value.
- func (s *GenerateDataKeyPairOutput) SetPublicKey(v []byte) *GenerateDataKeyPairOutput {
- s.PublicKey = v
- return s
- }
- type GenerateDataKeyPairWithoutPlaintextInput struct {
- _ struct{} `type:"structure"`
- // Specifies the encryption context that will be used when encrypting the private
- // key in the data key pair.
- //
- // An encryption context is a collection of non-secret key-value pairs that
- // represents additional authenticated data. When you use an encryption context
- // to encrypt data, you must specify the same (an exact case-sensitive match)
- // encryption context to decrypt the data. An encryption context is optional
- // when encrypting with a symmetric CMK, but it is highly recommended.
- //
- // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide.
- EncryptionContext map[string]*string `type:"map"`
- // A list of grant tokens.
- //
- // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token)
- // in the AWS Key Management Service Developer Guide.
- GrantTokens []*string `type:"list"`
- // Specifies the CMK that encrypts the private key in the data key pair. You
- // must specify a symmetric CMK. You cannot use an asymmetric CMK.
- //
- // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name,
- // or alias ARN. When using an alias name, prefix it with "alias/".
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Alias name: alias/ExampleAlias
- //
- // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To
- // get the alias name and alias ARN, use ListAliases.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // Determines the type of data key pair that is generated.
- //
- // The AWS KMS rule that restricts the use of asymmetric RSA CMKs to encrypt
- // and decrypt or to sign and verify (but not both), and the rule that permits
- // you to use ECC CMKs only to sign and verify, are not effective outside of
- // AWS KMS.
- //
- // KeyPairSpec is a required field
- KeyPairSpec *string `type:"string" required:"true" enum:"DataKeyPairSpec"`
- }
- // String returns the string representation
- func (s GenerateDataKeyPairWithoutPlaintextInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GenerateDataKeyPairWithoutPlaintextInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *GenerateDataKeyPairWithoutPlaintextInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GenerateDataKeyPairWithoutPlaintextInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.KeyPairSpec == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyPairSpec"))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetEncryptionContext sets the EncryptionContext field's value.
- func (s *GenerateDataKeyPairWithoutPlaintextInput) SetEncryptionContext(v map[string]*string) *GenerateDataKeyPairWithoutPlaintextInput {
- s.EncryptionContext = v
- return s
- }
- // SetGrantTokens sets the GrantTokens field's value.
- func (s *GenerateDataKeyPairWithoutPlaintextInput) SetGrantTokens(v []*string) *GenerateDataKeyPairWithoutPlaintextInput {
- s.GrantTokens = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GenerateDataKeyPairWithoutPlaintextInput) SetKeyId(v string) *GenerateDataKeyPairWithoutPlaintextInput {
- s.KeyId = &v
- return s
- }
- // SetKeyPairSpec sets the KeyPairSpec field's value.
- func (s *GenerateDataKeyPairWithoutPlaintextInput) SetKeyPairSpec(v string) *GenerateDataKeyPairWithoutPlaintextInput {
- s.KeyPairSpec = &v
- return s
- }
- type GenerateDataKeyPairWithoutPlaintextOutput struct {
- _ struct{} `type:"structure"`
- // Specifies the CMK that encrypted the private key in the data key pair. You
- // must specify a symmetric CMK. You cannot use an asymmetric CMK.
- //
- // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name,
- // or alias ARN. When using an alias name, prefix it with "alias/".
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Alias name: alias/ExampleAlias
- //
- // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To
- // get the alias name and alias ARN, use ListAliases.
- KeyId *string `min:"1" type:"string"`
- // The type of data key pair that was generated.
- KeyPairSpec *string `type:"string" enum:"DataKeyPairSpec"`
- // The encrypted copy of the private key. When you use the HTTP API or the AWS
- // CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.
- //
- // PrivateKeyCiphertextBlob is automatically base64 encoded/decoded by the SDK.
- PrivateKeyCiphertextBlob []byte `min:"1" type:"blob"`
- // The public key (in plaintext).
- //
- // PublicKey is automatically base64 encoded/decoded by the SDK.
- PublicKey []byte `min:"1" type:"blob"`
- }
- // String returns the string representation
- func (s GenerateDataKeyPairWithoutPlaintextOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GenerateDataKeyPairWithoutPlaintextOutput) GoString() string {
- return s.String()
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GenerateDataKeyPairWithoutPlaintextOutput) SetKeyId(v string) *GenerateDataKeyPairWithoutPlaintextOutput {
- s.KeyId = &v
- return s
- }
- // SetKeyPairSpec sets the KeyPairSpec field's value.
- func (s *GenerateDataKeyPairWithoutPlaintextOutput) SetKeyPairSpec(v string) *GenerateDataKeyPairWithoutPlaintextOutput {
- s.KeyPairSpec = &v
- return s
- }
- // SetPrivateKeyCiphertextBlob sets the PrivateKeyCiphertextBlob field's value.
- func (s *GenerateDataKeyPairWithoutPlaintextOutput) SetPrivateKeyCiphertextBlob(v []byte) *GenerateDataKeyPairWithoutPlaintextOutput {
- s.PrivateKeyCiphertextBlob = v
- return s
- }
- // SetPublicKey sets the PublicKey field's value.
- func (s *GenerateDataKeyPairWithoutPlaintextOutput) SetPublicKey(v []byte) *GenerateDataKeyPairWithoutPlaintextOutput {
- s.PublicKey = v
- return s
- }
- type GenerateDataKeyWithoutPlaintextInput struct {
- _ struct{} `type:"structure"`
- // Specifies the encryption context that will be used when encrypting the data
- // key.
- //
- // An encryption context is a collection of non-secret key-value pairs that
- // represents additional authenticated data. When you use an encryption context
- // to encrypt data, you must specify the same (an exact case-sensitive match)
- // encryption context to decrypt the data. An encryption context is optional
- // when encrypting with a symmetric CMK, but it is highly recommended.
- //
- // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide.
- EncryptionContext map[string]*string `type:"map"`
- // A list of grant tokens.
- //
- // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token)
- // in the AWS Key Management Service Developer Guide.
- GrantTokens []*string `type:"list"`
- // The identifier of the symmetric customer master key (CMK) that encrypts the
- // data key.
- //
- // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name,
- // or alias ARN. When using an alias name, prefix it with "alias/". To specify
- // a CMK in a different AWS account, you must use the key ARN or alias ARN.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Alias name: alias/ExampleAlias
- //
- // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To
- // get the alias name and alias ARN, use ListAliases.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // The length of the data key. Use AES_128 to generate a 128-bit symmetric key,
- // or AES_256 to generate a 256-bit symmetric key.
- KeySpec *string `type:"string" enum:"DataKeySpec"`
- // The length of the data key in bytes. For example, use the value 64 to generate
- // a 512-bit data key (64 bytes is 512 bits). For common key lengths (128-bit
- // and 256-bit symmetric keys), we recommend that you use the KeySpec field
- // instead of this one.
- NumberOfBytes *int64 `min:"1" type:"integer"`
- }
- // String returns the string representation
- func (s GenerateDataKeyWithoutPlaintextInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GenerateDataKeyWithoutPlaintextInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *GenerateDataKeyWithoutPlaintextInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GenerateDataKeyWithoutPlaintextInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.NumberOfBytes != nil && *s.NumberOfBytes < 1 {
- invalidParams.Add(request.NewErrParamMinValue("NumberOfBytes", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetEncryptionContext sets the EncryptionContext field's value.
- func (s *GenerateDataKeyWithoutPlaintextInput) SetEncryptionContext(v map[string]*string) *GenerateDataKeyWithoutPlaintextInput {
- s.EncryptionContext = v
- return s
- }
- // SetGrantTokens sets the GrantTokens field's value.
- func (s *GenerateDataKeyWithoutPlaintextInput) SetGrantTokens(v []*string) *GenerateDataKeyWithoutPlaintextInput {
- s.GrantTokens = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GenerateDataKeyWithoutPlaintextInput) SetKeyId(v string) *GenerateDataKeyWithoutPlaintextInput {
- s.KeyId = &v
- return s
- }
- // SetKeySpec sets the KeySpec field's value.
- func (s *GenerateDataKeyWithoutPlaintextInput) SetKeySpec(v string) *GenerateDataKeyWithoutPlaintextInput {
- s.KeySpec = &v
- return s
- }
- // SetNumberOfBytes sets the NumberOfBytes field's value.
- func (s *GenerateDataKeyWithoutPlaintextInput) SetNumberOfBytes(v int64) *GenerateDataKeyWithoutPlaintextInput {
- s.NumberOfBytes = &v
- return s
- }
- type GenerateDataKeyWithoutPlaintextOutput struct {
- _ struct{} `type:"structure"`
- // The encrypted data key. When you use the HTTP API or the AWS CLI, the value
- // is Base64-encoded. Otherwise, it is not Base64-encoded.
- //
- // CiphertextBlob is automatically base64 encoded/decoded by the SDK.
- CiphertextBlob []byte `min:"1" type:"blob"`
- // The identifier of the CMK that encrypted the data key.
- KeyId *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s GenerateDataKeyWithoutPlaintextOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GenerateDataKeyWithoutPlaintextOutput) GoString() string {
- return s.String()
- }
- // SetCiphertextBlob sets the CiphertextBlob field's value.
- func (s *GenerateDataKeyWithoutPlaintextOutput) SetCiphertextBlob(v []byte) *GenerateDataKeyWithoutPlaintextOutput {
- s.CiphertextBlob = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GenerateDataKeyWithoutPlaintextOutput) SetKeyId(v string) *GenerateDataKeyWithoutPlaintextOutput {
- s.KeyId = &v
- return s
- }
- type GenerateRandomInput struct {
- _ struct{} `type:"structure"`
- // Generates the random byte string in the AWS CloudHSM cluster that is associated
- // with the specified custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).
- // To find the ID of a custom key store, use the DescribeCustomKeyStores operation.
- CustomKeyStoreId *string `min:"1" type:"string"`
- // The length of the byte string.
- NumberOfBytes *int64 `min:"1" type:"integer"`
- }
- // String returns the string representation
- func (s GenerateRandomInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GenerateRandomInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *GenerateRandomInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GenerateRandomInput"}
- if s.CustomKeyStoreId != nil && len(*s.CustomKeyStoreId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CustomKeyStoreId", 1))
- }
- if s.NumberOfBytes != nil && *s.NumberOfBytes < 1 {
- invalidParams.Add(request.NewErrParamMinValue("NumberOfBytes", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetCustomKeyStoreId sets the CustomKeyStoreId field's value.
- func (s *GenerateRandomInput) SetCustomKeyStoreId(v string) *GenerateRandomInput {
- s.CustomKeyStoreId = &v
- return s
- }
- // SetNumberOfBytes sets the NumberOfBytes field's value.
- func (s *GenerateRandomInput) SetNumberOfBytes(v int64) *GenerateRandomInput {
- s.NumberOfBytes = &v
- return s
- }
- type GenerateRandomOutput struct {
- _ struct{} `type:"structure"`
- // The random byte string. When you use the HTTP API or the AWS CLI, the value
- // is Base64-encoded. Otherwise, it is not Base64-encoded.
- //
- // Plaintext is automatically base64 encoded/decoded by the SDK.
- Plaintext []byte `min:"1" type:"blob" sensitive:"true"`
- }
- // String returns the string representation
- func (s GenerateRandomOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GenerateRandomOutput) GoString() string {
- return s.String()
- }
- // SetPlaintext sets the Plaintext field's value.
- func (s *GenerateRandomOutput) SetPlaintext(v []byte) *GenerateRandomOutput {
- s.Plaintext = v
- return s
- }
- type GetKeyPolicyInput struct {
- _ struct{} `type:"structure"`
- // A unique identifier for the customer master key (CMK).
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // Specifies the name of the key policy. The only valid name is default. To
- // get the names of key policies, use ListKeyPolicies.
- //
- // PolicyName is a required field
- PolicyName *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s GetKeyPolicyInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetKeyPolicyInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *GetKeyPolicyInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetKeyPolicyInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.PolicyName == nil {
- invalidParams.Add(request.NewErrParamRequired("PolicyName"))
- }
- if s.PolicyName != nil && len(*s.PolicyName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GetKeyPolicyInput) SetKeyId(v string) *GetKeyPolicyInput {
- s.KeyId = &v
- return s
- }
- // SetPolicyName sets the PolicyName field's value.
- func (s *GetKeyPolicyInput) SetPolicyName(v string) *GetKeyPolicyInput {
- s.PolicyName = &v
- return s
- }
- type GetKeyPolicyOutput struct {
- _ struct{} `type:"structure"`
- // A key policy document in JSON format.
- Policy *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s GetKeyPolicyOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetKeyPolicyOutput) GoString() string {
- return s.String()
- }
- // SetPolicy sets the Policy field's value.
- func (s *GetKeyPolicyOutput) SetPolicy(v string) *GetKeyPolicyOutput {
- s.Policy = &v
- return s
- }
- type GetKeyRotationStatusInput struct {
- _ struct{} `type:"structure"`
- // A unique identifier for the customer master key (CMK).
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify
- // a CMK in a different AWS account, you must use the key ARN.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s GetKeyRotationStatusInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetKeyRotationStatusInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *GetKeyRotationStatusInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetKeyRotationStatusInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GetKeyRotationStatusInput) SetKeyId(v string) *GetKeyRotationStatusInput {
- s.KeyId = &v
- return s
- }
- type GetKeyRotationStatusOutput struct {
- _ struct{} `type:"structure"`
- // A Boolean value that specifies whether key rotation is enabled.
- KeyRotationEnabled *bool `type:"boolean"`
- }
- // String returns the string representation
- func (s GetKeyRotationStatusOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetKeyRotationStatusOutput) GoString() string {
- return s.String()
- }
- // SetKeyRotationEnabled sets the KeyRotationEnabled field's value.
- func (s *GetKeyRotationStatusOutput) SetKeyRotationEnabled(v bool) *GetKeyRotationStatusOutput {
- s.KeyRotationEnabled = &v
- return s
- }
- type GetParametersForImportInput struct {
- _ struct{} `type:"structure"`
- // The identifier of the symmetric CMK into which you will import key material.
- // The Origin of the CMK must be EXTERNAL.
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // The algorithm you will use to encrypt the key material before importing it
- // with ImportKeyMaterial. For more information, see Encrypt the Key Material
- // (https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-encrypt-key-material.html)
- // in the AWS Key Management Service Developer Guide.
- //
- // WrappingAlgorithm is a required field
- WrappingAlgorithm *string `type:"string" required:"true" enum:"AlgorithmSpec"`
- // The type of wrapping key (public key) to return in the response. Only 2048-bit
- // RSA public keys are supported.
- //
- // WrappingKeySpec is a required field
- WrappingKeySpec *string `type:"string" required:"true" enum:"WrappingKeySpec"`
- }
- // String returns the string representation
- func (s GetParametersForImportInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetParametersForImportInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *GetParametersForImportInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetParametersForImportInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.WrappingAlgorithm == nil {
- invalidParams.Add(request.NewErrParamRequired("WrappingAlgorithm"))
- }
- if s.WrappingKeySpec == nil {
- invalidParams.Add(request.NewErrParamRequired("WrappingKeySpec"))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GetParametersForImportInput) SetKeyId(v string) *GetParametersForImportInput {
- s.KeyId = &v
- return s
- }
- // SetWrappingAlgorithm sets the WrappingAlgorithm field's value.
- func (s *GetParametersForImportInput) SetWrappingAlgorithm(v string) *GetParametersForImportInput {
- s.WrappingAlgorithm = &v
- return s
- }
- // SetWrappingKeySpec sets the WrappingKeySpec field's value.
- func (s *GetParametersForImportInput) SetWrappingKeySpec(v string) *GetParametersForImportInput {
- s.WrappingKeySpec = &v
- return s
- }
- type GetParametersForImportOutput struct {
- _ struct{} `type:"structure"`
- // The import token to send in a subsequent ImportKeyMaterial request.
- //
- // ImportToken is automatically base64 encoded/decoded by the SDK.
- ImportToken []byte `min:"1" type:"blob"`
- // The identifier of the CMK to use in a subsequent ImportKeyMaterial request.
- // This is the same CMK specified in the GetParametersForImport request.
- KeyId *string `min:"1" type:"string"`
- // The time at which the import token and public key are no longer valid. After
- // this time, you cannot use them to make an ImportKeyMaterial request and you
- // must send another GetParametersForImport request to get new ones.
- ParametersValidTo *time.Time `type:"timestamp"`
- // The public key to use to encrypt the key material before importing it with
- // ImportKeyMaterial.
- //
- // PublicKey is automatically base64 encoded/decoded by the SDK.
- PublicKey []byte `min:"1" type:"blob" sensitive:"true"`
- }
- // String returns the string representation
- func (s GetParametersForImportOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetParametersForImportOutput) GoString() string {
- return s.String()
- }
- // SetImportToken sets the ImportToken field's value.
- func (s *GetParametersForImportOutput) SetImportToken(v []byte) *GetParametersForImportOutput {
- s.ImportToken = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GetParametersForImportOutput) SetKeyId(v string) *GetParametersForImportOutput {
- s.KeyId = &v
- return s
- }
- // SetParametersValidTo sets the ParametersValidTo field's value.
- func (s *GetParametersForImportOutput) SetParametersValidTo(v time.Time) *GetParametersForImportOutput {
- s.ParametersValidTo = &v
- return s
- }
- // SetPublicKey sets the PublicKey field's value.
- func (s *GetParametersForImportOutput) SetPublicKey(v []byte) *GetParametersForImportOutput {
- s.PublicKey = v
- return s
- }
- type GetPublicKeyInput struct {
- _ struct{} `type:"structure"`
- // A list of grant tokens.
- //
- // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token)
- // in the AWS Key Management Service Developer Guide.
- GrantTokens []*string `type:"list"`
- // Identifies the asymmetric CMK that includes the public key.
- //
- // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name,
- // or alias ARN. When using an alias name, prefix it with "alias/". To specify
- // a CMK in a different AWS account, you must use the key ARN or alias ARN.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Alias name: alias/ExampleAlias
- //
- // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To
- // get the alias name and alias ARN, use ListAliases.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s GetPublicKeyInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetPublicKeyInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *GetPublicKeyInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "GetPublicKeyInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetGrantTokens sets the GrantTokens field's value.
- func (s *GetPublicKeyInput) SetGrantTokens(v []*string) *GetPublicKeyInput {
- s.GrantTokens = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GetPublicKeyInput) SetKeyId(v string) *GetPublicKeyInput {
- s.KeyId = &v
- return s
- }
- type GetPublicKeyOutput struct {
- _ struct{} `type:"structure"`
- // The type of the of the public key that was downloaded.
- CustomerMasterKeySpec *string `type:"string" enum:"CustomerMasterKeySpec"`
- // The encryption algorithms that AWS KMS supports for this key.
- //
- // This information is critical. If a public key encrypts data outside of AWS
- // KMS by using an unsupported encryption algorithm, the ciphertext cannot be
- // decrypted.
- //
- // This field appears in the response only when the KeyUsage of the public key
- // is ENCRYPT_DECRYPT.
- EncryptionAlgorithms []*string `type:"list"`
- // The identifier of the asymmetric CMK from which the public key was downloaded.
- KeyId *string `min:"1" type:"string"`
- // The permitted use of the public key. Valid values are ENCRYPT_DECRYPT or
- // SIGN_VERIFY.
- //
- // This information is critical. If a public key with SIGN_VERIFY key usage
- // encrypts data outside of AWS KMS, the ciphertext cannot be decrypted.
- KeyUsage *string `type:"string" enum:"KeyUsageType"`
- // The exported public key.
- //
- // This value is returned as a binary Distinguished Encoding Rules (https://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf)
- // (DER)-encoded object. To decode it, use an ASN.1 parsing tool, such as OpenSSL
- // asn1parse (https://www.openssl.org/docs/man1.0.2/man1/asn1parse.html).
- //
- // PublicKey is automatically base64 encoded/decoded by the SDK.
- PublicKey []byte `min:"1" type:"blob"`
- // The signing algorithms that AWS KMS supports for this key.
- //
- // This field appears in the response only when the KeyUsage of the public key
- // is SIGN_VERIFY.
- SigningAlgorithms []*string `type:"list"`
- }
- // String returns the string representation
- func (s GetPublicKeyOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetPublicKeyOutput) GoString() string {
- return s.String()
- }
- // SetCustomerMasterKeySpec sets the CustomerMasterKeySpec field's value.
- func (s *GetPublicKeyOutput) SetCustomerMasterKeySpec(v string) *GetPublicKeyOutput {
- s.CustomerMasterKeySpec = &v
- return s
- }
- // SetEncryptionAlgorithms sets the EncryptionAlgorithms field's value.
- func (s *GetPublicKeyOutput) SetEncryptionAlgorithms(v []*string) *GetPublicKeyOutput {
- s.EncryptionAlgorithms = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GetPublicKeyOutput) SetKeyId(v string) *GetPublicKeyOutput {
- s.KeyId = &v
- return s
- }
- // SetKeyUsage sets the KeyUsage field's value.
- func (s *GetPublicKeyOutput) SetKeyUsage(v string) *GetPublicKeyOutput {
- s.KeyUsage = &v
- return s
- }
- // SetPublicKey sets the PublicKey field's value.
- func (s *GetPublicKeyOutput) SetPublicKey(v []byte) *GetPublicKeyOutput {
- s.PublicKey = v
- return s
- }
- // SetSigningAlgorithms sets the SigningAlgorithms field's value.
- func (s *GetPublicKeyOutput) SetSigningAlgorithms(v []*string) *GetPublicKeyOutput {
- s.SigningAlgorithms = v
- return s
- }
- // Use this structure to allow cryptographic operations in the grant only when
- // the operation request includes the specified encryption context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context).
- //
- // AWS KMS applies the grant constraints only when the grant allows a cryptographic
- // operation that accepts an encryption context as input, such as the following.
- //
- // * Encrypt
- //
- // * Decrypt
- //
- // * GenerateDataKey
- //
- // * GenerateDataKeyWithoutPlaintext
- //
- // * ReEncrypt
- //
- // AWS KMS does not apply the grant constraints to other operations, such as
- // DescribeKey or ScheduleKeyDeletion.
- //
- // In a cryptographic operation, the encryption context in the decryption operation
- // must be an exact, case-sensitive match for the keys and values in the encryption
- // context of the encryption operation. Only the order of the pairs can vary.
- //
- // However, in a grant constraint, the key in each key-value pair is not case
- // sensitive, but the value is case sensitive.
- //
- // To avoid confusion, do not use multiple encryption context pairs that differ
- // only by case. To require a fully case-sensitive encryption context, use the
- // kms:EncryptionContext: and kms:EncryptionContextKeys conditions in an IAM
- // or key policy. For details, see kms:EncryptionContext: (https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context)
- // in the AWS Key Management Service Developer Guide .
- type GrantConstraints struct {
- _ struct{} `type:"structure"`
- // A list of key-value pairs that must match the encryption context in the cryptographic
- // operation request. The grant allows the operation only when the encryption
- // context in the request is the same as the encryption context specified in
- // this constraint.
- EncryptionContextEquals map[string]*string `type:"map"`
- // A list of key-value pairs that must be included in the encryption context
- // of the cryptographic operation request. The grant allows the cryptographic
- // operation only when the encryption context in the request includes the key-value
- // pairs specified in this constraint, although it can include additional key-value
- // pairs.
- EncryptionContextSubset map[string]*string `type:"map"`
- }
- // String returns the string representation
- func (s GrantConstraints) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GrantConstraints) GoString() string {
- return s.String()
- }
- // SetEncryptionContextEquals sets the EncryptionContextEquals field's value.
- func (s *GrantConstraints) SetEncryptionContextEquals(v map[string]*string) *GrantConstraints {
- s.EncryptionContextEquals = v
- return s
- }
- // SetEncryptionContextSubset sets the EncryptionContextSubset field's value.
- func (s *GrantConstraints) SetEncryptionContextSubset(v map[string]*string) *GrantConstraints {
- s.EncryptionContextSubset = v
- return s
- }
- // Contains information about an entry in a list of grants.
- type GrantListEntry struct {
- _ struct{} `type:"structure"`
- // A list of key-value pairs that must be present in the encryption context
- // of certain subsequent operations that the grant allows.
- Constraints *GrantConstraints `type:"structure"`
- // The date and time when the grant was created.
- CreationDate *time.Time `type:"timestamp"`
- // The unique identifier for the grant.
- GrantId *string `min:"1" type:"string"`
- // The principal that receives the grant's permissions.
- GranteePrincipal *string `min:"1" type:"string"`
- // The AWS account under which the grant was issued.
- IssuingAccount *string `min:"1" type:"string"`
- // The unique identifier for the customer master key (CMK) to which the grant
- // applies.
- KeyId *string `min:"1" type:"string"`
- // The friendly name that identifies the grant. If a name was provided in the
- // CreateGrant request, that name is returned. Otherwise this value is null.
- Name *string `min:"1" type:"string"`
- // The list of operations permitted by the grant.
- Operations []*string `type:"list"`
- // The principal that can retire the grant.
- RetiringPrincipal *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s GrantListEntry) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GrantListEntry) GoString() string {
- return s.String()
- }
- // SetConstraints sets the Constraints field's value.
- func (s *GrantListEntry) SetConstraints(v *GrantConstraints) *GrantListEntry {
- s.Constraints = v
- return s
- }
- // SetCreationDate sets the CreationDate field's value.
- func (s *GrantListEntry) SetCreationDate(v time.Time) *GrantListEntry {
- s.CreationDate = &v
- return s
- }
- // SetGrantId sets the GrantId field's value.
- func (s *GrantListEntry) SetGrantId(v string) *GrantListEntry {
- s.GrantId = &v
- return s
- }
- // SetGranteePrincipal sets the GranteePrincipal field's value.
- func (s *GrantListEntry) SetGranteePrincipal(v string) *GrantListEntry {
- s.GranteePrincipal = &v
- return s
- }
- // SetIssuingAccount sets the IssuingAccount field's value.
- func (s *GrantListEntry) SetIssuingAccount(v string) *GrantListEntry {
- s.IssuingAccount = &v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *GrantListEntry) SetKeyId(v string) *GrantListEntry {
- s.KeyId = &v
- return s
- }
- // SetName sets the Name field's value.
- func (s *GrantListEntry) SetName(v string) *GrantListEntry {
- s.Name = &v
- return s
- }
- // SetOperations sets the Operations field's value.
- func (s *GrantListEntry) SetOperations(v []*string) *GrantListEntry {
- s.Operations = v
- return s
- }
- // SetRetiringPrincipal sets the RetiringPrincipal field's value.
- func (s *GrantListEntry) SetRetiringPrincipal(v string) *GrantListEntry {
- s.RetiringPrincipal = &v
- return s
- }
- type ImportKeyMaterialInput struct {
- _ struct{} `type:"structure"`
- // The encrypted key material to import. The key material must be encrypted
- // with the public wrapping key that GetParametersForImport returned, using
- // the wrapping algorithm that you specified in the same GetParametersForImport
- // request.
- //
- // EncryptedKeyMaterial is automatically base64 encoded/decoded by the SDK.
- //
- // EncryptedKeyMaterial is a required field
- EncryptedKeyMaterial []byte `min:"1" type:"blob" required:"true"`
- // Specifies whether the key material expires. The default is KEY_MATERIAL_EXPIRES,
- // in which case you must include the ValidTo parameter. When this parameter
- // is set to KEY_MATERIAL_DOES_NOT_EXPIRE, you must omit the ValidTo parameter.
- ExpirationModel *string `type:"string" enum:"ExpirationModelType"`
- // The import token that you received in the response to a previous GetParametersForImport
- // request. It must be from the same response that contained the public key
- // that you used to encrypt the key material.
- //
- // ImportToken is automatically base64 encoded/decoded by the SDK.
- //
- // ImportToken is a required field
- ImportToken []byte `min:"1" type:"blob" required:"true"`
- // The identifier of the symmetric CMK that receives the imported key material.
- // The CMK's Origin must be EXTERNAL. This must be the same CMK specified in
- // the KeyID parameter of the corresponding GetParametersForImport request.
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // The time at which the imported key material expires. When the key material
- // expires, AWS KMS deletes the key material and the CMK becomes unusable. You
- // must omit this parameter when the ExpirationModel parameter is set to KEY_MATERIAL_DOES_NOT_EXPIRE.
- // Otherwise it is required.
- ValidTo *time.Time `type:"timestamp"`
- }
- // String returns the string representation
- func (s ImportKeyMaterialInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ImportKeyMaterialInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ImportKeyMaterialInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ImportKeyMaterialInput"}
- if s.EncryptedKeyMaterial == nil {
- invalidParams.Add(request.NewErrParamRequired("EncryptedKeyMaterial"))
- }
- if s.EncryptedKeyMaterial != nil && len(s.EncryptedKeyMaterial) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("EncryptedKeyMaterial", 1))
- }
- if s.ImportToken == nil {
- invalidParams.Add(request.NewErrParamRequired("ImportToken"))
- }
- if s.ImportToken != nil && len(s.ImportToken) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("ImportToken", 1))
- }
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetEncryptedKeyMaterial sets the EncryptedKeyMaterial field's value.
- func (s *ImportKeyMaterialInput) SetEncryptedKeyMaterial(v []byte) *ImportKeyMaterialInput {
- s.EncryptedKeyMaterial = v
- return s
- }
- // SetExpirationModel sets the ExpirationModel field's value.
- func (s *ImportKeyMaterialInput) SetExpirationModel(v string) *ImportKeyMaterialInput {
- s.ExpirationModel = &v
- return s
- }
- // SetImportToken sets the ImportToken field's value.
- func (s *ImportKeyMaterialInput) SetImportToken(v []byte) *ImportKeyMaterialInput {
- s.ImportToken = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *ImportKeyMaterialInput) SetKeyId(v string) *ImportKeyMaterialInput {
- s.KeyId = &v
- return s
- }
- // SetValidTo sets the ValidTo field's value.
- func (s *ImportKeyMaterialInput) SetValidTo(v time.Time) *ImportKeyMaterialInput {
- s.ValidTo = &v
- return s
- }
- type ImportKeyMaterialOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s ImportKeyMaterialOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ImportKeyMaterialOutput) GoString() string {
- return s.String()
- }
- // The request was rejected because the specified CMK cannot decrypt the data.
- // The KeyId in a Decrypt request and the SourceKeyId in a ReEncrypt request
- // must identify the same CMK that was used to encrypt the ciphertext.
- type IncorrectKeyException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s IncorrectKeyException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s IncorrectKeyException) GoString() string {
- return s.String()
- }
- func newErrorIncorrectKeyException(v protocol.ResponseMetadata) error {
- return &IncorrectKeyException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s IncorrectKeyException) Code() string {
- return "IncorrectKeyException"
- }
- // Message returns the exception's message.
- func (s IncorrectKeyException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s IncorrectKeyException) OrigErr() error {
- return nil
- }
- func (s IncorrectKeyException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s IncorrectKeyException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s IncorrectKeyException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the key material in the request is, expired,
- // invalid, or is not the same key material that was previously imported into
- // this customer master key (CMK).
- type IncorrectKeyMaterialException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s IncorrectKeyMaterialException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s IncorrectKeyMaterialException) GoString() string {
- return s.String()
- }
- func newErrorIncorrectKeyMaterialException(v protocol.ResponseMetadata) error {
- return &IncorrectKeyMaterialException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s IncorrectKeyMaterialException) Code() string {
- return "IncorrectKeyMaterialException"
- }
- // Message returns the exception's message.
- func (s IncorrectKeyMaterialException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s IncorrectKeyMaterialException) OrigErr() error {
- return nil
- }
- func (s IncorrectKeyMaterialException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s IncorrectKeyMaterialException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s IncorrectKeyMaterialException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the trust anchor certificate in the request
- // is not the trust anchor certificate for the specified AWS CloudHSM cluster.
- //
- // When you initialize the cluster (https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr),
- // you create the trust anchor certificate and save it in the customerCA.crt
- // file.
- type IncorrectTrustAnchorException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s IncorrectTrustAnchorException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s IncorrectTrustAnchorException) GoString() string {
- return s.String()
- }
- func newErrorIncorrectTrustAnchorException(v protocol.ResponseMetadata) error {
- return &IncorrectTrustAnchorException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s IncorrectTrustAnchorException) Code() string {
- return "IncorrectTrustAnchorException"
- }
- // Message returns the exception's message.
- func (s IncorrectTrustAnchorException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s IncorrectTrustAnchorException) OrigErr() error {
- return nil
- }
- func (s IncorrectTrustAnchorException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s IncorrectTrustAnchorException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s IncorrectTrustAnchorException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because an internal exception occurred. The request
- // can be retried.
- type InternalException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s InternalException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s InternalException) GoString() string {
- return s.String()
- }
- func newErrorInternalException(v protocol.ResponseMetadata) error {
- return &InternalException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s InternalException) Code() string {
- return "KMSInternalException"
- }
- // Message returns the exception's message.
- func (s InternalException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s InternalException) OrigErr() error {
- return nil
- }
- func (s InternalException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s InternalException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s InternalException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the specified alias name is not valid.
- type InvalidAliasNameException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s InvalidAliasNameException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s InvalidAliasNameException) GoString() string {
- return s.String()
- }
- func newErrorInvalidAliasNameException(v protocol.ResponseMetadata) error {
- return &InvalidAliasNameException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s InvalidAliasNameException) Code() string {
- return "InvalidAliasNameException"
- }
- // Message returns the exception's message.
- func (s InvalidAliasNameException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s InvalidAliasNameException) OrigErr() error {
- return nil
- }
- func (s InvalidAliasNameException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s InvalidAliasNameException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s InvalidAliasNameException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because a specified ARN, or an ARN in a key policy,
- // is not valid.
- type InvalidArnException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s InvalidArnException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s InvalidArnException) GoString() string {
- return s.String()
- }
- func newErrorInvalidArnException(v protocol.ResponseMetadata) error {
- return &InvalidArnException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s InvalidArnException) Code() string {
- return "InvalidArnException"
- }
- // Message returns the exception's message.
- func (s InvalidArnException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s InvalidArnException) OrigErr() error {
- return nil
- }
- func (s InvalidArnException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s InvalidArnException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s InvalidArnException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // From the Decrypt or ReEncrypt operation, the request was rejected because
- // the specified ciphertext, or additional authenticated data incorporated into
- // the ciphertext, such as the encryption context, is corrupted, missing, or
- // otherwise invalid.
- //
- // From the ImportKeyMaterial operation, the request was rejected because AWS
- // KMS could not decrypt the encrypted (wrapped) key material.
- type InvalidCiphertextException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s InvalidCiphertextException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s InvalidCiphertextException) GoString() string {
- return s.String()
- }
- func newErrorInvalidCiphertextException(v protocol.ResponseMetadata) error {
- return &InvalidCiphertextException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s InvalidCiphertextException) Code() string {
- return "InvalidCiphertextException"
- }
- // Message returns the exception's message.
- func (s InvalidCiphertextException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s InvalidCiphertextException) OrigErr() error {
- return nil
- }
- func (s InvalidCiphertextException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s InvalidCiphertextException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s InvalidCiphertextException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the specified GrantId is not valid.
- type InvalidGrantIdException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s InvalidGrantIdException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s InvalidGrantIdException) GoString() string {
- return s.String()
- }
- func newErrorInvalidGrantIdException(v protocol.ResponseMetadata) error {
- return &InvalidGrantIdException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s InvalidGrantIdException) Code() string {
- return "InvalidGrantIdException"
- }
- // Message returns the exception's message.
- func (s InvalidGrantIdException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s InvalidGrantIdException) OrigErr() error {
- return nil
- }
- func (s InvalidGrantIdException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s InvalidGrantIdException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s InvalidGrantIdException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the specified grant token is not valid.
- type InvalidGrantTokenException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s InvalidGrantTokenException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s InvalidGrantTokenException) GoString() string {
- return s.String()
- }
- func newErrorInvalidGrantTokenException(v protocol.ResponseMetadata) error {
- return &InvalidGrantTokenException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s InvalidGrantTokenException) Code() string {
- return "InvalidGrantTokenException"
- }
- // Message returns the exception's message.
- func (s InvalidGrantTokenException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s InvalidGrantTokenException) OrigErr() error {
- return nil
- }
- func (s InvalidGrantTokenException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s InvalidGrantTokenException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s InvalidGrantTokenException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the provided import token is invalid or
- // is associated with a different customer master key (CMK).
- type InvalidImportTokenException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s InvalidImportTokenException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s InvalidImportTokenException) GoString() string {
- return s.String()
- }
- func newErrorInvalidImportTokenException(v protocol.ResponseMetadata) error {
- return &InvalidImportTokenException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s InvalidImportTokenException) Code() string {
- return "InvalidImportTokenException"
- }
- // Message returns the exception's message.
- func (s InvalidImportTokenException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s InvalidImportTokenException) OrigErr() error {
- return nil
- }
- func (s InvalidImportTokenException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s InvalidImportTokenException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s InvalidImportTokenException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected for one of the following reasons:
- //
- // * The KeyUsage value of the CMK is incompatible with the API operation.
- //
- // * The encryption algorithm or signing algorithm specified for the operation
- // is incompatible with the type of key material in the CMK (CustomerMasterKeySpec).
- //
- // For encrypting, decrypting, re-encrypting, and generating data keys, the
- // KeyUsage must be ENCRYPT_DECRYPT. For signing and verifying, the KeyUsage
- // must be SIGN_VERIFY. To find the KeyUsage of a CMK, use the DescribeKey operation.
- //
- // To find the encryption or signing algorithms supported for a particular CMK,
- // use the DescribeKey operation.
- type InvalidKeyUsageException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s InvalidKeyUsageException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s InvalidKeyUsageException) GoString() string {
- return s.String()
- }
- func newErrorInvalidKeyUsageException(v protocol.ResponseMetadata) error {
- return &InvalidKeyUsageException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s InvalidKeyUsageException) Code() string {
- return "InvalidKeyUsageException"
- }
- // Message returns the exception's message.
- func (s InvalidKeyUsageException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s InvalidKeyUsageException) OrigErr() error {
- return nil
- }
- func (s InvalidKeyUsageException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s InvalidKeyUsageException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s InvalidKeyUsageException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the marker that specifies where pagination
- // should next begin is not valid.
- type InvalidMarkerException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s InvalidMarkerException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s InvalidMarkerException) GoString() string {
- return s.String()
- }
- func newErrorInvalidMarkerException(v protocol.ResponseMetadata) error {
- return &InvalidMarkerException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s InvalidMarkerException) Code() string {
- return "InvalidMarkerException"
- }
- // Message returns the exception's message.
- func (s InvalidMarkerException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s InvalidMarkerException) OrigErr() error {
- return nil
- }
- func (s InvalidMarkerException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s InvalidMarkerException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s InvalidMarkerException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the state of the specified resource is not
- // valid for this request.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide .
- type InvalidStateException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s InvalidStateException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s InvalidStateException) GoString() string {
- return s.String()
- }
- func newErrorInvalidStateException(v protocol.ResponseMetadata) error {
- return &InvalidStateException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s InvalidStateException) Code() string {
- return "KMSInvalidStateException"
- }
- // Message returns the exception's message.
- func (s InvalidStateException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s InvalidStateException) OrigErr() error {
- return nil
- }
- func (s InvalidStateException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s InvalidStateException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s InvalidStateException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the signature verification failed. Signature
- // verification fails when it cannot confirm that signature was produced by
- // signing the specified message with the specified CMK and signing algorithm.
- type KMSInvalidSignatureException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s KMSInvalidSignatureException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s KMSInvalidSignatureException) GoString() string {
- return s.String()
- }
- func newErrorKMSInvalidSignatureException(v protocol.ResponseMetadata) error {
- return &KMSInvalidSignatureException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s KMSInvalidSignatureException) Code() string {
- return "KMSInvalidSignatureException"
- }
- // Message returns the exception's message.
- func (s KMSInvalidSignatureException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s KMSInvalidSignatureException) OrigErr() error {
- return nil
- }
- func (s KMSInvalidSignatureException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s KMSInvalidSignatureException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s KMSInvalidSignatureException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // Contains information about each entry in the key list.
- type KeyListEntry struct {
- _ struct{} `type:"structure"`
- // ARN of the key.
- KeyArn *string `min:"20" type:"string"`
- // Unique identifier of the key.
- KeyId *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s KeyListEntry) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s KeyListEntry) GoString() string {
- return s.String()
- }
- // SetKeyArn sets the KeyArn field's value.
- func (s *KeyListEntry) SetKeyArn(v string) *KeyListEntry {
- s.KeyArn = &v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *KeyListEntry) SetKeyId(v string) *KeyListEntry {
- s.KeyId = &v
- return s
- }
- // Contains metadata about a customer master key (CMK).
- //
- // This data type is used as a response element for the CreateKey and DescribeKey
- // operations.
- type KeyMetadata struct {
- _ struct{} `type:"structure"`
- // The twelve-digit account ID of the AWS account that owns the CMK.
- AWSAccountId *string `type:"string"`
- // The Amazon Resource Name (ARN) of the CMK. For examples, see AWS Key Management
- // Service (AWS KMS) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kms)
- // in the Example ARNs section of the AWS General Reference.
- Arn *string `min:"20" type:"string"`
- // The cluster ID of the AWS CloudHSM cluster that contains the key material
- // for the CMK. When you create a CMK in a custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html),
- // AWS KMS creates the key material for the CMK in the associated AWS CloudHSM
- // cluster. This value is present only when the CMK is created in a custom key
- // store.
- CloudHsmClusterId *string `min:"19" type:"string"`
- // The date and time when the CMK was created.
- CreationDate *time.Time `type:"timestamp"`
- // A unique identifier for the custom key store (https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)
- // that contains the CMK. This value is present only when the CMK is created
- // in a custom key store.
- CustomKeyStoreId *string `min:"1" type:"string"`
- // Describes the type of key material in the CMK.
- CustomerMasterKeySpec *string `type:"string" enum:"CustomerMasterKeySpec"`
- // The date and time after which AWS KMS deletes the CMK. This value is present
- // only when KeyState is PendingDeletion.
- DeletionDate *time.Time `type:"timestamp"`
- // The description of the CMK.
- Description *string `type:"string"`
- // Specifies whether the CMK is enabled. When KeyState is Enabled this value
- // is true, otherwise it is false.
- Enabled *bool `type:"boolean"`
- // A list of encryption algorithms that the CMK supports. You cannot use the
- // CMK with other encryption algorithms within AWS KMS.
- //
- // This field appears only when the KeyUsage of the CMK is ENCRYPT_DECRYPT.
- EncryptionAlgorithms []*string `type:"list"`
- // Specifies whether the CMK's key material expires. This value is present only
- // when Origin is EXTERNAL, otherwise this value is omitted.
- ExpirationModel *string `type:"string" enum:"ExpirationModelType"`
- // The globally unique identifier for the CMK.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // The manager of the CMK. CMKs in your AWS account are either customer managed
- // or AWS managed. For more information about the difference, see Customer Master
- // Keys (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)
- // in the AWS Key Management Service Developer Guide.
- KeyManager *string `type:"string" enum:"KeyManagerType"`
- // The state of the CMK.
- //
- // For more information about how key state affects the use of a CMK, see How
- // Key State Affects the Use of a Customer Master Key (https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html)
- // in the AWS Key Management Service Developer Guide.
- KeyState *string `type:"string" enum:"KeyState"`
- // The cryptographic operations for which you can use the CMK.
- KeyUsage *string `type:"string" enum:"KeyUsageType"`
- // The source of the CMK's key material. When this value is AWS_KMS, AWS KMS
- // created the key material. When this value is EXTERNAL, the key material was
- // imported from your existing key management infrastructure or the CMK lacks
- // key material. When this value is AWS_CLOUDHSM, the key material was created
- // in the AWS CloudHSM cluster associated with a custom key store.
- Origin *string `type:"string" enum:"OriginType"`
- // A list of signing algorithms that the CMK supports. You cannot use the CMK
- // with other signing algorithms within AWS KMS.
- //
- // This field appears only when the KeyUsage of the CMK is SIGN_VERIFY.
- SigningAlgorithms []*string `type:"list"`
- // The time at which the imported key material expires. When the key material
- // expires, AWS KMS deletes the key material and the CMK becomes unusable. This
- // value is present only for CMKs whose Origin is EXTERNAL and whose ExpirationModel
- // is KEY_MATERIAL_EXPIRES, otherwise this value is omitted.
- ValidTo *time.Time `type:"timestamp"`
- }
- // String returns the string representation
- func (s KeyMetadata) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s KeyMetadata) GoString() string {
- return s.String()
- }
- // SetAWSAccountId sets the AWSAccountId field's value.
- func (s *KeyMetadata) SetAWSAccountId(v string) *KeyMetadata {
- s.AWSAccountId = &v
- return s
- }
- // SetArn sets the Arn field's value.
- func (s *KeyMetadata) SetArn(v string) *KeyMetadata {
- s.Arn = &v
- return s
- }
- // SetCloudHsmClusterId sets the CloudHsmClusterId field's value.
- func (s *KeyMetadata) SetCloudHsmClusterId(v string) *KeyMetadata {
- s.CloudHsmClusterId = &v
- return s
- }
- // SetCreationDate sets the CreationDate field's value.
- func (s *KeyMetadata) SetCreationDate(v time.Time) *KeyMetadata {
- s.CreationDate = &v
- return s
- }
- // SetCustomKeyStoreId sets the CustomKeyStoreId field's value.
- func (s *KeyMetadata) SetCustomKeyStoreId(v string) *KeyMetadata {
- s.CustomKeyStoreId = &v
- return s
- }
- // SetCustomerMasterKeySpec sets the CustomerMasterKeySpec field's value.
- func (s *KeyMetadata) SetCustomerMasterKeySpec(v string) *KeyMetadata {
- s.CustomerMasterKeySpec = &v
- return s
- }
- // SetDeletionDate sets the DeletionDate field's value.
- func (s *KeyMetadata) SetDeletionDate(v time.Time) *KeyMetadata {
- s.DeletionDate = &v
- return s
- }
- // SetDescription sets the Description field's value.
- func (s *KeyMetadata) SetDescription(v string) *KeyMetadata {
- s.Description = &v
- return s
- }
- // SetEnabled sets the Enabled field's value.
- func (s *KeyMetadata) SetEnabled(v bool) *KeyMetadata {
- s.Enabled = &v
- return s
- }
- // SetEncryptionAlgorithms sets the EncryptionAlgorithms field's value.
- func (s *KeyMetadata) SetEncryptionAlgorithms(v []*string) *KeyMetadata {
- s.EncryptionAlgorithms = v
- return s
- }
- // SetExpirationModel sets the ExpirationModel field's value.
- func (s *KeyMetadata) SetExpirationModel(v string) *KeyMetadata {
- s.ExpirationModel = &v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *KeyMetadata) SetKeyId(v string) *KeyMetadata {
- s.KeyId = &v
- return s
- }
- // SetKeyManager sets the KeyManager field's value.
- func (s *KeyMetadata) SetKeyManager(v string) *KeyMetadata {
- s.KeyManager = &v
- return s
- }
- // SetKeyState sets the KeyState field's value.
- func (s *KeyMetadata) SetKeyState(v string) *KeyMetadata {
- s.KeyState = &v
- return s
- }
- // SetKeyUsage sets the KeyUsage field's value.
- func (s *KeyMetadata) SetKeyUsage(v string) *KeyMetadata {
- s.KeyUsage = &v
- return s
- }
- // SetOrigin sets the Origin field's value.
- func (s *KeyMetadata) SetOrigin(v string) *KeyMetadata {
- s.Origin = &v
- return s
- }
- // SetSigningAlgorithms sets the SigningAlgorithms field's value.
- func (s *KeyMetadata) SetSigningAlgorithms(v []*string) *KeyMetadata {
- s.SigningAlgorithms = v
- return s
- }
- // SetValidTo sets the ValidTo field's value.
- func (s *KeyMetadata) SetValidTo(v time.Time) *KeyMetadata {
- s.ValidTo = &v
- return s
- }
- // The request was rejected because the specified CMK was not available. You
- // can retry the request.
- type KeyUnavailableException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s KeyUnavailableException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s KeyUnavailableException) GoString() string {
- return s.String()
- }
- func newErrorKeyUnavailableException(v protocol.ResponseMetadata) error {
- return &KeyUnavailableException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s KeyUnavailableException) Code() string {
- return "KeyUnavailableException"
- }
- // Message returns the exception's message.
- func (s KeyUnavailableException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s KeyUnavailableException) OrigErr() error {
- return nil
- }
- func (s KeyUnavailableException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s KeyUnavailableException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s KeyUnavailableException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because a limit was exceeded. For more information,
- // see Limits (https://docs.aws.amazon.com/kms/latest/developerguide/limits.html)
- // in the AWS Key Management Service Developer Guide.
- type LimitExceededException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s LimitExceededException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s LimitExceededException) GoString() string {
- return s.String()
- }
- func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
- return &LimitExceededException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s LimitExceededException) Code() string {
- return "LimitExceededException"
- }
- // Message returns the exception's message.
- func (s LimitExceededException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s LimitExceededException) OrigErr() error {
- return nil
- }
- func (s LimitExceededException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s LimitExceededException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s LimitExceededException) RequestID() string {
- return s.respMetadata.RequestID
- }
- type ListAliasesInput struct {
- _ struct{} `type:"structure"`
- // Lists only aliases that refer to the specified CMK. The value of this parameter
- // can be the ID or Amazon Resource Name (ARN) of a CMK in the caller's account
- // and region. You cannot use an alias name or alias ARN in this value.
- //
- // This parameter is optional. If you omit it, ListAliases returns all aliases
- // in the account and region.
- KeyId *string `min:"1" type:"string"`
- // Use this parameter to specify the maximum number of items to return. When
- // this value is present, AWS KMS does not return more than the specified number
- // of items, but it might return fewer.
- //
- // This value is optional. If you include a value, it must be between 1 and
- // 100, inclusive. If you do not include a value, it defaults to 50.
- Limit *int64 `min:"1" type:"integer"`
- // Use this parameter in a subsequent request after you receive a response with
- // truncated results. Set it to the value of NextMarker from the truncated response
- // you just received.
- Marker *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s ListAliasesInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListAliasesInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ListAliasesInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ListAliasesInput"}
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.Limit != nil && *s.Limit < 1 {
- invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
- }
- if s.Marker != nil && len(*s.Marker) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *ListAliasesInput) SetKeyId(v string) *ListAliasesInput {
- s.KeyId = &v
- return s
- }
- // SetLimit sets the Limit field's value.
- func (s *ListAliasesInput) SetLimit(v int64) *ListAliasesInput {
- s.Limit = &v
- return s
- }
- // SetMarker sets the Marker field's value.
- func (s *ListAliasesInput) SetMarker(v string) *ListAliasesInput {
- s.Marker = &v
- return s
- }
- type ListAliasesOutput struct {
- _ struct{} `type:"structure"`
- // A list of aliases.
- Aliases []*AliasListEntry `type:"list"`
- // When Truncated is true, this element is present and contains the value to
- // use for the Marker parameter in a subsequent request.
- NextMarker *string `min:"1" type:"string"`
- // A flag that indicates whether there are more items in the list. When this
- // value is true, the list in this response is truncated. To get more items,
- // pass the value of the NextMarker element in thisresponse to the Marker parameter
- // in a subsequent request.
- Truncated *bool `type:"boolean"`
- }
- // String returns the string representation
- func (s ListAliasesOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListAliasesOutput) GoString() string {
- return s.String()
- }
- // SetAliases sets the Aliases field's value.
- func (s *ListAliasesOutput) SetAliases(v []*AliasListEntry) *ListAliasesOutput {
- s.Aliases = v
- return s
- }
- // SetNextMarker sets the NextMarker field's value.
- func (s *ListAliasesOutput) SetNextMarker(v string) *ListAliasesOutput {
- s.NextMarker = &v
- return s
- }
- // SetTruncated sets the Truncated field's value.
- func (s *ListAliasesOutput) SetTruncated(v bool) *ListAliasesOutput {
- s.Truncated = &v
- return s
- }
- type ListGrantsInput struct {
- _ struct{} `type:"structure"`
- // A unique identifier for the customer master key (CMK).
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify
- // a CMK in a different AWS account, you must use the key ARN.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // Use this parameter to specify the maximum number of items to return. When
- // this value is present, AWS KMS does not return more than the specified number
- // of items, but it might return fewer.
- //
- // This value is optional. If you include a value, it must be between 1 and
- // 100, inclusive. If you do not include a value, it defaults to 50.
- Limit *int64 `min:"1" type:"integer"`
- // Use this parameter in a subsequent request after you receive a response with
- // truncated results. Set it to the value of NextMarker from the truncated response
- // you just received.
- Marker *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s ListGrantsInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListGrantsInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ListGrantsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ListGrantsInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.Limit != nil && *s.Limit < 1 {
- invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
- }
- if s.Marker != nil && len(*s.Marker) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *ListGrantsInput) SetKeyId(v string) *ListGrantsInput {
- s.KeyId = &v
- return s
- }
- // SetLimit sets the Limit field's value.
- func (s *ListGrantsInput) SetLimit(v int64) *ListGrantsInput {
- s.Limit = &v
- return s
- }
- // SetMarker sets the Marker field's value.
- func (s *ListGrantsInput) SetMarker(v string) *ListGrantsInput {
- s.Marker = &v
- return s
- }
- type ListGrantsResponse struct {
- _ struct{} `type:"structure"`
- // A list of grants.
- Grants []*GrantListEntry `type:"list"`
- // When Truncated is true, this element is present and contains the value to
- // use for the Marker parameter in a subsequent request.
- NextMarker *string `min:"1" type:"string"`
- // A flag that indicates whether there are more items in the list. When this
- // value is true, the list in this response is truncated. To get more items,
- // pass the value of the NextMarker element in thisresponse to the Marker parameter
- // in a subsequent request.
- Truncated *bool `type:"boolean"`
- }
- // String returns the string representation
- func (s ListGrantsResponse) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListGrantsResponse) GoString() string {
- return s.String()
- }
- // SetGrants sets the Grants field's value.
- func (s *ListGrantsResponse) SetGrants(v []*GrantListEntry) *ListGrantsResponse {
- s.Grants = v
- return s
- }
- // SetNextMarker sets the NextMarker field's value.
- func (s *ListGrantsResponse) SetNextMarker(v string) *ListGrantsResponse {
- s.NextMarker = &v
- return s
- }
- // SetTruncated sets the Truncated field's value.
- func (s *ListGrantsResponse) SetTruncated(v bool) *ListGrantsResponse {
- s.Truncated = &v
- return s
- }
- type ListKeyPoliciesInput struct {
- _ struct{} `type:"structure"`
- // A unique identifier for the customer master key (CMK).
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // Use this parameter to specify the maximum number of items to return. When
- // this value is present, AWS KMS does not return more than the specified number
- // of items, but it might return fewer.
- //
- // This value is optional. If you include a value, it must be between 1 and
- // 1000, inclusive. If you do not include a value, it defaults to 100.
- //
- // Only one policy can be attached to a key.
- Limit *int64 `min:"1" type:"integer"`
- // Use this parameter in a subsequent request after you receive a response with
- // truncated results. Set it to the value of NextMarker from the truncated response
- // you just received.
- Marker *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s ListKeyPoliciesInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListKeyPoliciesInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ListKeyPoliciesInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ListKeyPoliciesInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.Limit != nil && *s.Limit < 1 {
- invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
- }
- if s.Marker != nil && len(*s.Marker) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *ListKeyPoliciesInput) SetKeyId(v string) *ListKeyPoliciesInput {
- s.KeyId = &v
- return s
- }
- // SetLimit sets the Limit field's value.
- func (s *ListKeyPoliciesInput) SetLimit(v int64) *ListKeyPoliciesInput {
- s.Limit = &v
- return s
- }
- // SetMarker sets the Marker field's value.
- func (s *ListKeyPoliciesInput) SetMarker(v string) *ListKeyPoliciesInput {
- s.Marker = &v
- return s
- }
- type ListKeyPoliciesOutput struct {
- _ struct{} `type:"structure"`
- // When Truncated is true, this element is present and contains the value to
- // use for the Marker parameter in a subsequent request.
- NextMarker *string `min:"1" type:"string"`
- // A list of key policy names. The only valid value is default.
- PolicyNames []*string `type:"list"`
- // A flag that indicates whether there are more items in the list. When this
- // value is true, the list in this response is truncated. To get more items,
- // pass the value of the NextMarker element in thisresponse to the Marker parameter
- // in a subsequent request.
- Truncated *bool `type:"boolean"`
- }
- // String returns the string representation
- func (s ListKeyPoliciesOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListKeyPoliciesOutput) GoString() string {
- return s.String()
- }
- // SetNextMarker sets the NextMarker field's value.
- func (s *ListKeyPoliciesOutput) SetNextMarker(v string) *ListKeyPoliciesOutput {
- s.NextMarker = &v
- return s
- }
- // SetPolicyNames sets the PolicyNames field's value.
- func (s *ListKeyPoliciesOutput) SetPolicyNames(v []*string) *ListKeyPoliciesOutput {
- s.PolicyNames = v
- return s
- }
- // SetTruncated sets the Truncated field's value.
- func (s *ListKeyPoliciesOutput) SetTruncated(v bool) *ListKeyPoliciesOutput {
- s.Truncated = &v
- return s
- }
- type ListKeysInput struct {
- _ struct{} `type:"structure"`
- // Use this parameter to specify the maximum number of items to return. When
- // this value is present, AWS KMS does not return more than the specified number
- // of items, but it might return fewer.
- //
- // This value is optional. If you include a value, it must be between 1 and
- // 1000, inclusive. If you do not include a value, it defaults to 100.
- Limit *int64 `min:"1" type:"integer"`
- // Use this parameter in a subsequent request after you receive a response with
- // truncated results. Set it to the value of NextMarker from the truncated response
- // you just received.
- Marker *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s ListKeysInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListKeysInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ListKeysInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ListKeysInput"}
- if s.Limit != nil && *s.Limit < 1 {
- invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
- }
- if s.Marker != nil && len(*s.Marker) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetLimit sets the Limit field's value.
- func (s *ListKeysInput) SetLimit(v int64) *ListKeysInput {
- s.Limit = &v
- return s
- }
- // SetMarker sets the Marker field's value.
- func (s *ListKeysInput) SetMarker(v string) *ListKeysInput {
- s.Marker = &v
- return s
- }
- type ListKeysOutput struct {
- _ struct{} `type:"structure"`
- // A list of customer master keys (CMKs).
- Keys []*KeyListEntry `type:"list"`
- // When Truncated is true, this element is present and contains the value to
- // use for the Marker parameter in a subsequent request.
- NextMarker *string `min:"1" type:"string"`
- // A flag that indicates whether there are more items in the list. When this
- // value is true, the list in this response is truncated. To get more items,
- // pass the value of the NextMarker element in thisresponse to the Marker parameter
- // in a subsequent request.
- Truncated *bool `type:"boolean"`
- }
- // String returns the string representation
- func (s ListKeysOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListKeysOutput) GoString() string {
- return s.String()
- }
- // SetKeys sets the Keys field's value.
- func (s *ListKeysOutput) SetKeys(v []*KeyListEntry) *ListKeysOutput {
- s.Keys = v
- return s
- }
- // SetNextMarker sets the NextMarker field's value.
- func (s *ListKeysOutput) SetNextMarker(v string) *ListKeysOutput {
- s.NextMarker = &v
- return s
- }
- // SetTruncated sets the Truncated field's value.
- func (s *ListKeysOutput) SetTruncated(v bool) *ListKeysOutput {
- s.Truncated = &v
- return s
- }
- type ListResourceTagsInput struct {
- _ struct{} `type:"structure"`
- // A unique identifier for the customer master key (CMK).
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // Use this parameter to specify the maximum number of items to return. When
- // this value is present, AWS KMS does not return more than the specified number
- // of items, but it might return fewer.
- //
- // This value is optional. If you include a value, it must be between 1 and
- // 50, inclusive. If you do not include a value, it defaults to 50.
- Limit *int64 `min:"1" type:"integer"`
- // Use this parameter in a subsequent request after you receive a response with
- // truncated results. Set it to the value of NextMarker from the truncated response
- // you just received.
- //
- // Do not attempt to construct this value. Use only the value of NextMarker
- // from the truncated response you just received.
- Marker *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s ListResourceTagsInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListResourceTagsInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ListResourceTagsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ListResourceTagsInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.Limit != nil && *s.Limit < 1 {
- invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
- }
- if s.Marker != nil && len(*s.Marker) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *ListResourceTagsInput) SetKeyId(v string) *ListResourceTagsInput {
- s.KeyId = &v
- return s
- }
- // SetLimit sets the Limit field's value.
- func (s *ListResourceTagsInput) SetLimit(v int64) *ListResourceTagsInput {
- s.Limit = &v
- return s
- }
- // SetMarker sets the Marker field's value.
- func (s *ListResourceTagsInput) SetMarker(v string) *ListResourceTagsInput {
- s.Marker = &v
- return s
- }
- type ListResourceTagsOutput struct {
- _ struct{} `type:"structure"`
- // When Truncated is true, this element is present and contains the value to
- // use for the Marker parameter in a subsequent request.
- //
- // Do not assume or infer any information from this value.
- NextMarker *string `min:"1" type:"string"`
- // A list of tags. Each tag consists of a tag key and a tag value.
- Tags []*Tag `type:"list"`
- // A flag that indicates whether there are more items in the list. When this
- // value is true, the list in this response is truncated. To get more items,
- // pass the value of the NextMarker element in thisresponse to the Marker parameter
- // in a subsequent request.
- Truncated *bool `type:"boolean"`
- }
- // String returns the string representation
- func (s ListResourceTagsOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListResourceTagsOutput) GoString() string {
- return s.String()
- }
- // SetNextMarker sets the NextMarker field's value.
- func (s *ListResourceTagsOutput) SetNextMarker(v string) *ListResourceTagsOutput {
- s.NextMarker = &v
- return s
- }
- // SetTags sets the Tags field's value.
- func (s *ListResourceTagsOutput) SetTags(v []*Tag) *ListResourceTagsOutput {
- s.Tags = v
- return s
- }
- // SetTruncated sets the Truncated field's value.
- func (s *ListResourceTagsOutput) SetTruncated(v bool) *ListResourceTagsOutput {
- s.Truncated = &v
- return s
- }
- type ListRetirableGrantsInput struct {
- _ struct{} `type:"structure"`
- // Use this parameter to specify the maximum number of items to return. When
- // this value is present, AWS KMS does not return more than the specified number
- // of items, but it might return fewer.
- //
- // This value is optional. If you include a value, it must be between 1 and
- // 100, inclusive. If you do not include a value, it defaults to 50.
- Limit *int64 `min:"1" type:"integer"`
- // Use this parameter in a subsequent request after you receive a response with
- // truncated results. Set it to the value of NextMarker from the truncated response
- // you just received.
- Marker *string `min:"1" type:"string"`
- // The retiring principal for which to list grants.
- //
- // To specify the retiring principal, use the Amazon Resource Name (ARN) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
- // of an AWS principal. Valid AWS principals include AWS accounts (root), IAM
- // users, federated users, and assumed role users. For examples of the ARN syntax
- // for specifying a principal, see AWS Identity and Access Management (IAM)
- // (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam)
- // in the Example ARNs section of the Amazon Web Services General Reference.
- //
- // RetiringPrincipal is a required field
- RetiringPrincipal *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s ListRetirableGrantsInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListRetirableGrantsInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ListRetirableGrantsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ListRetirableGrantsInput"}
- if s.Limit != nil && *s.Limit < 1 {
- invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
- }
- if s.Marker != nil && len(*s.Marker) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
- }
- if s.RetiringPrincipal == nil {
- invalidParams.Add(request.NewErrParamRequired("RetiringPrincipal"))
- }
- if s.RetiringPrincipal != nil && len(*s.RetiringPrincipal) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("RetiringPrincipal", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetLimit sets the Limit field's value.
- func (s *ListRetirableGrantsInput) SetLimit(v int64) *ListRetirableGrantsInput {
- s.Limit = &v
- return s
- }
- // SetMarker sets the Marker field's value.
- func (s *ListRetirableGrantsInput) SetMarker(v string) *ListRetirableGrantsInput {
- s.Marker = &v
- return s
- }
- // SetRetiringPrincipal sets the RetiringPrincipal field's value.
- func (s *ListRetirableGrantsInput) SetRetiringPrincipal(v string) *ListRetirableGrantsInput {
- s.RetiringPrincipal = &v
- return s
- }
- // The request was rejected because the specified policy is not syntactically
- // or semantically correct.
- type MalformedPolicyDocumentException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s MalformedPolicyDocumentException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s MalformedPolicyDocumentException) GoString() string {
- return s.String()
- }
- func newErrorMalformedPolicyDocumentException(v protocol.ResponseMetadata) error {
- return &MalformedPolicyDocumentException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s MalformedPolicyDocumentException) Code() string {
- return "MalformedPolicyDocumentException"
- }
- // Message returns the exception's message.
- func (s MalformedPolicyDocumentException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s MalformedPolicyDocumentException) OrigErr() error {
- return nil
- }
- func (s MalformedPolicyDocumentException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s MalformedPolicyDocumentException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s MalformedPolicyDocumentException) RequestID() string {
- return s.respMetadata.RequestID
- }
- // The request was rejected because the specified entity or resource could not
- // be found.
- type NotFoundException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s NotFoundException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s NotFoundException) GoString() string {
- return s.String()
- }
- func newErrorNotFoundException(v protocol.ResponseMetadata) error {
- return &NotFoundException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s NotFoundException) Code() string {
- return "NotFoundException"
- }
- // Message returns the exception's message.
- func (s NotFoundException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s NotFoundException) OrigErr() error {
- return nil
- }
- func (s NotFoundException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s NotFoundException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s NotFoundException) RequestID() string {
- return s.respMetadata.RequestID
- }
- type PutKeyPolicyInput struct {
- _ struct{} `type:"structure"`
- // A flag to indicate whether to bypass the key policy lockout safety check.
- //
- // Setting this value to true increases the risk that the CMK becomes unmanageable.
- // Do not set this value to true indiscriminately.
- //
- // For more information, refer to the scenario in the Default Key Policy (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam)
- // section in the AWS Key Management Service Developer Guide.
- //
- // Use this parameter only when you intend to prevent the principal that is
- // making the request from making a subsequent PutKeyPolicy request on the CMK.
- //
- // The default value is false.
- BypassPolicyLockoutSafetyCheck *bool `type:"boolean"`
- // A unique identifier for the customer master key (CMK).
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // The key policy to attach to the CMK.
- //
- // The key policy must meet the following criteria:
- //
- // * If you don't set BypassPolicyLockoutSafetyCheck to true, the key policy
- // must allow the principal that is making the PutKeyPolicy request to make
- // a subsequent PutKeyPolicy request on the CMK. This reduces the risk that
- // the CMK becomes unmanageable. For more information, refer to the scenario
- // in the Default Key Policy (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam)
- // section of the AWS Key Management Service Developer Guide.
- //
- // * Each statement in the key policy must contain one or more principals.
- // The principals in the key policy must exist and be visible to AWS KMS.
- // When you create a new AWS principal (for example, an IAM user or role),
- // you might need to enforce a delay before including the new principal in
- // a key policy because the new principal might not be immediately visible
- // to AWS KMS. For more information, see Changes that I make are not always
- // immediately visible (https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency)
- // in the AWS Identity and Access Management User Guide.
- //
- // The key policy size limit is 32 kilobytes (32768 bytes).
- //
- // Policy is a required field
- Policy *string `min:"1" type:"string" required:"true"`
- // The name of the key policy. The only valid value is default.
- //
- // PolicyName is a required field
- PolicyName *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s PutKeyPolicyInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutKeyPolicyInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *PutKeyPolicyInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "PutKeyPolicyInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.Policy == nil {
- invalidParams.Add(request.NewErrParamRequired("Policy"))
- }
- if s.Policy != nil && len(*s.Policy) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Policy", 1))
- }
- if s.PolicyName == nil {
- invalidParams.Add(request.NewErrParamRequired("PolicyName"))
- }
- if s.PolicyName != nil && len(*s.PolicyName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetBypassPolicyLockoutSafetyCheck sets the BypassPolicyLockoutSafetyCheck field's value.
- func (s *PutKeyPolicyInput) SetBypassPolicyLockoutSafetyCheck(v bool) *PutKeyPolicyInput {
- s.BypassPolicyLockoutSafetyCheck = &v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *PutKeyPolicyInput) SetKeyId(v string) *PutKeyPolicyInput {
- s.KeyId = &v
- return s
- }
- // SetPolicy sets the Policy field's value.
- func (s *PutKeyPolicyInput) SetPolicy(v string) *PutKeyPolicyInput {
- s.Policy = &v
- return s
- }
- // SetPolicyName sets the PolicyName field's value.
- func (s *PutKeyPolicyInput) SetPolicyName(v string) *PutKeyPolicyInput {
- s.PolicyName = &v
- return s
- }
- type PutKeyPolicyOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s PutKeyPolicyOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutKeyPolicyOutput) GoString() string {
- return s.String()
- }
- type ReEncryptInput struct {
- _ struct{} `type:"structure"`
- // Ciphertext of the data to reencrypt.
- //
- // CiphertextBlob is automatically base64 encoded/decoded by the SDK.
- //
- // CiphertextBlob is a required field
- CiphertextBlob []byte `min:"1" type:"blob" required:"true"`
- // Specifies the encryption algorithm that AWS KMS will use to reecrypt the
- // data after it has decrypted it. The default value, SYMMETRIC_DEFAULT, represents
- // the encryption algorithm used for symmetric CMKs.
- //
- // This parameter is required only when the destination CMK is an asymmetric
- // CMK.
- DestinationEncryptionAlgorithm *string `type:"string" enum:"EncryptionAlgorithmSpec"`
- // Specifies that encryption context to use when the reencrypting the data.
- //
- // A destination encryption context is valid only when the destination CMK is
- // a symmetric CMK. The standard ciphertext format for asymmetric CMKs does
- // not include fields for metadata.
- //
- // An encryption context is a collection of non-secret key-value pairs that
- // represents additional authenticated data. When you use an encryption context
- // to encrypt data, you must specify the same (an exact case-sensitive match)
- // encryption context to decrypt the data. An encryption context is optional
- // when encrypting with a symmetric CMK, but it is highly recommended.
- //
- // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide.
- DestinationEncryptionContext map[string]*string `type:"map"`
- // A unique identifier for the CMK that is used to reencrypt the data. Specify
- // a symmetric or asymmetric CMK with a KeyUsage value of ENCRYPT_DECRYPT. To
- // find the KeyUsage value of a CMK, use the DescribeKey operation.
- //
- // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name,
- // or alias ARN. When using an alias name, prefix it with "alias/". To specify
- // a CMK in a different AWS account, you must use the key ARN or alias ARN.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Alias name: alias/ExampleAlias
- //
- // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To
- // get the alias name and alias ARN, use ListAliases.
- //
- // DestinationKeyId is a required field
- DestinationKeyId *string `min:"1" type:"string" required:"true"`
- // A list of grant tokens.
- //
- // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token)
- // in the AWS Key Management Service Developer Guide.
- GrantTokens []*string `type:"list"`
- // Specifies the encryption algorithm that AWS KMS will use to decrypt the ciphertext
- // before it is reencrypted. The default value, SYMMETRIC_DEFAULT, represents
- // the algorithm used for symmetric CMKs.
- //
- // Specify the same algorithm that was used to encrypt the ciphertext. If you
- // specify a different algorithm, the decrypt attempt fails.
- //
- // This parameter is required only when the ciphertext was encrypted under an
- // asymmetric CMK.
- SourceEncryptionAlgorithm *string `type:"string" enum:"EncryptionAlgorithmSpec"`
- // Specifies the encryption context to use to decrypt the ciphertext. Enter
- // the same encryption context that was used to encrypt the ciphertext.
- //
- // An encryption context is a collection of non-secret key-value pairs that
- // represents additional authenticated data. When you use an encryption context
- // to encrypt data, you must specify the same (an exact case-sensitive match)
- // encryption context to decrypt the data. An encryption context is optional
- // when encrypting with a symmetric CMK, but it is highly recommended.
- //
- // For more information, see Encryption Context (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)
- // in the AWS Key Management Service Developer Guide.
- SourceEncryptionContext map[string]*string `type:"map"`
- // A unique identifier for the CMK that is used to decrypt the ciphertext before
- // it reencrypts it using the destination CMK.
- //
- // This parameter is required only when the ciphertext was encrypted under an
- // asymmetric CMK. Otherwise, AWS KMS uses the metadata that it adds to the
- // ciphertext blob to determine which CMK was used to encrypt the ciphertext.
- // However, you can use this parameter to ensure that a particular CMK (of any
- // kind) is used to decrypt the ciphertext before it is reencrypted.
- //
- // If you specify a KeyId value, the decrypt part of the ReEncrypt operation
- // succeeds only if the specified CMK was used to encrypt the ciphertext.
- //
- // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name,
- // or alias ARN. When using an alias name, prefix it with "alias/".
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Alias name: alias/ExampleAlias
- //
- // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To
- // get the alias name and alias ARN, use ListAliases.
- SourceKeyId *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s ReEncryptInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ReEncryptInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ReEncryptInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ReEncryptInput"}
- if s.CiphertextBlob == nil {
- invalidParams.Add(request.NewErrParamRequired("CiphertextBlob"))
- }
- if s.CiphertextBlob != nil && len(s.CiphertextBlob) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CiphertextBlob", 1))
- }
- if s.DestinationKeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("DestinationKeyId"))
- }
- if s.DestinationKeyId != nil && len(*s.DestinationKeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("DestinationKeyId", 1))
- }
- if s.SourceKeyId != nil && len(*s.SourceKeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("SourceKeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetCiphertextBlob sets the CiphertextBlob field's value.
- func (s *ReEncryptInput) SetCiphertextBlob(v []byte) *ReEncryptInput {
- s.CiphertextBlob = v
- return s
- }
- // SetDestinationEncryptionAlgorithm sets the DestinationEncryptionAlgorithm field's value.
- func (s *ReEncryptInput) SetDestinationEncryptionAlgorithm(v string) *ReEncryptInput {
- s.DestinationEncryptionAlgorithm = &v
- return s
- }
- // SetDestinationEncryptionContext sets the DestinationEncryptionContext field's value.
- func (s *ReEncryptInput) SetDestinationEncryptionContext(v map[string]*string) *ReEncryptInput {
- s.DestinationEncryptionContext = v
- return s
- }
- // SetDestinationKeyId sets the DestinationKeyId field's value.
- func (s *ReEncryptInput) SetDestinationKeyId(v string) *ReEncryptInput {
- s.DestinationKeyId = &v
- return s
- }
- // SetGrantTokens sets the GrantTokens field's value.
- func (s *ReEncryptInput) SetGrantTokens(v []*string) *ReEncryptInput {
- s.GrantTokens = v
- return s
- }
- // SetSourceEncryptionAlgorithm sets the SourceEncryptionAlgorithm field's value.
- func (s *ReEncryptInput) SetSourceEncryptionAlgorithm(v string) *ReEncryptInput {
- s.SourceEncryptionAlgorithm = &v
- return s
- }
- // SetSourceEncryptionContext sets the SourceEncryptionContext field's value.
- func (s *ReEncryptInput) SetSourceEncryptionContext(v map[string]*string) *ReEncryptInput {
- s.SourceEncryptionContext = v
- return s
- }
- // SetSourceKeyId sets the SourceKeyId field's value.
- func (s *ReEncryptInput) SetSourceKeyId(v string) *ReEncryptInput {
- s.SourceKeyId = &v
- return s
- }
- type ReEncryptOutput struct {
- _ struct{} `type:"structure"`
- // The reencrypted data. When you use the HTTP API or the AWS CLI, the value
- // is Base64-encoded. Otherwise, it is not Base64-encoded.
- //
- // CiphertextBlob is automatically base64 encoded/decoded by the SDK.
- CiphertextBlob []byte `min:"1" type:"blob"`
- // The encryption algorithm that was used to reencrypt the data.
- DestinationEncryptionAlgorithm *string `type:"string" enum:"EncryptionAlgorithmSpec"`
- // Unique identifier of the CMK used to reencrypt the data.
- KeyId *string `min:"1" type:"string"`
- // The encryption algorithm that was used to decrypt the ciphertext before it
- // was reencrypted.
- SourceEncryptionAlgorithm *string `type:"string" enum:"EncryptionAlgorithmSpec"`
- // Unique identifier of the CMK used to originally encrypt the data.
- SourceKeyId *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s ReEncryptOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ReEncryptOutput) GoString() string {
- return s.String()
- }
- // SetCiphertextBlob sets the CiphertextBlob field's value.
- func (s *ReEncryptOutput) SetCiphertextBlob(v []byte) *ReEncryptOutput {
- s.CiphertextBlob = v
- return s
- }
- // SetDestinationEncryptionAlgorithm sets the DestinationEncryptionAlgorithm field's value.
- func (s *ReEncryptOutput) SetDestinationEncryptionAlgorithm(v string) *ReEncryptOutput {
- s.DestinationEncryptionAlgorithm = &v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *ReEncryptOutput) SetKeyId(v string) *ReEncryptOutput {
- s.KeyId = &v
- return s
- }
- // SetSourceEncryptionAlgorithm sets the SourceEncryptionAlgorithm field's value.
- func (s *ReEncryptOutput) SetSourceEncryptionAlgorithm(v string) *ReEncryptOutput {
- s.SourceEncryptionAlgorithm = &v
- return s
- }
- // SetSourceKeyId sets the SourceKeyId field's value.
- func (s *ReEncryptOutput) SetSourceKeyId(v string) *ReEncryptOutput {
- s.SourceKeyId = &v
- return s
- }
- type RetireGrantInput struct {
- _ struct{} `type:"structure"`
- // Unique identifier of the grant to retire. The grant ID is returned in the
- // response to a CreateGrant operation.
- //
- // * Grant ID Example - 0123456789012345678901234567890123456789012345678901234567890123
- GrantId *string `min:"1" type:"string"`
- // Token that identifies the grant to be retired.
- GrantToken *string `min:"1" type:"string"`
- // The Amazon Resource Name (ARN) of the CMK associated with the grant.
- //
- // For example: arn:aws:kms:us-east-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab
- KeyId *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s RetireGrantInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s RetireGrantInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *RetireGrantInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "RetireGrantInput"}
- if s.GrantId != nil && len(*s.GrantId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("GrantId", 1))
- }
- if s.GrantToken != nil && len(*s.GrantToken) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("GrantToken", 1))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetGrantId sets the GrantId field's value.
- func (s *RetireGrantInput) SetGrantId(v string) *RetireGrantInput {
- s.GrantId = &v
- return s
- }
- // SetGrantToken sets the GrantToken field's value.
- func (s *RetireGrantInput) SetGrantToken(v string) *RetireGrantInput {
- s.GrantToken = &v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *RetireGrantInput) SetKeyId(v string) *RetireGrantInput {
- s.KeyId = &v
- return s
- }
- type RetireGrantOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s RetireGrantOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s RetireGrantOutput) GoString() string {
- return s.String()
- }
- type RevokeGrantInput struct {
- _ struct{} `type:"structure"`
- // Identifier of the grant to be revoked.
- //
- // GrantId is a required field
- GrantId *string `min:"1" type:"string" required:"true"`
- // A unique identifier for the customer master key associated with the grant.
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify
- // a CMK in a different AWS account, you must use the key ARN.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s RevokeGrantInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s RevokeGrantInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *RevokeGrantInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "RevokeGrantInput"}
- if s.GrantId == nil {
- invalidParams.Add(request.NewErrParamRequired("GrantId"))
- }
- if s.GrantId != nil && len(*s.GrantId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("GrantId", 1))
- }
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetGrantId sets the GrantId field's value.
- func (s *RevokeGrantInput) SetGrantId(v string) *RevokeGrantInput {
- s.GrantId = &v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *RevokeGrantInput) SetKeyId(v string) *RevokeGrantInput {
- s.KeyId = &v
- return s
- }
- type RevokeGrantOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s RevokeGrantOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s RevokeGrantOutput) GoString() string {
- return s.String()
- }
- type ScheduleKeyDeletionInput struct {
- _ struct{} `type:"structure"`
- // The unique identifier of the customer master key (CMK) to delete.
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // The waiting period, specified in number of days. After the waiting period
- // ends, AWS KMS deletes the customer master key (CMK).
- //
- // This value is optional. If you include a value, it must be between 7 and
- // 30, inclusive. If you do not include a value, it defaults to 30.
- PendingWindowInDays *int64 `min:"1" type:"integer"`
- }
- // String returns the string representation
- func (s ScheduleKeyDeletionInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ScheduleKeyDeletionInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ScheduleKeyDeletionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ScheduleKeyDeletionInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.PendingWindowInDays != nil && *s.PendingWindowInDays < 1 {
- invalidParams.Add(request.NewErrParamMinValue("PendingWindowInDays", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *ScheduleKeyDeletionInput) SetKeyId(v string) *ScheduleKeyDeletionInput {
- s.KeyId = &v
- return s
- }
- // SetPendingWindowInDays sets the PendingWindowInDays field's value.
- func (s *ScheduleKeyDeletionInput) SetPendingWindowInDays(v int64) *ScheduleKeyDeletionInput {
- s.PendingWindowInDays = &v
- return s
- }
- type ScheduleKeyDeletionOutput struct {
- _ struct{} `type:"structure"`
- // The date and time after which AWS KMS deletes the customer master key (CMK).
- DeletionDate *time.Time `type:"timestamp"`
- // The unique identifier of the customer master key (CMK) for which deletion
- // is scheduled.
- KeyId *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s ScheduleKeyDeletionOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ScheduleKeyDeletionOutput) GoString() string {
- return s.String()
- }
- // SetDeletionDate sets the DeletionDate field's value.
- func (s *ScheduleKeyDeletionOutput) SetDeletionDate(v time.Time) *ScheduleKeyDeletionOutput {
- s.DeletionDate = &v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *ScheduleKeyDeletionOutput) SetKeyId(v string) *ScheduleKeyDeletionOutput {
- s.KeyId = &v
- return s
- }
- type SignInput struct {
- _ struct{} `type:"structure"`
- // A list of grant tokens.
- //
- // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token)
- // in the AWS Key Management Service Developer Guide.
- GrantTokens []*string `type:"list"`
- // Identifies an asymmetric CMK. AWS KMS uses the private key in the asymmetric
- // CMK to sign the message. The KeyUsage type of the CMK must be SIGN_VERIFY.
- // To find the KeyUsage of a CMK, use the DescribeKey operation.
- //
- // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name,
- // or alias ARN. When using an alias name, prefix it with "alias/". To specify
- // a CMK in a different AWS account, you must use the key ARN or alias ARN.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Alias name: alias/ExampleAlias
- //
- // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To
- // get the alias name and alias ARN, use ListAliases.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // Specifies the message or message digest to sign. Messages can be 0-4096 bytes.
- // To sign a larger message, provide the message digest.
- //
- // If you provide a message, AWS KMS generates a hash digest of the message
- // and then signs it.
- //
- // Message is automatically base64 encoded/decoded by the SDK.
- //
- // Message is a required field
- Message []byte `min:"1" type:"blob" required:"true" sensitive:"true"`
- // Tells AWS KMS whether the value of the Message parameter is a message or
- // message digest. To indicate a message, enter RAW. To indicate a message digest,
- // enter DIGEST.
- MessageType *string `type:"string" enum:"MessageType"`
- // Specifies the signing algorithm to use when signing the message.
- //
- // Choose an algorithm that is compatible with the type and size of the specified
- // asymmetric CMK.
- //
- // SigningAlgorithm is a required field
- SigningAlgorithm *string `type:"string" required:"true" enum:"SigningAlgorithmSpec"`
- }
- // String returns the string representation
- func (s SignInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s SignInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *SignInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "SignInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.Message == nil {
- invalidParams.Add(request.NewErrParamRequired("Message"))
- }
- if s.Message != nil && len(s.Message) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Message", 1))
- }
- if s.SigningAlgorithm == nil {
- invalidParams.Add(request.NewErrParamRequired("SigningAlgorithm"))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetGrantTokens sets the GrantTokens field's value.
- func (s *SignInput) SetGrantTokens(v []*string) *SignInput {
- s.GrantTokens = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *SignInput) SetKeyId(v string) *SignInput {
- s.KeyId = &v
- return s
- }
- // SetMessage sets the Message field's value.
- func (s *SignInput) SetMessage(v []byte) *SignInput {
- s.Message = v
- return s
- }
- // SetMessageType sets the MessageType field's value.
- func (s *SignInput) SetMessageType(v string) *SignInput {
- s.MessageType = &v
- return s
- }
- // SetSigningAlgorithm sets the SigningAlgorithm field's value.
- func (s *SignInput) SetSigningAlgorithm(v string) *SignInput {
- s.SigningAlgorithm = &v
- return s
- }
- type SignOutput struct {
- _ struct{} `type:"structure"`
- // The Amazon Resource Name (ARN) of the asymmetric CMK that was used to sign
- // the message.
- KeyId *string `min:"1" type:"string"`
- // The cryptographic signature that was generated for the message.
- //
- // Signature is automatically base64 encoded/decoded by the SDK.
- Signature []byte `min:"1" type:"blob"`
- // The signing algorithm that was used to sign the message.
- SigningAlgorithm *string `type:"string" enum:"SigningAlgorithmSpec"`
- }
- // String returns the string representation
- func (s SignOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s SignOutput) GoString() string {
- return s.String()
- }
- // SetKeyId sets the KeyId field's value.
- func (s *SignOutput) SetKeyId(v string) *SignOutput {
- s.KeyId = &v
- return s
- }
- // SetSignature sets the Signature field's value.
- func (s *SignOutput) SetSignature(v []byte) *SignOutput {
- s.Signature = v
- return s
- }
- // SetSigningAlgorithm sets the SigningAlgorithm field's value.
- func (s *SignOutput) SetSigningAlgorithm(v string) *SignOutput {
- s.SigningAlgorithm = &v
- return s
- }
- // A key-value pair. A tag consists of a tag key and a tag value. Tag keys and
- // tag values are both required, but tag values can be empty (null) strings.
- //
- // For information about the rules that apply to tag keys and tag values, see
- // User-Defined Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html)
- // in the AWS Billing and Cost Management User Guide.
- type Tag struct {
- _ struct{} `type:"structure"`
- // The key of the tag.
- //
- // TagKey is a required field
- TagKey *string `min:"1" type:"string" required:"true"`
- // The value of the tag.
- //
- // TagValue is a required field
- TagValue *string `type:"string" required:"true"`
- }
- // 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.TagKey == nil {
- invalidParams.Add(request.NewErrParamRequired("TagKey"))
- }
- if s.TagKey != nil && len(*s.TagKey) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("TagKey", 1))
- }
- if s.TagValue == nil {
- invalidParams.Add(request.NewErrParamRequired("TagValue"))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetTagKey sets the TagKey field's value.
- func (s *Tag) SetTagKey(v string) *Tag {
- s.TagKey = &v
- return s
- }
- // SetTagValue sets the TagValue field's value.
- func (s *Tag) SetTagValue(v string) *Tag {
- s.TagValue = &v
- return s
- }
- // The request was rejected because one or more tags are not valid.
- type TagException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s TagException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s TagException) GoString() string {
- return s.String()
- }
- func newErrorTagException(v protocol.ResponseMetadata) error {
- return &TagException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s TagException) Code() string {
- return "TagException"
- }
- // Message returns the exception's message.
- func (s TagException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s TagException) OrigErr() error {
- return nil
- }
- func (s TagException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s TagException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s TagException) RequestID() string {
- return s.respMetadata.RequestID
- }
- type TagResourceInput struct {
- _ struct{} `type:"structure"`
- // A unique identifier for the CMK you are tagging.
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // One or more tags. Each tag consists of a tag key and a tag value.
- //
- // 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.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 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
- }
- // SetKeyId sets the KeyId field's value.
- func (s *TagResourceInput) SetKeyId(v string) *TagResourceInput {
- s.KeyId = &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()
- }
- // The request was rejected because a specified parameter is not supported or
- // a specified resource is not valid for this operation.
- type UnsupportedOperationException struct {
- _ struct{} `type:"structure"`
- respMetadata protocol.ResponseMetadata
- Message_ *string `locationName:"message" type:"string"`
- }
- // String returns the string representation
- func (s UnsupportedOperationException) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UnsupportedOperationException) GoString() string {
- return s.String()
- }
- func newErrorUnsupportedOperationException(v protocol.ResponseMetadata) error {
- return &UnsupportedOperationException{
- respMetadata: v,
- }
- }
- // Code returns the exception type name.
- func (s UnsupportedOperationException) Code() string {
- return "UnsupportedOperationException"
- }
- // Message returns the exception's message.
- func (s UnsupportedOperationException) Message() string {
- if s.Message_ != nil {
- return *s.Message_
- }
- return ""
- }
- // OrigErr always returns nil, satisfies awserr.Error interface.
- func (s UnsupportedOperationException) OrigErr() error {
- return nil
- }
- func (s UnsupportedOperationException) Error() string {
- return fmt.Sprintf("%s: %s", s.Code(), s.Message())
- }
- // Status code returns the HTTP status code for the request's response error.
- func (s UnsupportedOperationException) StatusCode() int {
- return s.respMetadata.StatusCode
- }
- // RequestID returns the service's response RequestID for request.
- func (s UnsupportedOperationException) RequestID() string {
- return s.respMetadata.RequestID
- }
- type UntagResourceInput struct {
- _ struct{} `type:"structure"`
- // A unique identifier for the CMK from which you are removing tags.
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // One or more tag keys. Specify only the tag keys, not the tag values.
- //
- // 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.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.TagKeys == nil {
- invalidParams.Add(request.NewErrParamRequired("TagKeys"))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetKeyId sets the KeyId field's value.
- func (s *UntagResourceInput) SetKeyId(v string) *UntagResourceInput {
- s.KeyId = &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 UpdateAliasInput struct {
- _ struct{} `type:"structure"`
- // Identifies the alias that is changing its CMK. This value must begin with
- // alias/ followed by the alias name, such as alias/ExampleAlias. You cannot
- // use UpdateAlias to change the alias name.
- //
- // AliasName is a required field
- AliasName *string `min:"1" type:"string" required:"true"`
- // Identifies the CMK to associate with the alias. When the update operation
- // completes, the alias will point to this CMK.
- //
- // The CMK must be in the same AWS account and Region as the alias. Also, the
- // new target CMK must be the same type as the current target CMK (both symmetric
- // or both asymmetric) and they must have the same key usage.
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // To verify that the alias is mapped to the correct CMK, use ListAliases.
- //
- // TargetKeyId is a required field
- TargetKeyId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s UpdateAliasInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateAliasInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *UpdateAliasInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "UpdateAliasInput"}
- if s.AliasName == nil {
- invalidParams.Add(request.NewErrParamRequired("AliasName"))
- }
- if s.AliasName != nil && len(*s.AliasName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("AliasName", 1))
- }
- if s.TargetKeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("TargetKeyId"))
- }
- if s.TargetKeyId != nil && len(*s.TargetKeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("TargetKeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetAliasName sets the AliasName field's value.
- func (s *UpdateAliasInput) SetAliasName(v string) *UpdateAliasInput {
- s.AliasName = &v
- return s
- }
- // SetTargetKeyId sets the TargetKeyId field's value.
- func (s *UpdateAliasInput) SetTargetKeyId(v string) *UpdateAliasInput {
- s.TargetKeyId = &v
- return s
- }
- type UpdateAliasOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s UpdateAliasOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateAliasOutput) GoString() string {
- return s.String()
- }
- type UpdateCustomKeyStoreInput struct {
- _ struct{} `type:"structure"`
- // Associates the custom key store with a related AWS CloudHSM cluster.
- //
- // Enter the cluster ID of the cluster that you used to create the custom key
- // store or a cluster that shares a backup history and has the same cluster
- // certificate as the original cluster. You cannot use this parameter to associate
- // a custom key store with an unrelated cluster. In addition, the replacement
- // cluster must fulfill the requirements (https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore)
- // for a cluster associated with a custom key store. To view the cluster certificate
- // of a cluster, use the DescribeClusters (https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html)
- // operation.
- CloudHsmClusterId *string `min:"19" type:"string"`
- // Identifies the custom key store that you want to update. Enter the ID of
- // the custom key store. To find the ID of a custom key store, use the DescribeCustomKeyStores
- // operation.
- //
- // CustomKeyStoreId is a required field
- CustomKeyStoreId *string `min:"1" type:"string" required:"true"`
- // Enter the current password of the kmsuser crypto user (CU) in the AWS CloudHSM
- // cluster that is associated with the custom key store.
- //
- // This parameter tells AWS KMS the current password of the kmsuser crypto user
- // (CU). It does not set or change the password of any users in the AWS CloudHSM
- // cluster.
- KeyStorePassword *string `min:"1" type:"string" sensitive:"true"`
- // Changes the friendly name of the custom key store to the value that you specify.
- // The custom key store name must be unique in the AWS account.
- NewCustomKeyStoreName *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s UpdateCustomKeyStoreInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateCustomKeyStoreInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *UpdateCustomKeyStoreInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "UpdateCustomKeyStoreInput"}
- if s.CloudHsmClusterId != nil && len(*s.CloudHsmClusterId) < 19 {
- invalidParams.Add(request.NewErrParamMinLen("CloudHsmClusterId", 19))
- }
- if s.CustomKeyStoreId == nil {
- invalidParams.Add(request.NewErrParamRequired("CustomKeyStoreId"))
- }
- if s.CustomKeyStoreId != nil && len(*s.CustomKeyStoreId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CustomKeyStoreId", 1))
- }
- if s.KeyStorePassword != nil && len(*s.KeyStorePassword) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyStorePassword", 1))
- }
- if s.NewCustomKeyStoreName != nil && len(*s.NewCustomKeyStoreName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("NewCustomKeyStoreName", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetCloudHsmClusterId sets the CloudHsmClusterId field's value.
- func (s *UpdateCustomKeyStoreInput) SetCloudHsmClusterId(v string) *UpdateCustomKeyStoreInput {
- s.CloudHsmClusterId = &v
- return s
- }
- // SetCustomKeyStoreId sets the CustomKeyStoreId field's value.
- func (s *UpdateCustomKeyStoreInput) SetCustomKeyStoreId(v string) *UpdateCustomKeyStoreInput {
- s.CustomKeyStoreId = &v
- return s
- }
- // SetKeyStorePassword sets the KeyStorePassword field's value.
- func (s *UpdateCustomKeyStoreInput) SetKeyStorePassword(v string) *UpdateCustomKeyStoreInput {
- s.KeyStorePassword = &v
- return s
- }
- // SetNewCustomKeyStoreName sets the NewCustomKeyStoreName field's value.
- func (s *UpdateCustomKeyStoreInput) SetNewCustomKeyStoreName(v string) *UpdateCustomKeyStoreInput {
- s.NewCustomKeyStoreName = &v
- return s
- }
- type UpdateCustomKeyStoreOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s UpdateCustomKeyStoreOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateCustomKeyStoreOutput) GoString() string {
- return s.String()
- }
- type UpdateKeyDescriptionInput struct {
- _ struct{} `type:"structure"`
- // New description for the CMK.
- //
- // Description is a required field
- Description *string `type:"string" required:"true"`
- // A unique identifier for the customer master key (CMK).
- //
- // Specify the key ID or the Amazon Resource Name (ARN) of the CMK.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s UpdateKeyDescriptionInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateKeyDescriptionInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *UpdateKeyDescriptionInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "UpdateKeyDescriptionInput"}
- if s.Description == nil {
- invalidParams.Add(request.NewErrParamRequired("Description"))
- }
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetDescription sets the Description field's value.
- func (s *UpdateKeyDescriptionInput) SetDescription(v string) *UpdateKeyDescriptionInput {
- s.Description = &v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *UpdateKeyDescriptionInput) SetKeyId(v string) *UpdateKeyDescriptionInput {
- s.KeyId = &v
- return s
- }
- type UpdateKeyDescriptionOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s UpdateKeyDescriptionOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateKeyDescriptionOutput) GoString() string {
- return s.String()
- }
- type VerifyInput struct {
- _ struct{} `type:"structure"`
- // A list of grant tokens.
- //
- // For more information, see Grant Tokens (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#grant_token)
- // in the AWS Key Management Service Developer Guide.
- GrantTokens []*string `type:"list"`
- // Identifies the asymmetric CMK that will be used to verify the signature.
- // This must be the same CMK that was used to generate the signature. If you
- // specify a different CMK, the signature verification fails.
- //
- // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name,
- // or alias ARN. When using an alias name, prefix it with "alias/". To specify
- // a CMK in a different AWS account, you must use the key ARN or alias ARN.
- //
- // For example:
- //
- // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
- //
- // * Alias name: alias/ExampleAlias
- //
- // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
- //
- // To get the key ID and key ARN for a CMK, use ListKeys or DescribeKey. To
- // get the alias name and alias ARN, use ListAliases.
- //
- // KeyId is a required field
- KeyId *string `min:"1" type:"string" required:"true"`
- // Specifies the message that was signed, or a hash digest of that message.
- // Messages can be 0-4096 bytes. To verify a larger message, provide a hash
- // digest of the message.
- //
- // If the digest of the message specified here is different from the message
- // digest that was signed, the signature verification fails.
- //
- // Message is automatically base64 encoded/decoded by the SDK.
- //
- // Message is a required field
- Message []byte `min:"1" type:"blob" required:"true" sensitive:"true"`
- // Tells AWS KMS whether the value of the Message parameter is a message or
- // message digest. To indicate a message, enter RAW. To indicate a message digest,
- // enter DIGEST.
- MessageType *string `type:"string" enum:"MessageType"`
- // The signature that the Sign operation generated.
- //
- // Signature is automatically base64 encoded/decoded by the SDK.
- //
- // Signature is a required field
- Signature []byte `min:"1" type:"blob" required:"true"`
- // The signing algorithm that was used to sign the message. If you submit a
- // different algorithm, the signature verification fails.
- //
- // SigningAlgorithm is a required field
- SigningAlgorithm *string `type:"string" required:"true" enum:"SigningAlgorithmSpec"`
- }
- // String returns the string representation
- func (s VerifyInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s VerifyInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *VerifyInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "VerifyInput"}
- if s.KeyId == nil {
- invalidParams.Add(request.NewErrParamRequired("KeyId"))
- }
- if s.KeyId != nil && len(*s.KeyId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
- }
- if s.Message == nil {
- invalidParams.Add(request.NewErrParamRequired("Message"))
- }
- if s.Message != nil && len(s.Message) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Message", 1))
- }
- if s.Signature == nil {
- invalidParams.Add(request.NewErrParamRequired("Signature"))
- }
- if s.Signature != nil && len(s.Signature) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Signature", 1))
- }
- if s.SigningAlgorithm == nil {
- invalidParams.Add(request.NewErrParamRequired("SigningAlgorithm"))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // SetGrantTokens sets the GrantTokens field's value.
- func (s *VerifyInput) SetGrantTokens(v []*string) *VerifyInput {
- s.GrantTokens = v
- return s
- }
- // SetKeyId sets the KeyId field's value.
- func (s *VerifyInput) SetKeyId(v string) *VerifyInput {
- s.KeyId = &v
- return s
- }
- // SetMessage sets the Message field's value.
- func (s *VerifyInput) SetMessage(v []byte) *VerifyInput {
- s.Message = v
- return s
- }
- // SetMessageType sets the MessageType field's value.
- func (s *VerifyInput) SetMessageType(v string) *VerifyInput {
- s.MessageType = &v
- return s
- }
- // SetSignature sets the Signature field's value.
- func (s *VerifyInput) SetSignature(v []byte) *VerifyInput {
- s.Signature = v
- return s
- }
- // SetSigningAlgorithm sets the SigningAlgorithm field's value.
- func (s *VerifyInput) SetSigningAlgorithm(v string) *VerifyInput {
- s.SigningAlgorithm = &v
- return s
- }
- type VerifyOutput struct {
- _ struct{} `type:"structure"`
- // The unique identifier for the asymmetric CMK that was used to verify the
- // signature.
- KeyId *string `min:"1" type:"string"`
- // A Boolean value that indicates whether the signature was verified. A value
- // of True indicates that the Signature was produced by signing the Message
- // with the specified KeyID and SigningAlgorithm. If the signature is not verified,
- // the Verify operation fails with a KMSInvalidSignatureException exception.
- SignatureValid *bool `type:"boolean"`
- // The signing algorithm that was used to verify the signature.
- SigningAlgorithm *string `type:"string" enum:"SigningAlgorithmSpec"`
- }
- // String returns the string representation
- func (s VerifyOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s VerifyOutput) GoString() string {
- return s.String()
- }
- // SetKeyId sets the KeyId field's value.
- func (s *VerifyOutput) SetKeyId(v string) *VerifyOutput {
- s.KeyId = &v
- return s
- }
- // SetSignatureValid sets the SignatureValid field's value.
- func (s *VerifyOutput) SetSignatureValid(v bool) *VerifyOutput {
- s.SignatureValid = &v
- return s
- }
- // SetSigningAlgorithm sets the SigningAlgorithm field's value.
- func (s *VerifyOutput) SetSigningAlgorithm(v string) *VerifyOutput {
- s.SigningAlgorithm = &v
- return s
- }
- const (
- // AlgorithmSpecRsaesPkcs1V15 is a AlgorithmSpec enum value
- AlgorithmSpecRsaesPkcs1V15 = "RSAES_PKCS1_V1_5"
- // AlgorithmSpecRsaesOaepSha1 is a AlgorithmSpec enum value
- AlgorithmSpecRsaesOaepSha1 = "RSAES_OAEP_SHA_1"
- // AlgorithmSpecRsaesOaepSha256 is a AlgorithmSpec enum value
- AlgorithmSpecRsaesOaepSha256 = "RSAES_OAEP_SHA_256"
- )
- const (
- // ConnectionErrorCodeTypeInvalidCredentials is a ConnectionErrorCodeType enum value
- ConnectionErrorCodeTypeInvalidCredentials = "INVALID_CREDENTIALS"
- // ConnectionErrorCodeTypeClusterNotFound is a ConnectionErrorCodeType enum value
- ConnectionErrorCodeTypeClusterNotFound = "CLUSTER_NOT_FOUND"
- // ConnectionErrorCodeTypeNetworkErrors is a ConnectionErrorCodeType enum value
- ConnectionErrorCodeTypeNetworkErrors = "NETWORK_ERRORS"
- // ConnectionErrorCodeTypeInternalError is a ConnectionErrorCodeType enum value
- ConnectionErrorCodeTypeInternalError = "INTERNAL_ERROR"
- // ConnectionErrorCodeTypeInsufficientCloudhsmHsms is a ConnectionErrorCodeType enum value
- ConnectionErrorCodeTypeInsufficientCloudhsmHsms = "INSUFFICIENT_CLOUDHSM_HSMS"
- // ConnectionErrorCodeTypeUserLockedOut is a ConnectionErrorCodeType enum value
- ConnectionErrorCodeTypeUserLockedOut = "USER_LOCKED_OUT"
- )
- const (
- // ConnectionStateTypeConnected is a ConnectionStateType enum value
- ConnectionStateTypeConnected = "CONNECTED"
- // ConnectionStateTypeConnecting is a ConnectionStateType enum value
- ConnectionStateTypeConnecting = "CONNECTING"
- // ConnectionStateTypeFailed is a ConnectionStateType enum value
- ConnectionStateTypeFailed = "FAILED"
- // ConnectionStateTypeDisconnected is a ConnectionStateType enum value
- ConnectionStateTypeDisconnected = "DISCONNECTED"
- // ConnectionStateTypeDisconnecting is a ConnectionStateType enum value
- ConnectionStateTypeDisconnecting = "DISCONNECTING"
- )
- const (
- // CustomerMasterKeySpecRsa2048 is a CustomerMasterKeySpec enum value
- CustomerMasterKeySpecRsa2048 = "RSA_2048"
- // CustomerMasterKeySpecRsa3072 is a CustomerMasterKeySpec enum value
- CustomerMasterKeySpecRsa3072 = "RSA_3072"
- // CustomerMasterKeySpecRsa4096 is a CustomerMasterKeySpec enum value
- CustomerMasterKeySpecRsa4096 = "RSA_4096"
- // CustomerMasterKeySpecEccNistP256 is a CustomerMasterKeySpec enum value
- CustomerMasterKeySpecEccNistP256 = "ECC_NIST_P256"
- // CustomerMasterKeySpecEccNistP384 is a CustomerMasterKeySpec enum value
- CustomerMasterKeySpecEccNistP384 = "ECC_NIST_P384"
- // CustomerMasterKeySpecEccNistP521 is a CustomerMasterKeySpec enum value
- CustomerMasterKeySpecEccNistP521 = "ECC_NIST_P521"
- // CustomerMasterKeySpecEccSecgP256k1 is a CustomerMasterKeySpec enum value
- CustomerMasterKeySpecEccSecgP256k1 = "ECC_SECG_P256K1"
- // CustomerMasterKeySpecSymmetricDefault is a CustomerMasterKeySpec enum value
- CustomerMasterKeySpecSymmetricDefault = "SYMMETRIC_DEFAULT"
- )
- const (
- // DataKeyPairSpecRsa2048 is a DataKeyPairSpec enum value
- DataKeyPairSpecRsa2048 = "RSA_2048"
- // DataKeyPairSpecRsa3072 is a DataKeyPairSpec enum value
- DataKeyPairSpecRsa3072 = "RSA_3072"
- // DataKeyPairSpecRsa4096 is a DataKeyPairSpec enum value
- DataKeyPairSpecRsa4096 = "RSA_4096"
- // DataKeyPairSpecEccNistP256 is a DataKeyPairSpec enum value
- DataKeyPairSpecEccNistP256 = "ECC_NIST_P256"
- // DataKeyPairSpecEccNistP384 is a DataKeyPairSpec enum value
- DataKeyPairSpecEccNistP384 = "ECC_NIST_P384"
- // DataKeyPairSpecEccNistP521 is a DataKeyPairSpec enum value
- DataKeyPairSpecEccNistP521 = "ECC_NIST_P521"
- // DataKeyPairSpecEccSecgP256k1 is a DataKeyPairSpec enum value
- DataKeyPairSpecEccSecgP256k1 = "ECC_SECG_P256K1"
- )
- const (
- // DataKeySpecAes256 is a DataKeySpec enum value
- DataKeySpecAes256 = "AES_256"
- // DataKeySpecAes128 is a DataKeySpec enum value
- DataKeySpecAes128 = "AES_128"
- )
- const (
- // EncryptionAlgorithmSpecSymmetricDefault is a EncryptionAlgorithmSpec enum value
- EncryptionAlgorithmSpecSymmetricDefault = "SYMMETRIC_DEFAULT"
- // EncryptionAlgorithmSpecRsaesOaepSha1 is a EncryptionAlgorithmSpec enum value
- EncryptionAlgorithmSpecRsaesOaepSha1 = "RSAES_OAEP_SHA_1"
- // EncryptionAlgorithmSpecRsaesOaepSha256 is a EncryptionAlgorithmSpec enum value
- EncryptionAlgorithmSpecRsaesOaepSha256 = "RSAES_OAEP_SHA_256"
- )
- const (
- // ExpirationModelTypeKeyMaterialExpires is a ExpirationModelType enum value
- ExpirationModelTypeKeyMaterialExpires = "KEY_MATERIAL_EXPIRES"
- // ExpirationModelTypeKeyMaterialDoesNotExpire is a ExpirationModelType enum value
- ExpirationModelTypeKeyMaterialDoesNotExpire = "KEY_MATERIAL_DOES_NOT_EXPIRE"
- )
- const (
- // GrantOperationDecrypt is a GrantOperation enum value
- GrantOperationDecrypt = "Decrypt"
- // GrantOperationEncrypt is a GrantOperation enum value
- GrantOperationEncrypt = "Encrypt"
- // GrantOperationGenerateDataKey is a GrantOperation enum value
- GrantOperationGenerateDataKey = "GenerateDataKey"
- // GrantOperationGenerateDataKeyWithoutPlaintext is a GrantOperation enum value
- GrantOperationGenerateDataKeyWithoutPlaintext = "GenerateDataKeyWithoutPlaintext"
- // GrantOperationReEncryptFrom is a GrantOperation enum value
- GrantOperationReEncryptFrom = "ReEncryptFrom"
- // GrantOperationReEncryptTo is a GrantOperation enum value
- GrantOperationReEncryptTo = "ReEncryptTo"
- // GrantOperationSign is a GrantOperation enum value
- GrantOperationSign = "Sign"
- // GrantOperationVerify is a GrantOperation enum value
- GrantOperationVerify = "Verify"
- // GrantOperationGetPublicKey is a GrantOperation enum value
- GrantOperationGetPublicKey = "GetPublicKey"
- // GrantOperationCreateGrant is a GrantOperation enum value
- GrantOperationCreateGrant = "CreateGrant"
- // GrantOperationRetireGrant is a GrantOperation enum value
- GrantOperationRetireGrant = "RetireGrant"
- // GrantOperationDescribeKey is a GrantOperation enum value
- GrantOperationDescribeKey = "DescribeKey"
- // GrantOperationGenerateDataKeyPair is a GrantOperation enum value
- GrantOperationGenerateDataKeyPair = "GenerateDataKeyPair"
- // GrantOperationGenerateDataKeyPairWithoutPlaintext is a GrantOperation enum value
- GrantOperationGenerateDataKeyPairWithoutPlaintext = "GenerateDataKeyPairWithoutPlaintext"
- )
- const (
- // KeyManagerTypeAws is a KeyManagerType enum value
- KeyManagerTypeAws = "AWS"
- // KeyManagerTypeCustomer is a KeyManagerType enum value
- KeyManagerTypeCustomer = "CUSTOMER"
- )
- const (
- // KeyStateEnabled is a KeyState enum value
- KeyStateEnabled = "Enabled"
- // KeyStateDisabled is a KeyState enum value
- KeyStateDisabled = "Disabled"
- // KeyStatePendingDeletion is a KeyState enum value
- KeyStatePendingDeletion = "PendingDeletion"
- // KeyStatePendingImport is a KeyState enum value
- KeyStatePendingImport = "PendingImport"
- // KeyStateUnavailable is a KeyState enum value
- KeyStateUnavailable = "Unavailable"
- )
- const (
- // KeyUsageTypeSignVerify is a KeyUsageType enum value
- KeyUsageTypeSignVerify = "SIGN_VERIFY"
- // KeyUsageTypeEncryptDecrypt is a KeyUsageType enum value
- KeyUsageTypeEncryptDecrypt = "ENCRYPT_DECRYPT"
- )
- const (
- // MessageTypeRaw is a MessageType enum value
- MessageTypeRaw = "RAW"
- // MessageTypeDigest is a MessageType enum value
- MessageTypeDigest = "DIGEST"
- )
- const (
- // OriginTypeAwsKms is a OriginType enum value
- OriginTypeAwsKms = "AWS_KMS"
- // OriginTypeExternal is a OriginType enum value
- OriginTypeExternal = "EXTERNAL"
- // OriginTypeAwsCloudhsm is a OriginType enum value
- OriginTypeAwsCloudhsm = "AWS_CLOUDHSM"
- )
- const (
- // SigningAlgorithmSpecRsassaPssSha256 is a SigningAlgorithmSpec enum value
- SigningAlgorithmSpecRsassaPssSha256 = "RSASSA_PSS_SHA_256"
- // SigningAlgorithmSpecRsassaPssSha384 is a SigningAlgorithmSpec enum value
- SigningAlgorithmSpecRsassaPssSha384 = "RSASSA_PSS_SHA_384"
- // SigningAlgorithmSpecRsassaPssSha512 is a SigningAlgorithmSpec enum value
- SigningAlgorithmSpecRsassaPssSha512 = "RSASSA_PSS_SHA_512"
- // SigningAlgorithmSpecRsassaPkcs1V15Sha256 is a SigningAlgorithmSpec enum value
- SigningAlgorithmSpecRsassaPkcs1V15Sha256 = "RSASSA_PKCS1_V1_5_SHA_256"
- // SigningAlgorithmSpecRsassaPkcs1V15Sha384 is a SigningAlgorithmSpec enum value
- SigningAlgorithmSpecRsassaPkcs1V15Sha384 = "RSASSA_PKCS1_V1_5_SHA_384"
- // SigningAlgorithmSpecRsassaPkcs1V15Sha512 is a SigningAlgorithmSpec enum value
- SigningAlgorithmSpecRsassaPkcs1V15Sha512 = "RSASSA_PKCS1_V1_5_SHA_512"
- // SigningAlgorithmSpecEcdsaSha256 is a SigningAlgorithmSpec enum value
- SigningAlgorithmSpecEcdsaSha256 = "ECDSA_SHA_256"
- // SigningAlgorithmSpecEcdsaSha384 is a SigningAlgorithmSpec enum value
- SigningAlgorithmSpecEcdsaSha384 = "ECDSA_SHA_384"
- // SigningAlgorithmSpecEcdsaSha512 is a SigningAlgorithmSpec enum value
- SigningAlgorithmSpecEcdsaSha512 = "ECDSA_SHA_512"
- )
- const (
- // WrappingKeySpecRsa2048 is a WrappingKeySpec enum value
- WrappingKeySpecRsa2048 = "RSA_2048"
- )
|