api.go 616 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020
  1. // THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
  2. // Package iam provides a client for AWS Identity and Access Management.
  3. package iam
  4. import (
  5. "fmt"
  6. "time"
  7. "github.com/aws/aws-sdk-go/aws/awsutil"
  8. "github.com/aws/aws-sdk-go/aws/request"
  9. "github.com/aws/aws-sdk-go/private/protocol"
  10. "github.com/aws/aws-sdk-go/private/protocol/query"
  11. )
  12. const opAddClientIDToOpenIDConnectProvider = "AddClientIDToOpenIDConnectProvider"
  13. // AddClientIDToOpenIDConnectProviderRequest generates a "aws/request.Request" representing the
  14. // client's request for the AddClientIDToOpenIDConnectProvider operation. The "output" return
  15. // value can be used to capture response data after the request's "Send" method
  16. // is called.
  17. //
  18. // Creating a request object using this method should be used when you want to inject
  19. // custom logic into the request's lifecycle using a custom handler, or if you want to
  20. // access properties on the request object before or after sending the request. If
  21. // you just want the service response, call the AddClientIDToOpenIDConnectProvider method directly
  22. // instead.
  23. //
  24. // Note: You must call the "Send" method on the returned request object in order
  25. // to execute the request.
  26. //
  27. // // Example sending a request using the AddClientIDToOpenIDConnectProviderRequest method.
  28. // req, resp := client.AddClientIDToOpenIDConnectProviderRequest(params)
  29. //
  30. // err := req.Send()
  31. // if err == nil { // resp is now filled
  32. // fmt.Println(resp)
  33. // }
  34. //
  35. func (c *IAM) AddClientIDToOpenIDConnectProviderRequest(input *AddClientIDToOpenIDConnectProviderInput) (req *request.Request, output *AddClientIDToOpenIDConnectProviderOutput) {
  36. op := &request.Operation{
  37. Name: opAddClientIDToOpenIDConnectProvider,
  38. HTTPMethod: "POST",
  39. HTTPPath: "/",
  40. }
  41. if input == nil {
  42. input = &AddClientIDToOpenIDConnectProviderInput{}
  43. }
  44. req = c.newRequest(op, input, output)
  45. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  46. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  47. output = &AddClientIDToOpenIDConnectProviderOutput{}
  48. req.Data = output
  49. return
  50. }
  51. // Adds a new client ID (also known as audience) to the list of client IDs already
  52. // registered for the specified IAM OpenID Connect (OIDC) provider resource.
  53. //
  54. // This action is idempotent; it does not fail or return an error if you add
  55. // an existing client ID to the provider.
  56. func (c *IAM) AddClientIDToOpenIDConnectProvider(input *AddClientIDToOpenIDConnectProviderInput) (*AddClientIDToOpenIDConnectProviderOutput, error) {
  57. req, out := c.AddClientIDToOpenIDConnectProviderRequest(input)
  58. err := req.Send()
  59. return out, err
  60. }
  61. const opAddRoleToInstanceProfile = "AddRoleToInstanceProfile"
  62. // AddRoleToInstanceProfileRequest generates a "aws/request.Request" representing the
  63. // client's request for the AddRoleToInstanceProfile operation. The "output" return
  64. // value can be used to capture response data after the request's "Send" method
  65. // is called.
  66. //
  67. // Creating a request object using this method should be used when you want to inject
  68. // custom logic into the request's lifecycle using a custom handler, or if you want to
  69. // access properties on the request object before or after sending the request. If
  70. // you just want the service response, call the AddRoleToInstanceProfile method directly
  71. // instead.
  72. //
  73. // Note: You must call the "Send" method on the returned request object in order
  74. // to execute the request.
  75. //
  76. // // Example sending a request using the AddRoleToInstanceProfileRequest method.
  77. // req, resp := client.AddRoleToInstanceProfileRequest(params)
  78. //
  79. // err := req.Send()
  80. // if err == nil { // resp is now filled
  81. // fmt.Println(resp)
  82. // }
  83. //
  84. func (c *IAM) AddRoleToInstanceProfileRequest(input *AddRoleToInstanceProfileInput) (req *request.Request, output *AddRoleToInstanceProfileOutput) {
  85. op := &request.Operation{
  86. Name: opAddRoleToInstanceProfile,
  87. HTTPMethod: "POST",
  88. HTTPPath: "/",
  89. }
  90. if input == nil {
  91. input = &AddRoleToInstanceProfileInput{}
  92. }
  93. req = c.newRequest(op, input, output)
  94. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  95. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  96. output = &AddRoleToInstanceProfileOutput{}
  97. req.Data = output
  98. return
  99. }
  100. // Adds the specified IAM role to the specified instance profile.
  101. //
  102. // The caller of this API must be granted the PassRole permission on the IAM
  103. // role by a permission policy.
  104. //
  105. // For more information about roles, go to Working with Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html).
  106. // For more information about instance profiles, go to About Instance Profiles
  107. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html).
  108. func (c *IAM) AddRoleToInstanceProfile(input *AddRoleToInstanceProfileInput) (*AddRoleToInstanceProfileOutput, error) {
  109. req, out := c.AddRoleToInstanceProfileRequest(input)
  110. err := req.Send()
  111. return out, err
  112. }
  113. const opAddUserToGroup = "AddUserToGroup"
  114. // AddUserToGroupRequest generates a "aws/request.Request" representing the
  115. // client's request for the AddUserToGroup operation. The "output" return
  116. // value can be used to capture response data after the request's "Send" method
  117. // is called.
  118. //
  119. // Creating a request object using this method should be used when you want to inject
  120. // custom logic into the request's lifecycle using a custom handler, or if you want to
  121. // access properties on the request object before or after sending the request. If
  122. // you just want the service response, call the AddUserToGroup method directly
  123. // instead.
  124. //
  125. // Note: You must call the "Send" method on the returned request object in order
  126. // to execute the request.
  127. //
  128. // // Example sending a request using the AddUserToGroupRequest method.
  129. // req, resp := client.AddUserToGroupRequest(params)
  130. //
  131. // err := req.Send()
  132. // if err == nil { // resp is now filled
  133. // fmt.Println(resp)
  134. // }
  135. //
  136. func (c *IAM) AddUserToGroupRequest(input *AddUserToGroupInput) (req *request.Request, output *AddUserToGroupOutput) {
  137. op := &request.Operation{
  138. Name: opAddUserToGroup,
  139. HTTPMethod: "POST",
  140. HTTPPath: "/",
  141. }
  142. if input == nil {
  143. input = &AddUserToGroupInput{}
  144. }
  145. req = c.newRequest(op, input, output)
  146. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  147. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  148. output = &AddUserToGroupOutput{}
  149. req.Data = output
  150. return
  151. }
  152. // Adds the specified user to the specified group.
  153. func (c *IAM) AddUserToGroup(input *AddUserToGroupInput) (*AddUserToGroupOutput, error) {
  154. req, out := c.AddUserToGroupRequest(input)
  155. err := req.Send()
  156. return out, err
  157. }
  158. const opAttachGroupPolicy = "AttachGroupPolicy"
  159. // AttachGroupPolicyRequest generates a "aws/request.Request" representing the
  160. // client's request for the AttachGroupPolicy operation. The "output" return
  161. // value can be used to capture response data after the request's "Send" method
  162. // is called.
  163. //
  164. // Creating a request object using this method should be used when you want to inject
  165. // custom logic into the request's lifecycle using a custom handler, or if you want to
  166. // access properties on the request object before or after sending the request. If
  167. // you just want the service response, call the AttachGroupPolicy method directly
  168. // instead.
  169. //
  170. // Note: You must call the "Send" method on the returned request object in order
  171. // to execute the request.
  172. //
  173. // // Example sending a request using the AttachGroupPolicyRequest method.
  174. // req, resp := client.AttachGroupPolicyRequest(params)
  175. //
  176. // err := req.Send()
  177. // if err == nil { // resp is now filled
  178. // fmt.Println(resp)
  179. // }
  180. //
  181. func (c *IAM) AttachGroupPolicyRequest(input *AttachGroupPolicyInput) (req *request.Request, output *AttachGroupPolicyOutput) {
  182. op := &request.Operation{
  183. Name: opAttachGroupPolicy,
  184. HTTPMethod: "POST",
  185. HTTPPath: "/",
  186. }
  187. if input == nil {
  188. input = &AttachGroupPolicyInput{}
  189. }
  190. req = c.newRequest(op, input, output)
  191. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  192. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  193. output = &AttachGroupPolicyOutput{}
  194. req.Data = output
  195. return
  196. }
  197. // Attaches the specified managed policy to the specified IAM group.
  198. //
  199. // You use this API to attach a managed policy to a group. To embed an inline
  200. // policy in a group, use PutGroupPolicy.
  201. //
  202. // For more information about policies, see Managed Policies and Inline Policies
  203. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  204. // in the IAM User Guide.
  205. func (c *IAM) AttachGroupPolicy(input *AttachGroupPolicyInput) (*AttachGroupPolicyOutput, error) {
  206. req, out := c.AttachGroupPolicyRequest(input)
  207. err := req.Send()
  208. return out, err
  209. }
  210. const opAttachRolePolicy = "AttachRolePolicy"
  211. // AttachRolePolicyRequest generates a "aws/request.Request" representing the
  212. // client's request for the AttachRolePolicy operation. The "output" return
  213. // value can be used to capture response data after the request's "Send" method
  214. // is called.
  215. //
  216. // Creating a request object using this method should be used when you want to inject
  217. // custom logic into the request's lifecycle using a custom handler, or if you want to
  218. // access properties on the request object before or after sending the request. If
  219. // you just want the service response, call the AttachRolePolicy method directly
  220. // instead.
  221. //
  222. // Note: You must call the "Send" method on the returned request object in order
  223. // to execute the request.
  224. //
  225. // // Example sending a request using the AttachRolePolicyRequest method.
  226. // req, resp := client.AttachRolePolicyRequest(params)
  227. //
  228. // err := req.Send()
  229. // if err == nil { // resp is now filled
  230. // fmt.Println(resp)
  231. // }
  232. //
  233. func (c *IAM) AttachRolePolicyRequest(input *AttachRolePolicyInput) (req *request.Request, output *AttachRolePolicyOutput) {
  234. op := &request.Operation{
  235. Name: opAttachRolePolicy,
  236. HTTPMethod: "POST",
  237. HTTPPath: "/",
  238. }
  239. if input == nil {
  240. input = &AttachRolePolicyInput{}
  241. }
  242. req = c.newRequest(op, input, output)
  243. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  244. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  245. output = &AttachRolePolicyOutput{}
  246. req.Data = output
  247. return
  248. }
  249. // Attaches the specified managed policy to the specified IAM role.
  250. //
  251. // When you attach a managed policy to a role, the managed policy becomes part
  252. // of the role's permission (access) policy. You cannot use a managed policy
  253. // as the role's trust policy. The role's trust policy is created at the same
  254. // time as the role, using CreateRole. You can update a role's trust policy
  255. // using UpdateAssumeRolePolicy.
  256. //
  257. // Use this API to attach a managed policy to a role. To embed an inline policy
  258. // in a role, use PutRolePolicy. For more information about policies, see Managed
  259. // Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  260. // in the IAM User Guide.
  261. func (c *IAM) AttachRolePolicy(input *AttachRolePolicyInput) (*AttachRolePolicyOutput, error) {
  262. req, out := c.AttachRolePolicyRequest(input)
  263. err := req.Send()
  264. return out, err
  265. }
  266. const opAttachUserPolicy = "AttachUserPolicy"
  267. // AttachUserPolicyRequest generates a "aws/request.Request" representing the
  268. // client's request for the AttachUserPolicy operation. The "output" return
  269. // value can be used to capture response data after the request's "Send" method
  270. // is called.
  271. //
  272. // Creating a request object using this method should be used when you want to inject
  273. // custom logic into the request's lifecycle using a custom handler, or if you want to
  274. // access properties on the request object before or after sending the request. If
  275. // you just want the service response, call the AttachUserPolicy method directly
  276. // instead.
  277. //
  278. // Note: You must call the "Send" method on the returned request object in order
  279. // to execute the request.
  280. //
  281. // // Example sending a request using the AttachUserPolicyRequest method.
  282. // req, resp := client.AttachUserPolicyRequest(params)
  283. //
  284. // err := req.Send()
  285. // if err == nil { // resp is now filled
  286. // fmt.Println(resp)
  287. // }
  288. //
  289. func (c *IAM) AttachUserPolicyRequest(input *AttachUserPolicyInput) (req *request.Request, output *AttachUserPolicyOutput) {
  290. op := &request.Operation{
  291. Name: opAttachUserPolicy,
  292. HTTPMethod: "POST",
  293. HTTPPath: "/",
  294. }
  295. if input == nil {
  296. input = &AttachUserPolicyInput{}
  297. }
  298. req = c.newRequest(op, input, output)
  299. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  300. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  301. output = &AttachUserPolicyOutput{}
  302. req.Data = output
  303. return
  304. }
  305. // Attaches the specified managed policy to the specified user.
  306. //
  307. // You use this API to attach a managed policy to a user. To embed an inline
  308. // policy in a user, use PutUserPolicy.
  309. //
  310. // For more information about policies, see Managed Policies and Inline Policies
  311. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  312. // in the IAM User Guide.
  313. func (c *IAM) AttachUserPolicy(input *AttachUserPolicyInput) (*AttachUserPolicyOutput, error) {
  314. req, out := c.AttachUserPolicyRequest(input)
  315. err := req.Send()
  316. return out, err
  317. }
  318. const opChangePassword = "ChangePassword"
  319. // ChangePasswordRequest generates a "aws/request.Request" representing the
  320. // client's request for the ChangePassword operation. The "output" return
  321. // value can be used to capture response data after the request's "Send" method
  322. // is called.
  323. //
  324. // Creating a request object using this method should be used when you want to inject
  325. // custom logic into the request's lifecycle using a custom handler, or if you want to
  326. // access properties on the request object before or after sending the request. If
  327. // you just want the service response, call the ChangePassword method directly
  328. // instead.
  329. //
  330. // Note: You must call the "Send" method on the returned request object in order
  331. // to execute the request.
  332. //
  333. // // Example sending a request using the ChangePasswordRequest method.
  334. // req, resp := client.ChangePasswordRequest(params)
  335. //
  336. // err := req.Send()
  337. // if err == nil { // resp is now filled
  338. // fmt.Println(resp)
  339. // }
  340. //
  341. func (c *IAM) ChangePasswordRequest(input *ChangePasswordInput) (req *request.Request, output *ChangePasswordOutput) {
  342. op := &request.Operation{
  343. Name: opChangePassword,
  344. HTTPMethod: "POST",
  345. HTTPPath: "/",
  346. }
  347. if input == nil {
  348. input = &ChangePasswordInput{}
  349. }
  350. req = c.newRequest(op, input, output)
  351. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  352. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  353. output = &ChangePasswordOutput{}
  354. req.Data = output
  355. return
  356. }
  357. // Changes the password of the IAM user who is calling this action. The root
  358. // account password is not affected by this action.
  359. //
  360. // To change the password for a different user, see UpdateLoginProfile. For
  361. // more information about modifying passwords, see Managing Passwords (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html)
  362. // in the IAM User Guide.
  363. func (c *IAM) ChangePassword(input *ChangePasswordInput) (*ChangePasswordOutput, error) {
  364. req, out := c.ChangePasswordRequest(input)
  365. err := req.Send()
  366. return out, err
  367. }
  368. const opCreateAccessKey = "CreateAccessKey"
  369. // CreateAccessKeyRequest generates a "aws/request.Request" representing the
  370. // client's request for the CreateAccessKey operation. The "output" return
  371. // value can be used to capture response data after the request's "Send" method
  372. // is called.
  373. //
  374. // Creating a request object using this method should be used when you want to inject
  375. // custom logic into the request's lifecycle using a custom handler, or if you want to
  376. // access properties on the request object before or after sending the request. If
  377. // you just want the service response, call the CreateAccessKey method directly
  378. // instead.
  379. //
  380. // Note: You must call the "Send" method on the returned request object in order
  381. // to execute the request.
  382. //
  383. // // Example sending a request using the CreateAccessKeyRequest method.
  384. // req, resp := client.CreateAccessKeyRequest(params)
  385. //
  386. // err := req.Send()
  387. // if err == nil { // resp is now filled
  388. // fmt.Println(resp)
  389. // }
  390. //
  391. func (c *IAM) CreateAccessKeyRequest(input *CreateAccessKeyInput) (req *request.Request, output *CreateAccessKeyOutput) {
  392. op := &request.Operation{
  393. Name: opCreateAccessKey,
  394. HTTPMethod: "POST",
  395. HTTPPath: "/",
  396. }
  397. if input == nil {
  398. input = &CreateAccessKeyInput{}
  399. }
  400. req = c.newRequest(op, input, output)
  401. output = &CreateAccessKeyOutput{}
  402. req.Data = output
  403. return
  404. }
  405. // Creates a new AWS secret access key and corresponding AWS access key ID for
  406. // the specified user. The default status for new keys is Active.
  407. //
  408. // If you do not specify a user name, IAM determines the user name implicitly
  409. // based on the AWS access key ID signing the request. Because this action works
  410. // for access keys under the AWS account, you can use this action to manage
  411. // root credentials even if the AWS account has no associated users.
  412. //
  413. // For information about limits on the number of keys you can create, see
  414. // Limitations on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
  415. // in the IAM User Guide.
  416. //
  417. // To ensure the security of your AWS account, the secret access key is accessible
  418. // only during key and user creation. You must save the key (for example, in
  419. // a text file) if you want to be able to access it again. If a secret key is
  420. // lost, you can delete the access keys for the associated user and then create
  421. // new keys.
  422. func (c *IAM) CreateAccessKey(input *CreateAccessKeyInput) (*CreateAccessKeyOutput, error) {
  423. req, out := c.CreateAccessKeyRequest(input)
  424. err := req.Send()
  425. return out, err
  426. }
  427. const opCreateAccountAlias = "CreateAccountAlias"
  428. // CreateAccountAliasRequest generates a "aws/request.Request" representing the
  429. // client's request for the CreateAccountAlias operation. The "output" return
  430. // value can be used to capture response data after the request's "Send" method
  431. // is called.
  432. //
  433. // Creating a request object using this method should be used when you want to inject
  434. // custom logic into the request's lifecycle using a custom handler, or if you want to
  435. // access properties on the request object before or after sending the request. If
  436. // you just want the service response, call the CreateAccountAlias method directly
  437. // instead.
  438. //
  439. // Note: You must call the "Send" method on the returned request object in order
  440. // to execute the request.
  441. //
  442. // // Example sending a request using the CreateAccountAliasRequest method.
  443. // req, resp := client.CreateAccountAliasRequest(params)
  444. //
  445. // err := req.Send()
  446. // if err == nil { // resp is now filled
  447. // fmt.Println(resp)
  448. // }
  449. //
  450. func (c *IAM) CreateAccountAliasRequest(input *CreateAccountAliasInput) (req *request.Request, output *CreateAccountAliasOutput) {
  451. op := &request.Operation{
  452. Name: opCreateAccountAlias,
  453. HTTPMethod: "POST",
  454. HTTPPath: "/",
  455. }
  456. if input == nil {
  457. input = &CreateAccountAliasInput{}
  458. }
  459. req = c.newRequest(op, input, output)
  460. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  461. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  462. output = &CreateAccountAliasOutput{}
  463. req.Data = output
  464. return
  465. }
  466. // Creates an alias for your AWS account. For information about using an AWS
  467. // account alias, see Using an Alias for Your AWS Account ID (http://docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html)
  468. // in the IAM User Guide.
  469. func (c *IAM) CreateAccountAlias(input *CreateAccountAliasInput) (*CreateAccountAliasOutput, error) {
  470. req, out := c.CreateAccountAliasRequest(input)
  471. err := req.Send()
  472. return out, err
  473. }
  474. const opCreateGroup = "CreateGroup"
  475. // CreateGroupRequest generates a "aws/request.Request" representing the
  476. // client's request for the CreateGroup operation. The "output" return
  477. // value can be used to capture response data after the request's "Send" method
  478. // is called.
  479. //
  480. // Creating a request object using this method should be used when you want to inject
  481. // custom logic into the request's lifecycle using a custom handler, or if you want to
  482. // access properties on the request object before or after sending the request. If
  483. // you just want the service response, call the CreateGroup method directly
  484. // instead.
  485. //
  486. // Note: You must call the "Send" method on the returned request object in order
  487. // to execute the request.
  488. //
  489. // // Example sending a request using the CreateGroupRequest method.
  490. // req, resp := client.CreateGroupRequest(params)
  491. //
  492. // err := req.Send()
  493. // if err == nil { // resp is now filled
  494. // fmt.Println(resp)
  495. // }
  496. //
  497. func (c *IAM) CreateGroupRequest(input *CreateGroupInput) (req *request.Request, output *CreateGroupOutput) {
  498. op := &request.Operation{
  499. Name: opCreateGroup,
  500. HTTPMethod: "POST",
  501. HTTPPath: "/",
  502. }
  503. if input == nil {
  504. input = &CreateGroupInput{}
  505. }
  506. req = c.newRequest(op, input, output)
  507. output = &CreateGroupOutput{}
  508. req.Data = output
  509. return
  510. }
  511. // Creates a new group.
  512. //
  513. // For information about the number of groups you can create, see Limitations
  514. // on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
  515. // in the IAM User Guide.
  516. func (c *IAM) CreateGroup(input *CreateGroupInput) (*CreateGroupOutput, error) {
  517. req, out := c.CreateGroupRequest(input)
  518. err := req.Send()
  519. return out, err
  520. }
  521. const opCreateInstanceProfile = "CreateInstanceProfile"
  522. // CreateInstanceProfileRequest generates a "aws/request.Request" representing the
  523. // client's request for the CreateInstanceProfile operation. The "output" return
  524. // value can be used to capture response data after the request's "Send" method
  525. // is called.
  526. //
  527. // Creating a request object using this method should be used when you want to inject
  528. // custom logic into the request's lifecycle using a custom handler, or if you want to
  529. // access properties on the request object before or after sending the request. If
  530. // you just want the service response, call the CreateInstanceProfile method directly
  531. // instead.
  532. //
  533. // Note: You must call the "Send" method on the returned request object in order
  534. // to execute the request.
  535. //
  536. // // Example sending a request using the CreateInstanceProfileRequest method.
  537. // req, resp := client.CreateInstanceProfileRequest(params)
  538. //
  539. // err := req.Send()
  540. // if err == nil { // resp is now filled
  541. // fmt.Println(resp)
  542. // }
  543. //
  544. func (c *IAM) CreateInstanceProfileRequest(input *CreateInstanceProfileInput) (req *request.Request, output *CreateInstanceProfileOutput) {
  545. op := &request.Operation{
  546. Name: opCreateInstanceProfile,
  547. HTTPMethod: "POST",
  548. HTTPPath: "/",
  549. }
  550. if input == nil {
  551. input = &CreateInstanceProfileInput{}
  552. }
  553. req = c.newRequest(op, input, output)
  554. output = &CreateInstanceProfileOutput{}
  555. req.Data = output
  556. return
  557. }
  558. // Creates a new instance profile. For information about instance profiles,
  559. // go to About Instance Profiles (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html).
  560. //
  561. // For information about the number of instance profiles you can create, see
  562. // Limitations on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
  563. // in the IAM User Guide.
  564. func (c *IAM) CreateInstanceProfile(input *CreateInstanceProfileInput) (*CreateInstanceProfileOutput, error) {
  565. req, out := c.CreateInstanceProfileRequest(input)
  566. err := req.Send()
  567. return out, err
  568. }
  569. const opCreateLoginProfile = "CreateLoginProfile"
  570. // CreateLoginProfileRequest generates a "aws/request.Request" representing the
  571. // client's request for the CreateLoginProfile operation. The "output" return
  572. // value can be used to capture response data after the request's "Send" method
  573. // is called.
  574. //
  575. // Creating a request object using this method should be used when you want to inject
  576. // custom logic into the request's lifecycle using a custom handler, or if you want to
  577. // access properties on the request object before or after sending the request. If
  578. // you just want the service response, call the CreateLoginProfile method directly
  579. // instead.
  580. //
  581. // Note: You must call the "Send" method on the returned request object in order
  582. // to execute the request.
  583. //
  584. // // Example sending a request using the CreateLoginProfileRequest method.
  585. // req, resp := client.CreateLoginProfileRequest(params)
  586. //
  587. // err := req.Send()
  588. // if err == nil { // resp is now filled
  589. // fmt.Println(resp)
  590. // }
  591. //
  592. func (c *IAM) CreateLoginProfileRequest(input *CreateLoginProfileInput) (req *request.Request, output *CreateLoginProfileOutput) {
  593. op := &request.Operation{
  594. Name: opCreateLoginProfile,
  595. HTTPMethod: "POST",
  596. HTTPPath: "/",
  597. }
  598. if input == nil {
  599. input = &CreateLoginProfileInput{}
  600. }
  601. req = c.newRequest(op, input, output)
  602. output = &CreateLoginProfileOutput{}
  603. req.Data = output
  604. return
  605. }
  606. // Creates a password for the specified user, giving the user the ability to
  607. // access AWS services through the AWS Management Console. For more information
  608. // about managing passwords, see Managing Passwords (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html)
  609. // in the IAM User Guide.
  610. func (c *IAM) CreateLoginProfile(input *CreateLoginProfileInput) (*CreateLoginProfileOutput, error) {
  611. req, out := c.CreateLoginProfileRequest(input)
  612. err := req.Send()
  613. return out, err
  614. }
  615. const opCreateOpenIDConnectProvider = "CreateOpenIDConnectProvider"
  616. // CreateOpenIDConnectProviderRequest generates a "aws/request.Request" representing the
  617. // client's request for the CreateOpenIDConnectProvider operation. The "output" return
  618. // value can be used to capture response data after the request's "Send" method
  619. // is called.
  620. //
  621. // Creating a request object using this method should be used when you want to inject
  622. // custom logic into the request's lifecycle using a custom handler, or if you want to
  623. // access properties on the request object before or after sending the request. If
  624. // you just want the service response, call the CreateOpenIDConnectProvider method directly
  625. // instead.
  626. //
  627. // Note: You must call the "Send" method on the returned request object in order
  628. // to execute the request.
  629. //
  630. // // Example sending a request using the CreateOpenIDConnectProviderRequest method.
  631. // req, resp := client.CreateOpenIDConnectProviderRequest(params)
  632. //
  633. // err := req.Send()
  634. // if err == nil { // resp is now filled
  635. // fmt.Println(resp)
  636. // }
  637. //
  638. func (c *IAM) CreateOpenIDConnectProviderRequest(input *CreateOpenIDConnectProviderInput) (req *request.Request, output *CreateOpenIDConnectProviderOutput) {
  639. op := &request.Operation{
  640. Name: opCreateOpenIDConnectProvider,
  641. HTTPMethod: "POST",
  642. HTTPPath: "/",
  643. }
  644. if input == nil {
  645. input = &CreateOpenIDConnectProviderInput{}
  646. }
  647. req = c.newRequest(op, input, output)
  648. output = &CreateOpenIDConnectProviderOutput{}
  649. req.Data = output
  650. return
  651. }
  652. // Creates an IAM entity to describe an identity provider (IdP) that supports
  653. // OpenID Connect (OIDC) (http://openid.net/connect/).
  654. //
  655. // The OIDC provider that you create with this operation can be used as a principal
  656. // in a role's trust policy to establish a trust relationship between AWS and
  657. // the OIDC provider.
  658. //
  659. // When you create the IAM OIDC provider, you specify the URL of the OIDC identity
  660. // provider (IdP) to trust, a list of client IDs (also known as audiences) that
  661. // identify the application or applications that are allowed to authenticate
  662. // using the OIDC provider, and a list of thumbprints of the server certificate(s)
  663. // that the IdP uses. You get all of this information from the OIDC IdP that
  664. // you want to use for access to AWS.
  665. //
  666. // Because trust for the OIDC provider is ultimately derived from the IAM
  667. // provider that this action creates, it is a best practice to limit access
  668. // to the CreateOpenIDConnectProvider action to highly-privileged users.
  669. func (c *IAM) CreateOpenIDConnectProvider(input *CreateOpenIDConnectProviderInput) (*CreateOpenIDConnectProviderOutput, error) {
  670. req, out := c.CreateOpenIDConnectProviderRequest(input)
  671. err := req.Send()
  672. return out, err
  673. }
  674. const opCreatePolicy = "CreatePolicy"
  675. // CreatePolicyRequest generates a "aws/request.Request" representing the
  676. // client's request for the CreatePolicy operation. The "output" return
  677. // value can be used to capture response data after the request's "Send" method
  678. // is called.
  679. //
  680. // Creating a request object using this method should be used when you want to inject
  681. // custom logic into the request's lifecycle using a custom handler, or if you want to
  682. // access properties on the request object before or after sending the request. If
  683. // you just want the service response, call the CreatePolicy method directly
  684. // instead.
  685. //
  686. // Note: You must call the "Send" method on the returned request object in order
  687. // to execute the request.
  688. //
  689. // // Example sending a request using the CreatePolicyRequest method.
  690. // req, resp := client.CreatePolicyRequest(params)
  691. //
  692. // err := req.Send()
  693. // if err == nil { // resp is now filled
  694. // fmt.Println(resp)
  695. // }
  696. //
  697. func (c *IAM) CreatePolicyRequest(input *CreatePolicyInput) (req *request.Request, output *CreatePolicyOutput) {
  698. op := &request.Operation{
  699. Name: opCreatePolicy,
  700. HTTPMethod: "POST",
  701. HTTPPath: "/",
  702. }
  703. if input == nil {
  704. input = &CreatePolicyInput{}
  705. }
  706. req = c.newRequest(op, input, output)
  707. output = &CreatePolicyOutput{}
  708. req.Data = output
  709. return
  710. }
  711. // Creates a new managed policy for your AWS account.
  712. //
  713. // This operation creates a policy version with a version identifier of v1
  714. // and sets v1 as the policy's default version. For more information about policy
  715. // versions, see Versioning for Managed Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
  716. // in the IAM User Guide.
  717. //
  718. // For more information about managed policies in general, see Managed Policies
  719. // and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  720. // in the IAM User Guide.
  721. func (c *IAM) CreatePolicy(input *CreatePolicyInput) (*CreatePolicyOutput, error) {
  722. req, out := c.CreatePolicyRequest(input)
  723. err := req.Send()
  724. return out, err
  725. }
  726. const opCreatePolicyVersion = "CreatePolicyVersion"
  727. // CreatePolicyVersionRequest generates a "aws/request.Request" representing the
  728. // client's request for the CreatePolicyVersion operation. The "output" return
  729. // value can be used to capture response data after the request's "Send" method
  730. // is called.
  731. //
  732. // Creating a request object using this method should be used when you want to inject
  733. // custom logic into the request's lifecycle using a custom handler, or if you want to
  734. // access properties on the request object before or after sending the request. If
  735. // you just want the service response, call the CreatePolicyVersion method directly
  736. // instead.
  737. //
  738. // Note: You must call the "Send" method on the returned request object in order
  739. // to execute the request.
  740. //
  741. // // Example sending a request using the CreatePolicyVersionRequest method.
  742. // req, resp := client.CreatePolicyVersionRequest(params)
  743. //
  744. // err := req.Send()
  745. // if err == nil { // resp is now filled
  746. // fmt.Println(resp)
  747. // }
  748. //
  749. func (c *IAM) CreatePolicyVersionRequest(input *CreatePolicyVersionInput) (req *request.Request, output *CreatePolicyVersionOutput) {
  750. op := &request.Operation{
  751. Name: opCreatePolicyVersion,
  752. HTTPMethod: "POST",
  753. HTTPPath: "/",
  754. }
  755. if input == nil {
  756. input = &CreatePolicyVersionInput{}
  757. }
  758. req = c.newRequest(op, input, output)
  759. output = &CreatePolicyVersionOutput{}
  760. req.Data = output
  761. return
  762. }
  763. // Creates a new version of the specified managed policy. To update a managed
  764. // policy, you create a new policy version. A managed policy can have up to
  765. // five versions. If the policy has five versions, you must delete an existing
  766. // version using DeletePolicyVersion before you create a new version.
  767. //
  768. // Optionally, you can set the new version as the policy's default version.
  769. // The default version is the version that is in effect for the IAM users, groups,
  770. // and roles to which the policy is attached.
  771. //
  772. // For more information about managed policy versions, see Versioning for Managed
  773. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
  774. // in the IAM User Guide.
  775. func (c *IAM) CreatePolicyVersion(input *CreatePolicyVersionInput) (*CreatePolicyVersionOutput, error) {
  776. req, out := c.CreatePolicyVersionRequest(input)
  777. err := req.Send()
  778. return out, err
  779. }
  780. const opCreateRole = "CreateRole"
  781. // CreateRoleRequest generates a "aws/request.Request" representing the
  782. // client's request for the CreateRole operation. The "output" return
  783. // value can be used to capture response data after the request's "Send" method
  784. // is called.
  785. //
  786. // Creating a request object using this method should be used when you want to inject
  787. // custom logic into the request's lifecycle using a custom handler, or if you want to
  788. // access properties on the request object before or after sending the request. If
  789. // you just want the service response, call the CreateRole method directly
  790. // instead.
  791. //
  792. // Note: You must call the "Send" method on the returned request object in order
  793. // to execute the request.
  794. //
  795. // // Example sending a request using the CreateRoleRequest method.
  796. // req, resp := client.CreateRoleRequest(params)
  797. //
  798. // err := req.Send()
  799. // if err == nil { // resp is now filled
  800. // fmt.Println(resp)
  801. // }
  802. //
  803. func (c *IAM) CreateRoleRequest(input *CreateRoleInput) (req *request.Request, output *CreateRoleOutput) {
  804. op := &request.Operation{
  805. Name: opCreateRole,
  806. HTTPMethod: "POST",
  807. HTTPPath: "/",
  808. }
  809. if input == nil {
  810. input = &CreateRoleInput{}
  811. }
  812. req = c.newRequest(op, input, output)
  813. output = &CreateRoleOutput{}
  814. req.Data = output
  815. return
  816. }
  817. // Creates a new role for your AWS account. For more information about roles,
  818. // go to Working with Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html).
  819. // For information about limitations on role names and the number of roles you
  820. // can create, go to Limitations on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
  821. // in the IAM User Guide.
  822. func (c *IAM) CreateRole(input *CreateRoleInput) (*CreateRoleOutput, error) {
  823. req, out := c.CreateRoleRequest(input)
  824. err := req.Send()
  825. return out, err
  826. }
  827. const opCreateSAMLProvider = "CreateSAMLProvider"
  828. // CreateSAMLProviderRequest generates a "aws/request.Request" representing the
  829. // client's request for the CreateSAMLProvider operation. The "output" return
  830. // value can be used to capture response data after the request's "Send" method
  831. // is called.
  832. //
  833. // Creating a request object using this method should be used when you want to inject
  834. // custom logic into the request's lifecycle using a custom handler, or if you want to
  835. // access properties on the request object before or after sending the request. If
  836. // you just want the service response, call the CreateSAMLProvider method directly
  837. // instead.
  838. //
  839. // Note: You must call the "Send" method on the returned request object in order
  840. // to execute the request.
  841. //
  842. // // Example sending a request using the CreateSAMLProviderRequest method.
  843. // req, resp := client.CreateSAMLProviderRequest(params)
  844. //
  845. // err := req.Send()
  846. // if err == nil { // resp is now filled
  847. // fmt.Println(resp)
  848. // }
  849. //
  850. func (c *IAM) CreateSAMLProviderRequest(input *CreateSAMLProviderInput) (req *request.Request, output *CreateSAMLProviderOutput) {
  851. op := &request.Operation{
  852. Name: opCreateSAMLProvider,
  853. HTTPMethod: "POST",
  854. HTTPPath: "/",
  855. }
  856. if input == nil {
  857. input = &CreateSAMLProviderInput{}
  858. }
  859. req = c.newRequest(op, input, output)
  860. output = &CreateSAMLProviderOutput{}
  861. req.Data = output
  862. return
  863. }
  864. // Creates an IAM resource that describes an identity provider (IdP) that supports
  865. // SAML 2.0.
  866. //
  867. // The SAML provider resource that you create with this operation can be used
  868. // as a principal in an IAM role's trust policy to enable federated users who
  869. // sign-in using the SAML IdP to assume the role. You can create an IAM role
  870. // that supports Web-based single sign-on (SSO) to the AWS Management Console
  871. // or one that supports API access to AWS.
  872. //
  873. // When you create the SAML provider resource, you upload an a SAML metadata
  874. // document that you get from your IdP and that includes the issuer's name,
  875. // expiration information, and keys that can be used to validate the SAML authentication
  876. // response (assertions) that the IdP sends. You must generate the metadata
  877. // document using the identity management software that is used as your organization's
  878. // IdP.
  879. //
  880. // This operation requires Signature Version 4 (http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
  881. //
  882. // For more information, see Enabling SAML 2.0 Federated Users to Access
  883. // the AWS Management Console (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-saml.html)
  884. // and About SAML 2.0-based Federation (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html)
  885. // in the IAM User Guide.
  886. func (c *IAM) CreateSAMLProvider(input *CreateSAMLProviderInput) (*CreateSAMLProviderOutput, error) {
  887. req, out := c.CreateSAMLProviderRequest(input)
  888. err := req.Send()
  889. return out, err
  890. }
  891. const opCreateUser = "CreateUser"
  892. // CreateUserRequest generates a "aws/request.Request" representing the
  893. // client's request for the CreateUser operation. The "output" return
  894. // value can be used to capture response data after the request's "Send" method
  895. // is called.
  896. //
  897. // Creating a request object using this method should be used when you want to inject
  898. // custom logic into the request's lifecycle using a custom handler, or if you want to
  899. // access properties on the request object before or after sending the request. If
  900. // you just want the service response, call the CreateUser method directly
  901. // instead.
  902. //
  903. // Note: You must call the "Send" method on the returned request object in order
  904. // to execute the request.
  905. //
  906. // // Example sending a request using the CreateUserRequest method.
  907. // req, resp := client.CreateUserRequest(params)
  908. //
  909. // err := req.Send()
  910. // if err == nil { // resp is now filled
  911. // fmt.Println(resp)
  912. // }
  913. //
  914. func (c *IAM) CreateUserRequest(input *CreateUserInput) (req *request.Request, output *CreateUserOutput) {
  915. op := &request.Operation{
  916. Name: opCreateUser,
  917. HTTPMethod: "POST",
  918. HTTPPath: "/",
  919. }
  920. if input == nil {
  921. input = &CreateUserInput{}
  922. }
  923. req = c.newRequest(op, input, output)
  924. output = &CreateUserOutput{}
  925. req.Data = output
  926. return
  927. }
  928. // Creates a new IAM user for your AWS account.
  929. //
  930. // For information about limitations on the number of IAM users you can create,
  931. // see Limitations on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
  932. // in the IAM User Guide.
  933. func (c *IAM) CreateUser(input *CreateUserInput) (*CreateUserOutput, error) {
  934. req, out := c.CreateUserRequest(input)
  935. err := req.Send()
  936. return out, err
  937. }
  938. const opCreateVirtualMFADevice = "CreateVirtualMFADevice"
  939. // CreateVirtualMFADeviceRequest generates a "aws/request.Request" representing the
  940. // client's request for the CreateVirtualMFADevice operation. The "output" return
  941. // value can be used to capture response data after the request's "Send" method
  942. // is called.
  943. //
  944. // Creating a request object using this method should be used when you want to inject
  945. // custom logic into the request's lifecycle using a custom handler, or if you want to
  946. // access properties on the request object before or after sending the request. If
  947. // you just want the service response, call the CreateVirtualMFADevice method directly
  948. // instead.
  949. //
  950. // Note: You must call the "Send" method on the returned request object in order
  951. // to execute the request.
  952. //
  953. // // Example sending a request using the CreateVirtualMFADeviceRequest method.
  954. // req, resp := client.CreateVirtualMFADeviceRequest(params)
  955. //
  956. // err := req.Send()
  957. // if err == nil { // resp is now filled
  958. // fmt.Println(resp)
  959. // }
  960. //
  961. func (c *IAM) CreateVirtualMFADeviceRequest(input *CreateVirtualMFADeviceInput) (req *request.Request, output *CreateVirtualMFADeviceOutput) {
  962. op := &request.Operation{
  963. Name: opCreateVirtualMFADevice,
  964. HTTPMethod: "POST",
  965. HTTPPath: "/",
  966. }
  967. if input == nil {
  968. input = &CreateVirtualMFADeviceInput{}
  969. }
  970. req = c.newRequest(op, input, output)
  971. output = &CreateVirtualMFADeviceOutput{}
  972. req.Data = output
  973. return
  974. }
  975. // Creates a new virtual MFA device for the AWS account. After creating the
  976. // virtual MFA, use EnableMFADevice to attach the MFA device to an IAM user.
  977. // For more information about creating and working with virtual MFA devices,
  978. // go to Using a Virtual MFA Device (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html)
  979. // in the IAM User Guide.
  980. //
  981. // For information about limits on the number of MFA devices you can create,
  982. // see Limitations on Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
  983. // in the IAM User Guide.
  984. //
  985. // The seed information contained in the QR code and the Base32 string should
  986. // be treated like any other secret access information, such as your AWS access
  987. // keys or your passwords. After you provision your virtual device, you should
  988. // ensure that the information is destroyed following secure procedures.
  989. func (c *IAM) CreateVirtualMFADevice(input *CreateVirtualMFADeviceInput) (*CreateVirtualMFADeviceOutput, error) {
  990. req, out := c.CreateVirtualMFADeviceRequest(input)
  991. err := req.Send()
  992. return out, err
  993. }
  994. const opDeactivateMFADevice = "DeactivateMFADevice"
  995. // DeactivateMFADeviceRequest generates a "aws/request.Request" representing the
  996. // client's request for the DeactivateMFADevice operation. The "output" return
  997. // value can be used to capture response data after the request's "Send" method
  998. // is called.
  999. //
  1000. // Creating a request object using this method should be used when you want to inject
  1001. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1002. // access properties on the request object before or after sending the request. If
  1003. // you just want the service response, call the DeactivateMFADevice method directly
  1004. // instead.
  1005. //
  1006. // Note: You must call the "Send" method on the returned request object in order
  1007. // to execute the request.
  1008. //
  1009. // // Example sending a request using the DeactivateMFADeviceRequest method.
  1010. // req, resp := client.DeactivateMFADeviceRequest(params)
  1011. //
  1012. // err := req.Send()
  1013. // if err == nil { // resp is now filled
  1014. // fmt.Println(resp)
  1015. // }
  1016. //
  1017. func (c *IAM) DeactivateMFADeviceRequest(input *DeactivateMFADeviceInput) (req *request.Request, output *DeactivateMFADeviceOutput) {
  1018. op := &request.Operation{
  1019. Name: opDeactivateMFADevice,
  1020. HTTPMethod: "POST",
  1021. HTTPPath: "/",
  1022. }
  1023. if input == nil {
  1024. input = &DeactivateMFADeviceInput{}
  1025. }
  1026. req = c.newRequest(op, input, output)
  1027. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1028. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1029. output = &DeactivateMFADeviceOutput{}
  1030. req.Data = output
  1031. return
  1032. }
  1033. // Deactivates the specified MFA device and removes it from association with
  1034. // the user name for which it was originally enabled.
  1035. //
  1036. // For more information about creating and working with virtual MFA devices,
  1037. // go to Using a Virtual MFA Device (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html)
  1038. // in the IAM User Guide.
  1039. func (c *IAM) DeactivateMFADevice(input *DeactivateMFADeviceInput) (*DeactivateMFADeviceOutput, error) {
  1040. req, out := c.DeactivateMFADeviceRequest(input)
  1041. err := req.Send()
  1042. return out, err
  1043. }
  1044. const opDeleteAccessKey = "DeleteAccessKey"
  1045. // DeleteAccessKeyRequest generates a "aws/request.Request" representing the
  1046. // client's request for the DeleteAccessKey operation. The "output" return
  1047. // value can be used to capture response data after the request's "Send" method
  1048. // is called.
  1049. //
  1050. // Creating a request object using this method should be used when you want to inject
  1051. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1052. // access properties on the request object before or after sending the request. If
  1053. // you just want the service response, call the DeleteAccessKey method directly
  1054. // instead.
  1055. //
  1056. // Note: You must call the "Send" method on the returned request object in order
  1057. // to execute the request.
  1058. //
  1059. // // Example sending a request using the DeleteAccessKeyRequest method.
  1060. // req, resp := client.DeleteAccessKeyRequest(params)
  1061. //
  1062. // err := req.Send()
  1063. // if err == nil { // resp is now filled
  1064. // fmt.Println(resp)
  1065. // }
  1066. //
  1067. func (c *IAM) DeleteAccessKeyRequest(input *DeleteAccessKeyInput) (req *request.Request, output *DeleteAccessKeyOutput) {
  1068. op := &request.Operation{
  1069. Name: opDeleteAccessKey,
  1070. HTTPMethod: "POST",
  1071. HTTPPath: "/",
  1072. }
  1073. if input == nil {
  1074. input = &DeleteAccessKeyInput{}
  1075. }
  1076. req = c.newRequest(op, input, output)
  1077. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1078. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1079. output = &DeleteAccessKeyOutput{}
  1080. req.Data = output
  1081. return
  1082. }
  1083. // Deletes the access key pair associated with the specified IAM user.
  1084. //
  1085. // If you do not specify a user name, IAM determines the user name implicitly
  1086. // based on the AWS access key ID signing the request. Because this action works
  1087. // for access keys under the AWS account, you can use this action to manage
  1088. // root credentials even if the AWS account has no associated users.
  1089. func (c *IAM) DeleteAccessKey(input *DeleteAccessKeyInput) (*DeleteAccessKeyOutput, error) {
  1090. req, out := c.DeleteAccessKeyRequest(input)
  1091. err := req.Send()
  1092. return out, err
  1093. }
  1094. const opDeleteAccountAlias = "DeleteAccountAlias"
  1095. // DeleteAccountAliasRequest generates a "aws/request.Request" representing the
  1096. // client's request for the DeleteAccountAlias operation. The "output" return
  1097. // value can be used to capture response data after the request's "Send" method
  1098. // is called.
  1099. //
  1100. // Creating a request object using this method should be used when you want to inject
  1101. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1102. // access properties on the request object before or after sending the request. If
  1103. // you just want the service response, call the DeleteAccountAlias method directly
  1104. // instead.
  1105. //
  1106. // Note: You must call the "Send" method on the returned request object in order
  1107. // to execute the request.
  1108. //
  1109. // // Example sending a request using the DeleteAccountAliasRequest method.
  1110. // req, resp := client.DeleteAccountAliasRequest(params)
  1111. //
  1112. // err := req.Send()
  1113. // if err == nil { // resp is now filled
  1114. // fmt.Println(resp)
  1115. // }
  1116. //
  1117. func (c *IAM) DeleteAccountAliasRequest(input *DeleteAccountAliasInput) (req *request.Request, output *DeleteAccountAliasOutput) {
  1118. op := &request.Operation{
  1119. Name: opDeleteAccountAlias,
  1120. HTTPMethod: "POST",
  1121. HTTPPath: "/",
  1122. }
  1123. if input == nil {
  1124. input = &DeleteAccountAliasInput{}
  1125. }
  1126. req = c.newRequest(op, input, output)
  1127. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1128. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1129. output = &DeleteAccountAliasOutput{}
  1130. req.Data = output
  1131. return
  1132. }
  1133. // Deletes the specified AWS account alias. For information about using an AWS
  1134. // account alias, see Using an Alias for Your AWS Account ID (http://docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html)
  1135. // in the IAM User Guide.
  1136. func (c *IAM) DeleteAccountAlias(input *DeleteAccountAliasInput) (*DeleteAccountAliasOutput, error) {
  1137. req, out := c.DeleteAccountAliasRequest(input)
  1138. err := req.Send()
  1139. return out, err
  1140. }
  1141. const opDeleteAccountPasswordPolicy = "DeleteAccountPasswordPolicy"
  1142. // DeleteAccountPasswordPolicyRequest generates a "aws/request.Request" representing the
  1143. // client's request for the DeleteAccountPasswordPolicy operation. The "output" return
  1144. // value can be used to capture response data after the request's "Send" method
  1145. // is called.
  1146. //
  1147. // Creating a request object using this method should be used when you want to inject
  1148. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1149. // access properties on the request object before or after sending the request. If
  1150. // you just want the service response, call the DeleteAccountPasswordPolicy method directly
  1151. // instead.
  1152. //
  1153. // Note: You must call the "Send" method on the returned request object in order
  1154. // to execute the request.
  1155. //
  1156. // // Example sending a request using the DeleteAccountPasswordPolicyRequest method.
  1157. // req, resp := client.DeleteAccountPasswordPolicyRequest(params)
  1158. //
  1159. // err := req.Send()
  1160. // if err == nil { // resp is now filled
  1161. // fmt.Println(resp)
  1162. // }
  1163. //
  1164. func (c *IAM) DeleteAccountPasswordPolicyRequest(input *DeleteAccountPasswordPolicyInput) (req *request.Request, output *DeleteAccountPasswordPolicyOutput) {
  1165. op := &request.Operation{
  1166. Name: opDeleteAccountPasswordPolicy,
  1167. HTTPMethod: "POST",
  1168. HTTPPath: "/",
  1169. }
  1170. if input == nil {
  1171. input = &DeleteAccountPasswordPolicyInput{}
  1172. }
  1173. req = c.newRequest(op, input, output)
  1174. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1175. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1176. output = &DeleteAccountPasswordPolicyOutput{}
  1177. req.Data = output
  1178. return
  1179. }
  1180. // Deletes the password policy for the AWS account. There are no parameters.
  1181. func (c *IAM) DeleteAccountPasswordPolicy(input *DeleteAccountPasswordPolicyInput) (*DeleteAccountPasswordPolicyOutput, error) {
  1182. req, out := c.DeleteAccountPasswordPolicyRequest(input)
  1183. err := req.Send()
  1184. return out, err
  1185. }
  1186. const opDeleteGroup = "DeleteGroup"
  1187. // DeleteGroupRequest generates a "aws/request.Request" representing the
  1188. // client's request for the DeleteGroup operation. The "output" return
  1189. // value can be used to capture response data after the request's "Send" method
  1190. // is called.
  1191. //
  1192. // Creating a request object using this method should be used when you want to inject
  1193. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1194. // access properties on the request object before or after sending the request. If
  1195. // you just want the service response, call the DeleteGroup method directly
  1196. // instead.
  1197. //
  1198. // Note: You must call the "Send" method on the returned request object in order
  1199. // to execute the request.
  1200. //
  1201. // // Example sending a request using the DeleteGroupRequest method.
  1202. // req, resp := client.DeleteGroupRequest(params)
  1203. //
  1204. // err := req.Send()
  1205. // if err == nil { // resp is now filled
  1206. // fmt.Println(resp)
  1207. // }
  1208. //
  1209. func (c *IAM) DeleteGroupRequest(input *DeleteGroupInput) (req *request.Request, output *DeleteGroupOutput) {
  1210. op := &request.Operation{
  1211. Name: opDeleteGroup,
  1212. HTTPMethod: "POST",
  1213. HTTPPath: "/",
  1214. }
  1215. if input == nil {
  1216. input = &DeleteGroupInput{}
  1217. }
  1218. req = c.newRequest(op, input, output)
  1219. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1220. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1221. output = &DeleteGroupOutput{}
  1222. req.Data = output
  1223. return
  1224. }
  1225. // Deletes the specified IAM group. The group must not contain any users or
  1226. // have any attached policies.
  1227. func (c *IAM) DeleteGroup(input *DeleteGroupInput) (*DeleteGroupOutput, error) {
  1228. req, out := c.DeleteGroupRequest(input)
  1229. err := req.Send()
  1230. return out, err
  1231. }
  1232. const opDeleteGroupPolicy = "DeleteGroupPolicy"
  1233. // DeleteGroupPolicyRequest generates a "aws/request.Request" representing the
  1234. // client's request for the DeleteGroupPolicy operation. The "output" return
  1235. // value can be used to capture response data after the request's "Send" method
  1236. // is called.
  1237. //
  1238. // Creating a request object using this method should be used when you want to inject
  1239. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1240. // access properties on the request object before or after sending the request. If
  1241. // you just want the service response, call the DeleteGroupPolicy method directly
  1242. // instead.
  1243. //
  1244. // Note: You must call the "Send" method on the returned request object in order
  1245. // to execute the request.
  1246. //
  1247. // // Example sending a request using the DeleteGroupPolicyRequest method.
  1248. // req, resp := client.DeleteGroupPolicyRequest(params)
  1249. //
  1250. // err := req.Send()
  1251. // if err == nil { // resp is now filled
  1252. // fmt.Println(resp)
  1253. // }
  1254. //
  1255. func (c *IAM) DeleteGroupPolicyRequest(input *DeleteGroupPolicyInput) (req *request.Request, output *DeleteGroupPolicyOutput) {
  1256. op := &request.Operation{
  1257. Name: opDeleteGroupPolicy,
  1258. HTTPMethod: "POST",
  1259. HTTPPath: "/",
  1260. }
  1261. if input == nil {
  1262. input = &DeleteGroupPolicyInput{}
  1263. }
  1264. req = c.newRequest(op, input, output)
  1265. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1266. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1267. output = &DeleteGroupPolicyOutput{}
  1268. req.Data = output
  1269. return
  1270. }
  1271. // Deletes the specified inline policy that is embedded in the specified IAM
  1272. // group.
  1273. //
  1274. // A group can also have managed policies attached to it. To detach a managed
  1275. // policy from a group, use DetachGroupPolicy. For more information about policies,
  1276. // refer to Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  1277. // in the IAM User Guide.
  1278. func (c *IAM) DeleteGroupPolicy(input *DeleteGroupPolicyInput) (*DeleteGroupPolicyOutput, error) {
  1279. req, out := c.DeleteGroupPolicyRequest(input)
  1280. err := req.Send()
  1281. return out, err
  1282. }
  1283. const opDeleteInstanceProfile = "DeleteInstanceProfile"
  1284. // DeleteInstanceProfileRequest generates a "aws/request.Request" representing the
  1285. // client's request for the DeleteInstanceProfile operation. The "output" return
  1286. // value can be used to capture response data after the request's "Send" method
  1287. // is called.
  1288. //
  1289. // Creating a request object using this method should be used when you want to inject
  1290. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1291. // access properties on the request object before or after sending the request. If
  1292. // you just want the service response, call the DeleteInstanceProfile method directly
  1293. // instead.
  1294. //
  1295. // Note: You must call the "Send" method on the returned request object in order
  1296. // to execute the request.
  1297. //
  1298. // // Example sending a request using the DeleteInstanceProfileRequest method.
  1299. // req, resp := client.DeleteInstanceProfileRequest(params)
  1300. //
  1301. // err := req.Send()
  1302. // if err == nil { // resp is now filled
  1303. // fmt.Println(resp)
  1304. // }
  1305. //
  1306. func (c *IAM) DeleteInstanceProfileRequest(input *DeleteInstanceProfileInput) (req *request.Request, output *DeleteInstanceProfileOutput) {
  1307. op := &request.Operation{
  1308. Name: opDeleteInstanceProfile,
  1309. HTTPMethod: "POST",
  1310. HTTPPath: "/",
  1311. }
  1312. if input == nil {
  1313. input = &DeleteInstanceProfileInput{}
  1314. }
  1315. req = c.newRequest(op, input, output)
  1316. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1317. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1318. output = &DeleteInstanceProfileOutput{}
  1319. req.Data = output
  1320. return
  1321. }
  1322. // Deletes the specified instance profile. The instance profile must not have
  1323. // an associated role.
  1324. //
  1325. // Make sure you do not have any Amazon EC2 instances running with the instance
  1326. // profile you are about to delete. Deleting a role or instance profile that
  1327. // is associated with a running instance will break any applications running
  1328. // on the instance.
  1329. //
  1330. // For more information about instance profiles, go to About Instance Profiles
  1331. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html).
  1332. func (c *IAM) DeleteInstanceProfile(input *DeleteInstanceProfileInput) (*DeleteInstanceProfileOutput, error) {
  1333. req, out := c.DeleteInstanceProfileRequest(input)
  1334. err := req.Send()
  1335. return out, err
  1336. }
  1337. const opDeleteLoginProfile = "DeleteLoginProfile"
  1338. // DeleteLoginProfileRequest generates a "aws/request.Request" representing the
  1339. // client's request for the DeleteLoginProfile operation. The "output" return
  1340. // value can be used to capture response data after the request's "Send" method
  1341. // is called.
  1342. //
  1343. // Creating a request object using this method should be used when you want to inject
  1344. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1345. // access properties on the request object before or after sending the request. If
  1346. // you just want the service response, call the DeleteLoginProfile method directly
  1347. // instead.
  1348. //
  1349. // Note: You must call the "Send" method on the returned request object in order
  1350. // to execute the request.
  1351. //
  1352. // // Example sending a request using the DeleteLoginProfileRequest method.
  1353. // req, resp := client.DeleteLoginProfileRequest(params)
  1354. //
  1355. // err := req.Send()
  1356. // if err == nil { // resp is now filled
  1357. // fmt.Println(resp)
  1358. // }
  1359. //
  1360. func (c *IAM) DeleteLoginProfileRequest(input *DeleteLoginProfileInput) (req *request.Request, output *DeleteLoginProfileOutput) {
  1361. op := &request.Operation{
  1362. Name: opDeleteLoginProfile,
  1363. HTTPMethod: "POST",
  1364. HTTPPath: "/",
  1365. }
  1366. if input == nil {
  1367. input = &DeleteLoginProfileInput{}
  1368. }
  1369. req = c.newRequest(op, input, output)
  1370. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1371. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1372. output = &DeleteLoginProfileOutput{}
  1373. req.Data = output
  1374. return
  1375. }
  1376. // Deletes the password for the specified IAM user, which terminates the user's
  1377. // ability to access AWS services through the AWS Management Console.
  1378. //
  1379. // Deleting a user's password does not prevent a user from accessing AWS
  1380. // through the command line interface or the API. To prevent all user access
  1381. // you must also either make any access keys inactive or delete them. For more
  1382. // information about making keys inactive or deleting them, see UpdateAccessKey
  1383. // and DeleteAccessKey.
  1384. func (c *IAM) DeleteLoginProfile(input *DeleteLoginProfileInput) (*DeleteLoginProfileOutput, error) {
  1385. req, out := c.DeleteLoginProfileRequest(input)
  1386. err := req.Send()
  1387. return out, err
  1388. }
  1389. const opDeleteOpenIDConnectProvider = "DeleteOpenIDConnectProvider"
  1390. // DeleteOpenIDConnectProviderRequest generates a "aws/request.Request" representing the
  1391. // client's request for the DeleteOpenIDConnectProvider operation. The "output" return
  1392. // value can be used to capture response data after the request's "Send" method
  1393. // is called.
  1394. //
  1395. // Creating a request object using this method should be used when you want to inject
  1396. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1397. // access properties on the request object before or after sending the request. If
  1398. // you just want the service response, call the DeleteOpenIDConnectProvider method directly
  1399. // instead.
  1400. //
  1401. // Note: You must call the "Send" method on the returned request object in order
  1402. // to execute the request.
  1403. //
  1404. // // Example sending a request using the DeleteOpenIDConnectProviderRequest method.
  1405. // req, resp := client.DeleteOpenIDConnectProviderRequest(params)
  1406. //
  1407. // err := req.Send()
  1408. // if err == nil { // resp is now filled
  1409. // fmt.Println(resp)
  1410. // }
  1411. //
  1412. func (c *IAM) DeleteOpenIDConnectProviderRequest(input *DeleteOpenIDConnectProviderInput) (req *request.Request, output *DeleteOpenIDConnectProviderOutput) {
  1413. op := &request.Operation{
  1414. Name: opDeleteOpenIDConnectProvider,
  1415. HTTPMethod: "POST",
  1416. HTTPPath: "/",
  1417. }
  1418. if input == nil {
  1419. input = &DeleteOpenIDConnectProviderInput{}
  1420. }
  1421. req = c.newRequest(op, input, output)
  1422. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1423. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1424. output = &DeleteOpenIDConnectProviderOutput{}
  1425. req.Data = output
  1426. return
  1427. }
  1428. // Deletes an OpenID Connect identity provider (IdP) resource object in IAM.
  1429. //
  1430. // Deleting an IAM OIDC provider resource does not update any roles that reference
  1431. // the provider as a principal in their trust policies. Any attempt to assume
  1432. // a role that references a deleted provider fails.
  1433. //
  1434. // This action is idempotent; it does not fail or return an error if you call
  1435. // the action for a provider that does not exist.
  1436. func (c *IAM) DeleteOpenIDConnectProvider(input *DeleteOpenIDConnectProviderInput) (*DeleteOpenIDConnectProviderOutput, error) {
  1437. req, out := c.DeleteOpenIDConnectProviderRequest(input)
  1438. err := req.Send()
  1439. return out, err
  1440. }
  1441. const opDeletePolicy = "DeletePolicy"
  1442. // DeletePolicyRequest generates a "aws/request.Request" representing the
  1443. // client's request for the DeletePolicy operation. The "output" return
  1444. // value can be used to capture response data after the request's "Send" method
  1445. // is called.
  1446. //
  1447. // Creating a request object using this method should be used when you want to inject
  1448. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1449. // access properties on the request object before or after sending the request. If
  1450. // you just want the service response, call the DeletePolicy method directly
  1451. // instead.
  1452. //
  1453. // Note: You must call the "Send" method on the returned request object in order
  1454. // to execute the request.
  1455. //
  1456. // // Example sending a request using the DeletePolicyRequest method.
  1457. // req, resp := client.DeletePolicyRequest(params)
  1458. //
  1459. // err := req.Send()
  1460. // if err == nil { // resp is now filled
  1461. // fmt.Println(resp)
  1462. // }
  1463. //
  1464. func (c *IAM) DeletePolicyRequest(input *DeletePolicyInput) (req *request.Request, output *DeletePolicyOutput) {
  1465. op := &request.Operation{
  1466. Name: opDeletePolicy,
  1467. HTTPMethod: "POST",
  1468. HTTPPath: "/",
  1469. }
  1470. if input == nil {
  1471. input = &DeletePolicyInput{}
  1472. }
  1473. req = c.newRequest(op, input, output)
  1474. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1475. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1476. output = &DeletePolicyOutput{}
  1477. req.Data = output
  1478. return
  1479. }
  1480. // Deletes the specified managed policy.
  1481. //
  1482. // Before you can delete a managed policy, you must first detach the policy
  1483. // from all users, groups, and roles that it is attached to, and you must delete
  1484. // all of the policy's versions. The following steps describe the process for
  1485. // deleting a managed policy:
  1486. //
  1487. // Detach the policy from all users, groups, and roles that the policy is
  1488. // attached to, using the DetachUserPolicy, DetachGroupPolicy, or DetachRolePolicy
  1489. // APIs. To list all the users, groups, and roles that a policy is attached
  1490. // to, use ListEntitiesForPolicy.
  1491. //
  1492. // Delete all versions of the policy using DeletePolicyVersion. To list the
  1493. // policy's versions, use ListPolicyVersions. You cannot use DeletePolicyVersion
  1494. // to delete the version that is marked as the default version. You delete the
  1495. // policy's default version in the next step of the process.
  1496. //
  1497. // Delete the policy (this automatically deletes the policy's default version)
  1498. // using this API.
  1499. //
  1500. // For information about managed policies, see Managed Policies and Inline
  1501. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  1502. // in the IAM User Guide.
  1503. func (c *IAM) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
  1504. req, out := c.DeletePolicyRequest(input)
  1505. err := req.Send()
  1506. return out, err
  1507. }
  1508. const opDeletePolicyVersion = "DeletePolicyVersion"
  1509. // DeletePolicyVersionRequest generates a "aws/request.Request" representing the
  1510. // client's request for the DeletePolicyVersion operation. The "output" return
  1511. // value can be used to capture response data after the request's "Send" method
  1512. // is called.
  1513. //
  1514. // Creating a request object using this method should be used when you want to inject
  1515. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1516. // access properties on the request object before or after sending the request. If
  1517. // you just want the service response, call the DeletePolicyVersion method directly
  1518. // instead.
  1519. //
  1520. // Note: You must call the "Send" method on the returned request object in order
  1521. // to execute the request.
  1522. //
  1523. // // Example sending a request using the DeletePolicyVersionRequest method.
  1524. // req, resp := client.DeletePolicyVersionRequest(params)
  1525. //
  1526. // err := req.Send()
  1527. // if err == nil { // resp is now filled
  1528. // fmt.Println(resp)
  1529. // }
  1530. //
  1531. func (c *IAM) DeletePolicyVersionRequest(input *DeletePolicyVersionInput) (req *request.Request, output *DeletePolicyVersionOutput) {
  1532. op := &request.Operation{
  1533. Name: opDeletePolicyVersion,
  1534. HTTPMethod: "POST",
  1535. HTTPPath: "/",
  1536. }
  1537. if input == nil {
  1538. input = &DeletePolicyVersionInput{}
  1539. }
  1540. req = c.newRequest(op, input, output)
  1541. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1542. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1543. output = &DeletePolicyVersionOutput{}
  1544. req.Data = output
  1545. return
  1546. }
  1547. // Deletes the specified version from the specified managed policy.
  1548. //
  1549. // You cannot delete the default version from a policy using this API. To delete
  1550. // the default version from a policy, use DeletePolicy. To find out which version
  1551. // of a policy is marked as the default version, use ListPolicyVersions.
  1552. //
  1553. // For information about versions for managed policies, see Versioning for
  1554. // Managed Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
  1555. // in the IAM User Guide.
  1556. func (c *IAM) DeletePolicyVersion(input *DeletePolicyVersionInput) (*DeletePolicyVersionOutput, error) {
  1557. req, out := c.DeletePolicyVersionRequest(input)
  1558. err := req.Send()
  1559. return out, err
  1560. }
  1561. const opDeleteRole = "DeleteRole"
  1562. // DeleteRoleRequest generates a "aws/request.Request" representing the
  1563. // client's request for the DeleteRole operation. The "output" return
  1564. // value can be used to capture response data after the request's "Send" method
  1565. // is called.
  1566. //
  1567. // Creating a request object using this method should be used when you want to inject
  1568. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1569. // access properties on the request object before or after sending the request. If
  1570. // you just want the service response, call the DeleteRole method directly
  1571. // instead.
  1572. //
  1573. // Note: You must call the "Send" method on the returned request object in order
  1574. // to execute the request.
  1575. //
  1576. // // Example sending a request using the DeleteRoleRequest method.
  1577. // req, resp := client.DeleteRoleRequest(params)
  1578. //
  1579. // err := req.Send()
  1580. // if err == nil { // resp is now filled
  1581. // fmt.Println(resp)
  1582. // }
  1583. //
  1584. func (c *IAM) DeleteRoleRequest(input *DeleteRoleInput) (req *request.Request, output *DeleteRoleOutput) {
  1585. op := &request.Operation{
  1586. Name: opDeleteRole,
  1587. HTTPMethod: "POST",
  1588. HTTPPath: "/",
  1589. }
  1590. if input == nil {
  1591. input = &DeleteRoleInput{}
  1592. }
  1593. req = c.newRequest(op, input, output)
  1594. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1595. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1596. output = &DeleteRoleOutput{}
  1597. req.Data = output
  1598. return
  1599. }
  1600. // Deletes the specified role. The role must not have any policies attached.
  1601. // For more information about roles, go to Working with Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html).
  1602. //
  1603. // Make sure you do not have any Amazon EC2 instances running with the role
  1604. // you are about to delete. Deleting a role or instance profile that is associated
  1605. // with a running instance will break any applications running on the instance.
  1606. func (c *IAM) DeleteRole(input *DeleteRoleInput) (*DeleteRoleOutput, error) {
  1607. req, out := c.DeleteRoleRequest(input)
  1608. err := req.Send()
  1609. return out, err
  1610. }
  1611. const opDeleteRolePolicy = "DeleteRolePolicy"
  1612. // DeleteRolePolicyRequest generates a "aws/request.Request" representing the
  1613. // client's request for the DeleteRolePolicy operation. The "output" return
  1614. // value can be used to capture response data after the request's "Send" method
  1615. // is called.
  1616. //
  1617. // Creating a request object using this method should be used when you want to inject
  1618. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1619. // access properties on the request object before or after sending the request. If
  1620. // you just want the service response, call the DeleteRolePolicy method directly
  1621. // instead.
  1622. //
  1623. // Note: You must call the "Send" method on the returned request object in order
  1624. // to execute the request.
  1625. //
  1626. // // Example sending a request using the DeleteRolePolicyRequest method.
  1627. // req, resp := client.DeleteRolePolicyRequest(params)
  1628. //
  1629. // err := req.Send()
  1630. // if err == nil { // resp is now filled
  1631. // fmt.Println(resp)
  1632. // }
  1633. //
  1634. func (c *IAM) DeleteRolePolicyRequest(input *DeleteRolePolicyInput) (req *request.Request, output *DeleteRolePolicyOutput) {
  1635. op := &request.Operation{
  1636. Name: opDeleteRolePolicy,
  1637. HTTPMethod: "POST",
  1638. HTTPPath: "/",
  1639. }
  1640. if input == nil {
  1641. input = &DeleteRolePolicyInput{}
  1642. }
  1643. req = c.newRequest(op, input, output)
  1644. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1645. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1646. output = &DeleteRolePolicyOutput{}
  1647. req.Data = output
  1648. return
  1649. }
  1650. // Deletes the specified inline policy that is embedded in the specified IAM
  1651. // role.
  1652. //
  1653. // A role can also have managed policies attached to it. To detach a managed
  1654. // policy from a role, use DetachRolePolicy. For more information about policies,
  1655. // refer to Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  1656. // in the IAM User Guide.
  1657. func (c *IAM) DeleteRolePolicy(input *DeleteRolePolicyInput) (*DeleteRolePolicyOutput, error) {
  1658. req, out := c.DeleteRolePolicyRequest(input)
  1659. err := req.Send()
  1660. return out, err
  1661. }
  1662. const opDeleteSAMLProvider = "DeleteSAMLProvider"
  1663. // DeleteSAMLProviderRequest generates a "aws/request.Request" representing the
  1664. // client's request for the DeleteSAMLProvider operation. The "output" return
  1665. // value can be used to capture response data after the request's "Send" method
  1666. // is called.
  1667. //
  1668. // Creating a request object using this method should be used when you want to inject
  1669. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1670. // access properties on the request object before or after sending the request. If
  1671. // you just want the service response, call the DeleteSAMLProvider method directly
  1672. // instead.
  1673. //
  1674. // Note: You must call the "Send" method on the returned request object in order
  1675. // to execute the request.
  1676. //
  1677. // // Example sending a request using the DeleteSAMLProviderRequest method.
  1678. // req, resp := client.DeleteSAMLProviderRequest(params)
  1679. //
  1680. // err := req.Send()
  1681. // if err == nil { // resp is now filled
  1682. // fmt.Println(resp)
  1683. // }
  1684. //
  1685. func (c *IAM) DeleteSAMLProviderRequest(input *DeleteSAMLProviderInput) (req *request.Request, output *DeleteSAMLProviderOutput) {
  1686. op := &request.Operation{
  1687. Name: opDeleteSAMLProvider,
  1688. HTTPMethod: "POST",
  1689. HTTPPath: "/",
  1690. }
  1691. if input == nil {
  1692. input = &DeleteSAMLProviderInput{}
  1693. }
  1694. req = c.newRequest(op, input, output)
  1695. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1696. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1697. output = &DeleteSAMLProviderOutput{}
  1698. req.Data = output
  1699. return
  1700. }
  1701. // Deletes a SAML provider resource in IAM.
  1702. //
  1703. // Deleting the provider resource from IAM does not update any roles that reference
  1704. // the SAML provider resource's ARN as a principal in their trust policies.
  1705. // Any attempt to assume a role that references a non-existent provider resource
  1706. // ARN fails.
  1707. //
  1708. // This operation requires Signature Version 4 (http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
  1709. func (c *IAM) DeleteSAMLProvider(input *DeleteSAMLProviderInput) (*DeleteSAMLProviderOutput, error) {
  1710. req, out := c.DeleteSAMLProviderRequest(input)
  1711. err := req.Send()
  1712. return out, err
  1713. }
  1714. const opDeleteSSHPublicKey = "DeleteSSHPublicKey"
  1715. // DeleteSSHPublicKeyRequest generates a "aws/request.Request" representing the
  1716. // client's request for the DeleteSSHPublicKey operation. The "output" return
  1717. // value can be used to capture response data after the request's "Send" method
  1718. // is called.
  1719. //
  1720. // Creating a request object using this method should be used when you want to inject
  1721. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1722. // access properties on the request object before or after sending the request. If
  1723. // you just want the service response, call the DeleteSSHPublicKey method directly
  1724. // instead.
  1725. //
  1726. // Note: You must call the "Send" method on the returned request object in order
  1727. // to execute the request.
  1728. //
  1729. // // Example sending a request using the DeleteSSHPublicKeyRequest method.
  1730. // req, resp := client.DeleteSSHPublicKeyRequest(params)
  1731. //
  1732. // err := req.Send()
  1733. // if err == nil { // resp is now filled
  1734. // fmt.Println(resp)
  1735. // }
  1736. //
  1737. func (c *IAM) DeleteSSHPublicKeyRequest(input *DeleteSSHPublicKeyInput) (req *request.Request, output *DeleteSSHPublicKeyOutput) {
  1738. op := &request.Operation{
  1739. Name: opDeleteSSHPublicKey,
  1740. HTTPMethod: "POST",
  1741. HTTPPath: "/",
  1742. }
  1743. if input == nil {
  1744. input = &DeleteSSHPublicKeyInput{}
  1745. }
  1746. req = c.newRequest(op, input, output)
  1747. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1748. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1749. output = &DeleteSSHPublicKeyOutput{}
  1750. req.Data = output
  1751. return
  1752. }
  1753. // Deletes the specified SSH public key.
  1754. //
  1755. // The SSH public key deleted by this action is used only for authenticating
  1756. // the associated IAM user to an AWS CodeCommit repository. For more information
  1757. // about using SSH keys to authenticate to an AWS CodeCommit repository, see
  1758. // Set up AWS CodeCommit for SSH Connections (http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html)
  1759. // in the AWS CodeCommit User Guide.
  1760. func (c *IAM) DeleteSSHPublicKey(input *DeleteSSHPublicKeyInput) (*DeleteSSHPublicKeyOutput, error) {
  1761. req, out := c.DeleteSSHPublicKeyRequest(input)
  1762. err := req.Send()
  1763. return out, err
  1764. }
  1765. const opDeleteServerCertificate = "DeleteServerCertificate"
  1766. // DeleteServerCertificateRequest generates a "aws/request.Request" representing the
  1767. // client's request for the DeleteServerCertificate operation. The "output" return
  1768. // value can be used to capture response data after the request's "Send" method
  1769. // is called.
  1770. //
  1771. // Creating a request object using this method should be used when you want to inject
  1772. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1773. // access properties on the request object before or after sending the request. If
  1774. // you just want the service response, call the DeleteServerCertificate method directly
  1775. // instead.
  1776. //
  1777. // Note: You must call the "Send" method on the returned request object in order
  1778. // to execute the request.
  1779. //
  1780. // // Example sending a request using the DeleteServerCertificateRequest method.
  1781. // req, resp := client.DeleteServerCertificateRequest(params)
  1782. //
  1783. // err := req.Send()
  1784. // if err == nil { // resp is now filled
  1785. // fmt.Println(resp)
  1786. // }
  1787. //
  1788. func (c *IAM) DeleteServerCertificateRequest(input *DeleteServerCertificateInput) (req *request.Request, output *DeleteServerCertificateOutput) {
  1789. op := &request.Operation{
  1790. Name: opDeleteServerCertificate,
  1791. HTTPMethod: "POST",
  1792. HTTPPath: "/",
  1793. }
  1794. if input == nil {
  1795. input = &DeleteServerCertificateInput{}
  1796. }
  1797. req = c.newRequest(op, input, output)
  1798. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1799. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1800. output = &DeleteServerCertificateOutput{}
  1801. req.Data = output
  1802. return
  1803. }
  1804. // Deletes the specified server certificate.
  1805. //
  1806. // For more information about working with server certificates, including a
  1807. // list of AWS services that can use the server certificates that you manage
  1808. // with IAM, go to Working with Server Certificates (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)
  1809. // in the IAM User Guide.
  1810. //
  1811. // If you are using a server certificate with Elastic Load Balancing, deleting
  1812. // the certificate could have implications for your application. If Elastic
  1813. // Load Balancing doesn't detect the deletion of bound certificates, it may
  1814. // continue to use the certificates. This could cause Elastic Load Balancing
  1815. // to stop accepting traffic. We recommend that you remove the reference to
  1816. // the certificate from Elastic Load Balancing before using this command to
  1817. // delete the certificate. For more information, go to DeleteLoadBalancerListeners
  1818. // (http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_DeleteLoadBalancerListeners.html)
  1819. // in the Elastic Load Balancing API Reference.
  1820. func (c *IAM) DeleteServerCertificate(input *DeleteServerCertificateInput) (*DeleteServerCertificateOutput, error) {
  1821. req, out := c.DeleteServerCertificateRequest(input)
  1822. err := req.Send()
  1823. return out, err
  1824. }
  1825. const opDeleteSigningCertificate = "DeleteSigningCertificate"
  1826. // DeleteSigningCertificateRequest generates a "aws/request.Request" representing the
  1827. // client's request for the DeleteSigningCertificate operation. The "output" return
  1828. // value can be used to capture response data after the request's "Send" method
  1829. // is called.
  1830. //
  1831. // Creating a request object using this method should be used when you want to inject
  1832. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1833. // access properties on the request object before or after sending the request. If
  1834. // you just want the service response, call the DeleteSigningCertificate method directly
  1835. // instead.
  1836. //
  1837. // Note: You must call the "Send" method on the returned request object in order
  1838. // to execute the request.
  1839. //
  1840. // // Example sending a request using the DeleteSigningCertificateRequest method.
  1841. // req, resp := client.DeleteSigningCertificateRequest(params)
  1842. //
  1843. // err := req.Send()
  1844. // if err == nil { // resp is now filled
  1845. // fmt.Println(resp)
  1846. // }
  1847. //
  1848. func (c *IAM) DeleteSigningCertificateRequest(input *DeleteSigningCertificateInput) (req *request.Request, output *DeleteSigningCertificateOutput) {
  1849. op := &request.Operation{
  1850. Name: opDeleteSigningCertificate,
  1851. HTTPMethod: "POST",
  1852. HTTPPath: "/",
  1853. }
  1854. if input == nil {
  1855. input = &DeleteSigningCertificateInput{}
  1856. }
  1857. req = c.newRequest(op, input, output)
  1858. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1859. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1860. output = &DeleteSigningCertificateOutput{}
  1861. req.Data = output
  1862. return
  1863. }
  1864. // Deletes a signing certificate associated with the specified IAM user.
  1865. //
  1866. // If you do not specify a user name, IAM determines the user name implicitly
  1867. // based on the AWS access key ID signing the request. Because this action works
  1868. // for access keys under the AWS account, you can use this action to manage
  1869. // root credentials even if the AWS account has no associated IAM users.
  1870. func (c *IAM) DeleteSigningCertificate(input *DeleteSigningCertificateInput) (*DeleteSigningCertificateOutput, error) {
  1871. req, out := c.DeleteSigningCertificateRequest(input)
  1872. err := req.Send()
  1873. return out, err
  1874. }
  1875. const opDeleteUser = "DeleteUser"
  1876. // DeleteUserRequest generates a "aws/request.Request" representing the
  1877. // client's request for the DeleteUser operation. The "output" return
  1878. // value can be used to capture response data after the request's "Send" method
  1879. // is called.
  1880. //
  1881. // Creating a request object using this method should be used when you want to inject
  1882. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1883. // access properties on the request object before or after sending the request. If
  1884. // you just want the service response, call the DeleteUser method directly
  1885. // instead.
  1886. //
  1887. // Note: You must call the "Send" method on the returned request object in order
  1888. // to execute the request.
  1889. //
  1890. // // Example sending a request using the DeleteUserRequest method.
  1891. // req, resp := client.DeleteUserRequest(params)
  1892. //
  1893. // err := req.Send()
  1894. // if err == nil { // resp is now filled
  1895. // fmt.Println(resp)
  1896. // }
  1897. //
  1898. func (c *IAM) DeleteUserRequest(input *DeleteUserInput) (req *request.Request, output *DeleteUserOutput) {
  1899. op := &request.Operation{
  1900. Name: opDeleteUser,
  1901. HTTPMethod: "POST",
  1902. HTTPPath: "/",
  1903. }
  1904. if input == nil {
  1905. input = &DeleteUserInput{}
  1906. }
  1907. req = c.newRequest(op, input, output)
  1908. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1909. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1910. output = &DeleteUserOutput{}
  1911. req.Data = output
  1912. return
  1913. }
  1914. // Deletes the specified IAM user. The user must not belong to any groups or
  1915. // have any access keys, signing certificates, or attached policies.
  1916. func (c *IAM) DeleteUser(input *DeleteUserInput) (*DeleteUserOutput, error) {
  1917. req, out := c.DeleteUserRequest(input)
  1918. err := req.Send()
  1919. return out, err
  1920. }
  1921. const opDeleteUserPolicy = "DeleteUserPolicy"
  1922. // DeleteUserPolicyRequest generates a "aws/request.Request" representing the
  1923. // client's request for the DeleteUserPolicy operation. The "output" return
  1924. // value can be used to capture response data after the request's "Send" method
  1925. // is called.
  1926. //
  1927. // Creating a request object using this method should be used when you want to inject
  1928. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1929. // access properties on the request object before or after sending the request. If
  1930. // you just want the service response, call the DeleteUserPolicy method directly
  1931. // instead.
  1932. //
  1933. // Note: You must call the "Send" method on the returned request object in order
  1934. // to execute the request.
  1935. //
  1936. // // Example sending a request using the DeleteUserPolicyRequest method.
  1937. // req, resp := client.DeleteUserPolicyRequest(params)
  1938. //
  1939. // err := req.Send()
  1940. // if err == nil { // resp is now filled
  1941. // fmt.Println(resp)
  1942. // }
  1943. //
  1944. func (c *IAM) DeleteUserPolicyRequest(input *DeleteUserPolicyInput) (req *request.Request, output *DeleteUserPolicyOutput) {
  1945. op := &request.Operation{
  1946. Name: opDeleteUserPolicy,
  1947. HTTPMethod: "POST",
  1948. HTTPPath: "/",
  1949. }
  1950. if input == nil {
  1951. input = &DeleteUserPolicyInput{}
  1952. }
  1953. req = c.newRequest(op, input, output)
  1954. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1955. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1956. output = &DeleteUserPolicyOutput{}
  1957. req.Data = output
  1958. return
  1959. }
  1960. // Deletes the specified inline policy that is embedded in the specified IAM
  1961. // user.
  1962. //
  1963. // A user can also have managed policies attached to it. To detach a managed
  1964. // policy from a user, use DetachUserPolicy. For more information about policies,
  1965. // refer to Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  1966. // in the IAM User Guide.
  1967. func (c *IAM) DeleteUserPolicy(input *DeleteUserPolicyInput) (*DeleteUserPolicyOutput, error) {
  1968. req, out := c.DeleteUserPolicyRequest(input)
  1969. err := req.Send()
  1970. return out, err
  1971. }
  1972. const opDeleteVirtualMFADevice = "DeleteVirtualMFADevice"
  1973. // DeleteVirtualMFADeviceRequest generates a "aws/request.Request" representing the
  1974. // client's request for the DeleteVirtualMFADevice operation. The "output" return
  1975. // value can be used to capture response data after the request's "Send" method
  1976. // is called.
  1977. //
  1978. // Creating a request object using this method should be used when you want to inject
  1979. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1980. // access properties on the request object before or after sending the request. If
  1981. // you just want the service response, call the DeleteVirtualMFADevice method directly
  1982. // instead.
  1983. //
  1984. // Note: You must call the "Send" method on the returned request object in order
  1985. // to execute the request.
  1986. //
  1987. // // Example sending a request using the DeleteVirtualMFADeviceRequest method.
  1988. // req, resp := client.DeleteVirtualMFADeviceRequest(params)
  1989. //
  1990. // err := req.Send()
  1991. // if err == nil { // resp is now filled
  1992. // fmt.Println(resp)
  1993. // }
  1994. //
  1995. func (c *IAM) DeleteVirtualMFADeviceRequest(input *DeleteVirtualMFADeviceInput) (req *request.Request, output *DeleteVirtualMFADeviceOutput) {
  1996. op := &request.Operation{
  1997. Name: opDeleteVirtualMFADevice,
  1998. HTTPMethod: "POST",
  1999. HTTPPath: "/",
  2000. }
  2001. if input == nil {
  2002. input = &DeleteVirtualMFADeviceInput{}
  2003. }
  2004. req = c.newRequest(op, input, output)
  2005. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  2006. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  2007. output = &DeleteVirtualMFADeviceOutput{}
  2008. req.Data = output
  2009. return
  2010. }
  2011. // Deletes a virtual MFA device.
  2012. //
  2013. // You must deactivate a user's virtual MFA device before you can delete
  2014. // it. For information about deactivating MFA devices, see DeactivateMFADevice.
  2015. func (c *IAM) DeleteVirtualMFADevice(input *DeleteVirtualMFADeviceInput) (*DeleteVirtualMFADeviceOutput, error) {
  2016. req, out := c.DeleteVirtualMFADeviceRequest(input)
  2017. err := req.Send()
  2018. return out, err
  2019. }
  2020. const opDetachGroupPolicy = "DetachGroupPolicy"
  2021. // DetachGroupPolicyRequest generates a "aws/request.Request" representing the
  2022. // client's request for the DetachGroupPolicy operation. The "output" return
  2023. // value can be used to capture response data after the request's "Send" method
  2024. // is called.
  2025. //
  2026. // Creating a request object using this method should be used when you want to inject
  2027. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2028. // access properties on the request object before or after sending the request. If
  2029. // you just want the service response, call the DetachGroupPolicy method directly
  2030. // instead.
  2031. //
  2032. // Note: You must call the "Send" method on the returned request object in order
  2033. // to execute the request.
  2034. //
  2035. // // Example sending a request using the DetachGroupPolicyRequest method.
  2036. // req, resp := client.DetachGroupPolicyRequest(params)
  2037. //
  2038. // err := req.Send()
  2039. // if err == nil { // resp is now filled
  2040. // fmt.Println(resp)
  2041. // }
  2042. //
  2043. func (c *IAM) DetachGroupPolicyRequest(input *DetachGroupPolicyInput) (req *request.Request, output *DetachGroupPolicyOutput) {
  2044. op := &request.Operation{
  2045. Name: opDetachGroupPolicy,
  2046. HTTPMethod: "POST",
  2047. HTTPPath: "/",
  2048. }
  2049. if input == nil {
  2050. input = &DetachGroupPolicyInput{}
  2051. }
  2052. req = c.newRequest(op, input, output)
  2053. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  2054. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  2055. output = &DetachGroupPolicyOutput{}
  2056. req.Data = output
  2057. return
  2058. }
  2059. // Removes the specified managed policy from the specified IAM group.
  2060. //
  2061. // A group can also have inline policies embedded with it. To delete an inline
  2062. // policy, use the DeleteGroupPolicy API. For information about policies, see
  2063. // Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  2064. // in the IAM User Guide.
  2065. func (c *IAM) DetachGroupPolicy(input *DetachGroupPolicyInput) (*DetachGroupPolicyOutput, error) {
  2066. req, out := c.DetachGroupPolicyRequest(input)
  2067. err := req.Send()
  2068. return out, err
  2069. }
  2070. const opDetachRolePolicy = "DetachRolePolicy"
  2071. // DetachRolePolicyRequest generates a "aws/request.Request" representing the
  2072. // client's request for the DetachRolePolicy operation. The "output" return
  2073. // value can be used to capture response data after the request's "Send" method
  2074. // is called.
  2075. //
  2076. // Creating a request object using this method should be used when you want to inject
  2077. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2078. // access properties on the request object before or after sending the request. If
  2079. // you just want the service response, call the DetachRolePolicy method directly
  2080. // instead.
  2081. //
  2082. // Note: You must call the "Send" method on the returned request object in order
  2083. // to execute the request.
  2084. //
  2085. // // Example sending a request using the DetachRolePolicyRequest method.
  2086. // req, resp := client.DetachRolePolicyRequest(params)
  2087. //
  2088. // err := req.Send()
  2089. // if err == nil { // resp is now filled
  2090. // fmt.Println(resp)
  2091. // }
  2092. //
  2093. func (c *IAM) DetachRolePolicyRequest(input *DetachRolePolicyInput) (req *request.Request, output *DetachRolePolicyOutput) {
  2094. op := &request.Operation{
  2095. Name: opDetachRolePolicy,
  2096. HTTPMethod: "POST",
  2097. HTTPPath: "/",
  2098. }
  2099. if input == nil {
  2100. input = &DetachRolePolicyInput{}
  2101. }
  2102. req = c.newRequest(op, input, output)
  2103. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  2104. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  2105. output = &DetachRolePolicyOutput{}
  2106. req.Data = output
  2107. return
  2108. }
  2109. // Removes the specified managed policy from the specified role.
  2110. //
  2111. // A role can also have inline policies embedded with it. To delete an inline
  2112. // policy, use the DeleteRolePolicy API. For information about policies, see
  2113. // Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  2114. // in the IAM User Guide.
  2115. func (c *IAM) DetachRolePolicy(input *DetachRolePolicyInput) (*DetachRolePolicyOutput, error) {
  2116. req, out := c.DetachRolePolicyRequest(input)
  2117. err := req.Send()
  2118. return out, err
  2119. }
  2120. const opDetachUserPolicy = "DetachUserPolicy"
  2121. // DetachUserPolicyRequest generates a "aws/request.Request" representing the
  2122. // client's request for the DetachUserPolicy operation. The "output" return
  2123. // value can be used to capture response data after the request's "Send" method
  2124. // is called.
  2125. //
  2126. // Creating a request object using this method should be used when you want to inject
  2127. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2128. // access properties on the request object before or after sending the request. If
  2129. // you just want the service response, call the DetachUserPolicy method directly
  2130. // instead.
  2131. //
  2132. // Note: You must call the "Send" method on the returned request object in order
  2133. // to execute the request.
  2134. //
  2135. // // Example sending a request using the DetachUserPolicyRequest method.
  2136. // req, resp := client.DetachUserPolicyRequest(params)
  2137. //
  2138. // err := req.Send()
  2139. // if err == nil { // resp is now filled
  2140. // fmt.Println(resp)
  2141. // }
  2142. //
  2143. func (c *IAM) DetachUserPolicyRequest(input *DetachUserPolicyInput) (req *request.Request, output *DetachUserPolicyOutput) {
  2144. op := &request.Operation{
  2145. Name: opDetachUserPolicy,
  2146. HTTPMethod: "POST",
  2147. HTTPPath: "/",
  2148. }
  2149. if input == nil {
  2150. input = &DetachUserPolicyInput{}
  2151. }
  2152. req = c.newRequest(op, input, output)
  2153. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  2154. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  2155. output = &DetachUserPolicyOutput{}
  2156. req.Data = output
  2157. return
  2158. }
  2159. // Removes the specified managed policy from the specified user.
  2160. //
  2161. // A user can also have inline policies embedded with it. To delete an inline
  2162. // policy, use the DeleteUserPolicy API. For information about policies, see
  2163. // Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  2164. // in the IAM User Guide.
  2165. func (c *IAM) DetachUserPolicy(input *DetachUserPolicyInput) (*DetachUserPolicyOutput, error) {
  2166. req, out := c.DetachUserPolicyRequest(input)
  2167. err := req.Send()
  2168. return out, err
  2169. }
  2170. const opEnableMFADevice = "EnableMFADevice"
  2171. // EnableMFADeviceRequest generates a "aws/request.Request" representing the
  2172. // client's request for the EnableMFADevice operation. The "output" return
  2173. // value can be used to capture response data after the request's "Send" method
  2174. // is called.
  2175. //
  2176. // Creating a request object using this method should be used when you want to inject
  2177. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2178. // access properties on the request object before or after sending the request. If
  2179. // you just want the service response, call the EnableMFADevice method directly
  2180. // instead.
  2181. //
  2182. // Note: You must call the "Send" method on the returned request object in order
  2183. // to execute the request.
  2184. //
  2185. // // Example sending a request using the EnableMFADeviceRequest method.
  2186. // req, resp := client.EnableMFADeviceRequest(params)
  2187. //
  2188. // err := req.Send()
  2189. // if err == nil { // resp is now filled
  2190. // fmt.Println(resp)
  2191. // }
  2192. //
  2193. func (c *IAM) EnableMFADeviceRequest(input *EnableMFADeviceInput) (req *request.Request, output *EnableMFADeviceOutput) {
  2194. op := &request.Operation{
  2195. Name: opEnableMFADevice,
  2196. HTTPMethod: "POST",
  2197. HTTPPath: "/",
  2198. }
  2199. if input == nil {
  2200. input = &EnableMFADeviceInput{}
  2201. }
  2202. req = c.newRequest(op, input, output)
  2203. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  2204. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  2205. output = &EnableMFADeviceOutput{}
  2206. req.Data = output
  2207. return
  2208. }
  2209. // Enables the specified MFA device and associates it with the specified IAM
  2210. // user. When enabled, the MFA device is required for every subsequent login
  2211. // by the IAM user associated with the device.
  2212. func (c *IAM) EnableMFADevice(input *EnableMFADeviceInput) (*EnableMFADeviceOutput, error) {
  2213. req, out := c.EnableMFADeviceRequest(input)
  2214. err := req.Send()
  2215. return out, err
  2216. }
  2217. const opGenerateCredentialReport = "GenerateCredentialReport"
  2218. // GenerateCredentialReportRequest generates a "aws/request.Request" representing the
  2219. // client's request for the GenerateCredentialReport operation. The "output" return
  2220. // value can be used to capture response data after the request's "Send" method
  2221. // is called.
  2222. //
  2223. // Creating a request object using this method should be used when you want to inject
  2224. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2225. // access properties on the request object before or after sending the request. If
  2226. // you just want the service response, call the GenerateCredentialReport method directly
  2227. // instead.
  2228. //
  2229. // Note: You must call the "Send" method on the returned request object in order
  2230. // to execute the request.
  2231. //
  2232. // // Example sending a request using the GenerateCredentialReportRequest method.
  2233. // req, resp := client.GenerateCredentialReportRequest(params)
  2234. //
  2235. // err := req.Send()
  2236. // if err == nil { // resp is now filled
  2237. // fmt.Println(resp)
  2238. // }
  2239. //
  2240. func (c *IAM) GenerateCredentialReportRequest(input *GenerateCredentialReportInput) (req *request.Request, output *GenerateCredentialReportOutput) {
  2241. op := &request.Operation{
  2242. Name: opGenerateCredentialReport,
  2243. HTTPMethod: "POST",
  2244. HTTPPath: "/",
  2245. }
  2246. if input == nil {
  2247. input = &GenerateCredentialReportInput{}
  2248. }
  2249. req = c.newRequest(op, input, output)
  2250. output = &GenerateCredentialReportOutput{}
  2251. req.Data = output
  2252. return
  2253. }
  2254. // Generates a credential report for the AWS account. For more information about
  2255. // the credential report, see Getting Credential Reports (http://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html)
  2256. // in the IAM User Guide.
  2257. func (c *IAM) GenerateCredentialReport(input *GenerateCredentialReportInput) (*GenerateCredentialReportOutput, error) {
  2258. req, out := c.GenerateCredentialReportRequest(input)
  2259. err := req.Send()
  2260. return out, err
  2261. }
  2262. const opGetAccessKeyLastUsed = "GetAccessKeyLastUsed"
  2263. // GetAccessKeyLastUsedRequest generates a "aws/request.Request" representing the
  2264. // client's request for the GetAccessKeyLastUsed operation. The "output" return
  2265. // value can be used to capture response data after the request's "Send" method
  2266. // is called.
  2267. //
  2268. // Creating a request object using this method should be used when you want to inject
  2269. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2270. // access properties on the request object before or after sending the request. If
  2271. // you just want the service response, call the GetAccessKeyLastUsed method directly
  2272. // instead.
  2273. //
  2274. // Note: You must call the "Send" method on the returned request object in order
  2275. // to execute the request.
  2276. //
  2277. // // Example sending a request using the GetAccessKeyLastUsedRequest method.
  2278. // req, resp := client.GetAccessKeyLastUsedRequest(params)
  2279. //
  2280. // err := req.Send()
  2281. // if err == nil { // resp is now filled
  2282. // fmt.Println(resp)
  2283. // }
  2284. //
  2285. func (c *IAM) GetAccessKeyLastUsedRequest(input *GetAccessKeyLastUsedInput) (req *request.Request, output *GetAccessKeyLastUsedOutput) {
  2286. op := &request.Operation{
  2287. Name: opGetAccessKeyLastUsed,
  2288. HTTPMethod: "POST",
  2289. HTTPPath: "/",
  2290. }
  2291. if input == nil {
  2292. input = &GetAccessKeyLastUsedInput{}
  2293. }
  2294. req = c.newRequest(op, input, output)
  2295. output = &GetAccessKeyLastUsedOutput{}
  2296. req.Data = output
  2297. return
  2298. }
  2299. // Retrieves information about when the specified access key was last used.
  2300. // The information includes the date and time of last use, along with the AWS
  2301. // service and region that were specified in the last request made with that
  2302. // key.
  2303. func (c *IAM) GetAccessKeyLastUsed(input *GetAccessKeyLastUsedInput) (*GetAccessKeyLastUsedOutput, error) {
  2304. req, out := c.GetAccessKeyLastUsedRequest(input)
  2305. err := req.Send()
  2306. return out, err
  2307. }
  2308. const opGetAccountAuthorizationDetails = "GetAccountAuthorizationDetails"
  2309. // GetAccountAuthorizationDetailsRequest generates a "aws/request.Request" representing the
  2310. // client's request for the GetAccountAuthorizationDetails operation. The "output" return
  2311. // value can be used to capture response data after the request's "Send" method
  2312. // is called.
  2313. //
  2314. // Creating a request object using this method should be used when you want to inject
  2315. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2316. // access properties on the request object before or after sending the request. If
  2317. // you just want the service response, call the GetAccountAuthorizationDetails method directly
  2318. // instead.
  2319. //
  2320. // Note: You must call the "Send" method on the returned request object in order
  2321. // to execute the request.
  2322. //
  2323. // // Example sending a request using the GetAccountAuthorizationDetailsRequest method.
  2324. // req, resp := client.GetAccountAuthorizationDetailsRequest(params)
  2325. //
  2326. // err := req.Send()
  2327. // if err == nil { // resp is now filled
  2328. // fmt.Println(resp)
  2329. // }
  2330. //
  2331. func (c *IAM) GetAccountAuthorizationDetailsRequest(input *GetAccountAuthorizationDetailsInput) (req *request.Request, output *GetAccountAuthorizationDetailsOutput) {
  2332. op := &request.Operation{
  2333. Name: opGetAccountAuthorizationDetails,
  2334. HTTPMethod: "POST",
  2335. HTTPPath: "/",
  2336. Paginator: &request.Paginator{
  2337. InputTokens: []string{"Marker"},
  2338. OutputTokens: []string{"Marker"},
  2339. LimitToken: "MaxItems",
  2340. TruncationToken: "IsTruncated",
  2341. },
  2342. }
  2343. if input == nil {
  2344. input = &GetAccountAuthorizationDetailsInput{}
  2345. }
  2346. req = c.newRequest(op, input, output)
  2347. output = &GetAccountAuthorizationDetailsOutput{}
  2348. req.Data = output
  2349. return
  2350. }
  2351. // Retrieves information about all IAM users, groups, roles, and policies in
  2352. // your AWS account, including their relationships to one another. Use this
  2353. // API to obtain a snapshot of the configuration of IAM permissions (users,
  2354. // groups, roles, and policies) in your account.
  2355. //
  2356. // You can optionally filter the results using the Filter parameter. You can
  2357. // paginate the results using the MaxItems and Marker parameters.
  2358. func (c *IAM) GetAccountAuthorizationDetails(input *GetAccountAuthorizationDetailsInput) (*GetAccountAuthorizationDetailsOutput, error) {
  2359. req, out := c.GetAccountAuthorizationDetailsRequest(input)
  2360. err := req.Send()
  2361. return out, err
  2362. }
  2363. // GetAccountAuthorizationDetailsPages iterates over the pages of a GetAccountAuthorizationDetails operation,
  2364. // calling the "fn" function with the response data for each page. To stop
  2365. // iterating, return false from the fn function.
  2366. //
  2367. // See GetAccountAuthorizationDetails method for more information on how to use this operation.
  2368. //
  2369. // Note: This operation can generate multiple requests to a service.
  2370. //
  2371. // // Example iterating over at most 3 pages of a GetAccountAuthorizationDetails operation.
  2372. // pageNum := 0
  2373. // err := client.GetAccountAuthorizationDetailsPages(params,
  2374. // func(page *GetAccountAuthorizationDetailsOutput, lastPage bool) bool {
  2375. // pageNum++
  2376. // fmt.Println(page)
  2377. // return pageNum <= 3
  2378. // })
  2379. //
  2380. func (c *IAM) GetAccountAuthorizationDetailsPages(input *GetAccountAuthorizationDetailsInput, fn func(p *GetAccountAuthorizationDetailsOutput, lastPage bool) (shouldContinue bool)) error {
  2381. page, _ := c.GetAccountAuthorizationDetailsRequest(input)
  2382. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  2383. return page.EachPage(func(p interface{}, lastPage bool) bool {
  2384. return fn(p.(*GetAccountAuthorizationDetailsOutput), lastPage)
  2385. })
  2386. }
  2387. const opGetAccountPasswordPolicy = "GetAccountPasswordPolicy"
  2388. // GetAccountPasswordPolicyRequest generates a "aws/request.Request" representing the
  2389. // client's request for the GetAccountPasswordPolicy operation. The "output" return
  2390. // value can be used to capture response data after the request's "Send" method
  2391. // is called.
  2392. //
  2393. // Creating a request object using this method should be used when you want to inject
  2394. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2395. // access properties on the request object before or after sending the request. If
  2396. // you just want the service response, call the GetAccountPasswordPolicy method directly
  2397. // instead.
  2398. //
  2399. // Note: You must call the "Send" method on the returned request object in order
  2400. // to execute the request.
  2401. //
  2402. // // Example sending a request using the GetAccountPasswordPolicyRequest method.
  2403. // req, resp := client.GetAccountPasswordPolicyRequest(params)
  2404. //
  2405. // err := req.Send()
  2406. // if err == nil { // resp is now filled
  2407. // fmt.Println(resp)
  2408. // }
  2409. //
  2410. func (c *IAM) GetAccountPasswordPolicyRequest(input *GetAccountPasswordPolicyInput) (req *request.Request, output *GetAccountPasswordPolicyOutput) {
  2411. op := &request.Operation{
  2412. Name: opGetAccountPasswordPolicy,
  2413. HTTPMethod: "POST",
  2414. HTTPPath: "/",
  2415. }
  2416. if input == nil {
  2417. input = &GetAccountPasswordPolicyInput{}
  2418. }
  2419. req = c.newRequest(op, input, output)
  2420. output = &GetAccountPasswordPolicyOutput{}
  2421. req.Data = output
  2422. return
  2423. }
  2424. // Retrieves the password policy for the AWS account. For more information about
  2425. // using a password policy, go to Managing an IAM Password Policy (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html).
  2426. func (c *IAM) GetAccountPasswordPolicy(input *GetAccountPasswordPolicyInput) (*GetAccountPasswordPolicyOutput, error) {
  2427. req, out := c.GetAccountPasswordPolicyRequest(input)
  2428. err := req.Send()
  2429. return out, err
  2430. }
  2431. const opGetAccountSummary = "GetAccountSummary"
  2432. // GetAccountSummaryRequest generates a "aws/request.Request" representing the
  2433. // client's request for the GetAccountSummary operation. The "output" return
  2434. // value can be used to capture response data after the request's "Send" method
  2435. // is called.
  2436. //
  2437. // Creating a request object using this method should be used when you want to inject
  2438. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2439. // access properties on the request object before or after sending the request. If
  2440. // you just want the service response, call the GetAccountSummary method directly
  2441. // instead.
  2442. //
  2443. // Note: You must call the "Send" method on the returned request object in order
  2444. // to execute the request.
  2445. //
  2446. // // Example sending a request using the GetAccountSummaryRequest method.
  2447. // req, resp := client.GetAccountSummaryRequest(params)
  2448. //
  2449. // err := req.Send()
  2450. // if err == nil { // resp is now filled
  2451. // fmt.Println(resp)
  2452. // }
  2453. //
  2454. func (c *IAM) GetAccountSummaryRequest(input *GetAccountSummaryInput) (req *request.Request, output *GetAccountSummaryOutput) {
  2455. op := &request.Operation{
  2456. Name: opGetAccountSummary,
  2457. HTTPMethod: "POST",
  2458. HTTPPath: "/",
  2459. }
  2460. if input == nil {
  2461. input = &GetAccountSummaryInput{}
  2462. }
  2463. req = c.newRequest(op, input, output)
  2464. output = &GetAccountSummaryOutput{}
  2465. req.Data = output
  2466. return
  2467. }
  2468. // Retrieves information about IAM entity usage and IAM quotas in the AWS account.
  2469. //
  2470. // For information about limitations on IAM entities, see Limitations on IAM
  2471. // Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
  2472. // in the IAM User Guide.
  2473. func (c *IAM) GetAccountSummary(input *GetAccountSummaryInput) (*GetAccountSummaryOutput, error) {
  2474. req, out := c.GetAccountSummaryRequest(input)
  2475. err := req.Send()
  2476. return out, err
  2477. }
  2478. const opGetContextKeysForCustomPolicy = "GetContextKeysForCustomPolicy"
  2479. // GetContextKeysForCustomPolicyRequest generates a "aws/request.Request" representing the
  2480. // client's request for the GetContextKeysForCustomPolicy operation. The "output" return
  2481. // value can be used to capture response data after the request's "Send" method
  2482. // is called.
  2483. //
  2484. // Creating a request object using this method should be used when you want to inject
  2485. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2486. // access properties on the request object before or after sending the request. If
  2487. // you just want the service response, call the GetContextKeysForCustomPolicy method directly
  2488. // instead.
  2489. //
  2490. // Note: You must call the "Send" method on the returned request object in order
  2491. // to execute the request.
  2492. //
  2493. // // Example sending a request using the GetContextKeysForCustomPolicyRequest method.
  2494. // req, resp := client.GetContextKeysForCustomPolicyRequest(params)
  2495. //
  2496. // err := req.Send()
  2497. // if err == nil { // resp is now filled
  2498. // fmt.Println(resp)
  2499. // }
  2500. //
  2501. func (c *IAM) GetContextKeysForCustomPolicyRequest(input *GetContextKeysForCustomPolicyInput) (req *request.Request, output *GetContextKeysForPolicyResponse) {
  2502. op := &request.Operation{
  2503. Name: opGetContextKeysForCustomPolicy,
  2504. HTTPMethod: "POST",
  2505. HTTPPath: "/",
  2506. }
  2507. if input == nil {
  2508. input = &GetContextKeysForCustomPolicyInput{}
  2509. }
  2510. req = c.newRequest(op, input, output)
  2511. output = &GetContextKeysForPolicyResponse{}
  2512. req.Data = output
  2513. return
  2514. }
  2515. // Gets a list of all of the context keys referenced in the input policies.
  2516. // The policies are supplied as a list of one or more strings. To get the context
  2517. // keys from policies associated with an IAM user, group, or role, use GetContextKeysForPrincipalPolicy.
  2518. //
  2519. // Context keys are variables maintained by AWS and its services that provide
  2520. // details about the context of an API query request, and can be evaluated by
  2521. // testing against a value specified in an IAM policy. Use GetContextKeysForCustomPolicy
  2522. // to understand what key names and values you must supply when you call SimulateCustomPolicy.
  2523. // Note that all parameters are shown in unencoded form here for clarity, but
  2524. // must be URL encoded to be included as a part of a real HTML request.
  2525. func (c *IAM) GetContextKeysForCustomPolicy(input *GetContextKeysForCustomPolicyInput) (*GetContextKeysForPolicyResponse, error) {
  2526. req, out := c.GetContextKeysForCustomPolicyRequest(input)
  2527. err := req.Send()
  2528. return out, err
  2529. }
  2530. const opGetContextKeysForPrincipalPolicy = "GetContextKeysForPrincipalPolicy"
  2531. // GetContextKeysForPrincipalPolicyRequest generates a "aws/request.Request" representing the
  2532. // client's request for the GetContextKeysForPrincipalPolicy operation. The "output" return
  2533. // value can be used to capture response data after the request's "Send" method
  2534. // is called.
  2535. //
  2536. // Creating a request object using this method should be used when you want to inject
  2537. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2538. // access properties on the request object before or after sending the request. If
  2539. // you just want the service response, call the GetContextKeysForPrincipalPolicy method directly
  2540. // instead.
  2541. //
  2542. // Note: You must call the "Send" method on the returned request object in order
  2543. // to execute the request.
  2544. //
  2545. // // Example sending a request using the GetContextKeysForPrincipalPolicyRequest method.
  2546. // req, resp := client.GetContextKeysForPrincipalPolicyRequest(params)
  2547. //
  2548. // err := req.Send()
  2549. // if err == nil { // resp is now filled
  2550. // fmt.Println(resp)
  2551. // }
  2552. //
  2553. func (c *IAM) GetContextKeysForPrincipalPolicyRequest(input *GetContextKeysForPrincipalPolicyInput) (req *request.Request, output *GetContextKeysForPolicyResponse) {
  2554. op := &request.Operation{
  2555. Name: opGetContextKeysForPrincipalPolicy,
  2556. HTTPMethod: "POST",
  2557. HTTPPath: "/",
  2558. }
  2559. if input == nil {
  2560. input = &GetContextKeysForPrincipalPolicyInput{}
  2561. }
  2562. req = c.newRequest(op, input, output)
  2563. output = &GetContextKeysForPolicyResponse{}
  2564. req.Data = output
  2565. return
  2566. }
  2567. // Gets a list of all of the context keys referenced in all of the IAM policies
  2568. // attached to the specified IAM entity. The entity can be an IAM user, group,
  2569. // or role. If you specify a user, then the request also includes all of the
  2570. // policies attached to groups that the user is a member of.
  2571. //
  2572. // You can optionally include a list of one or more additional policies, specified
  2573. // as strings. If you want to include only a list of policies by string, use
  2574. // GetContextKeysForCustomPolicy instead.
  2575. //
  2576. // Note: This API discloses information about the permissions granted to other
  2577. // users. If you do not want users to see other user's permissions, then consider
  2578. // allowing them to use GetContextKeysForCustomPolicy instead.
  2579. //
  2580. // Context keys are variables maintained by AWS and its services that provide
  2581. // details about the context of an API query request, and can be evaluated by
  2582. // testing against a value in an IAM policy. Use GetContextKeysForPrincipalPolicy
  2583. // to understand what key names and values you must supply when you call SimulatePrincipalPolicy.
  2584. func (c *IAM) GetContextKeysForPrincipalPolicy(input *GetContextKeysForPrincipalPolicyInput) (*GetContextKeysForPolicyResponse, error) {
  2585. req, out := c.GetContextKeysForPrincipalPolicyRequest(input)
  2586. err := req.Send()
  2587. return out, err
  2588. }
  2589. const opGetCredentialReport = "GetCredentialReport"
  2590. // GetCredentialReportRequest generates a "aws/request.Request" representing the
  2591. // client's request for the GetCredentialReport operation. The "output" return
  2592. // value can be used to capture response data after the request's "Send" method
  2593. // is called.
  2594. //
  2595. // Creating a request object using this method should be used when you want to inject
  2596. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2597. // access properties on the request object before or after sending the request. If
  2598. // you just want the service response, call the GetCredentialReport method directly
  2599. // instead.
  2600. //
  2601. // Note: You must call the "Send" method on the returned request object in order
  2602. // to execute the request.
  2603. //
  2604. // // Example sending a request using the GetCredentialReportRequest method.
  2605. // req, resp := client.GetCredentialReportRequest(params)
  2606. //
  2607. // err := req.Send()
  2608. // if err == nil { // resp is now filled
  2609. // fmt.Println(resp)
  2610. // }
  2611. //
  2612. func (c *IAM) GetCredentialReportRequest(input *GetCredentialReportInput) (req *request.Request, output *GetCredentialReportOutput) {
  2613. op := &request.Operation{
  2614. Name: opGetCredentialReport,
  2615. HTTPMethod: "POST",
  2616. HTTPPath: "/",
  2617. }
  2618. if input == nil {
  2619. input = &GetCredentialReportInput{}
  2620. }
  2621. req = c.newRequest(op, input, output)
  2622. output = &GetCredentialReportOutput{}
  2623. req.Data = output
  2624. return
  2625. }
  2626. // Retrieves a credential report for the AWS account. For more information about
  2627. // the credential report, see Getting Credential Reports (http://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html)
  2628. // in the IAM User Guide.
  2629. func (c *IAM) GetCredentialReport(input *GetCredentialReportInput) (*GetCredentialReportOutput, error) {
  2630. req, out := c.GetCredentialReportRequest(input)
  2631. err := req.Send()
  2632. return out, err
  2633. }
  2634. const opGetGroup = "GetGroup"
  2635. // GetGroupRequest generates a "aws/request.Request" representing the
  2636. // client's request for the GetGroup operation. The "output" return
  2637. // value can be used to capture response data after the request's "Send" method
  2638. // is called.
  2639. //
  2640. // Creating a request object using this method should be used when you want to inject
  2641. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2642. // access properties on the request object before or after sending the request. If
  2643. // you just want the service response, call the GetGroup method directly
  2644. // instead.
  2645. //
  2646. // Note: You must call the "Send" method on the returned request object in order
  2647. // to execute the request.
  2648. //
  2649. // // Example sending a request using the GetGroupRequest method.
  2650. // req, resp := client.GetGroupRequest(params)
  2651. //
  2652. // err := req.Send()
  2653. // if err == nil { // resp is now filled
  2654. // fmt.Println(resp)
  2655. // }
  2656. //
  2657. func (c *IAM) GetGroupRequest(input *GetGroupInput) (req *request.Request, output *GetGroupOutput) {
  2658. op := &request.Operation{
  2659. Name: opGetGroup,
  2660. HTTPMethod: "POST",
  2661. HTTPPath: "/",
  2662. Paginator: &request.Paginator{
  2663. InputTokens: []string{"Marker"},
  2664. OutputTokens: []string{"Marker"},
  2665. LimitToken: "MaxItems",
  2666. TruncationToken: "IsTruncated",
  2667. },
  2668. }
  2669. if input == nil {
  2670. input = &GetGroupInput{}
  2671. }
  2672. req = c.newRequest(op, input, output)
  2673. output = &GetGroupOutput{}
  2674. req.Data = output
  2675. return
  2676. }
  2677. // Returns a list of IAM users that are in the specified IAM group. You can
  2678. // paginate the results using the MaxItems and Marker parameters.
  2679. func (c *IAM) GetGroup(input *GetGroupInput) (*GetGroupOutput, error) {
  2680. req, out := c.GetGroupRequest(input)
  2681. err := req.Send()
  2682. return out, err
  2683. }
  2684. // GetGroupPages iterates over the pages of a GetGroup operation,
  2685. // calling the "fn" function with the response data for each page. To stop
  2686. // iterating, return false from the fn function.
  2687. //
  2688. // See GetGroup method for more information on how to use this operation.
  2689. //
  2690. // Note: This operation can generate multiple requests to a service.
  2691. //
  2692. // // Example iterating over at most 3 pages of a GetGroup operation.
  2693. // pageNum := 0
  2694. // err := client.GetGroupPages(params,
  2695. // func(page *GetGroupOutput, lastPage bool) bool {
  2696. // pageNum++
  2697. // fmt.Println(page)
  2698. // return pageNum <= 3
  2699. // })
  2700. //
  2701. func (c *IAM) GetGroupPages(input *GetGroupInput, fn func(p *GetGroupOutput, lastPage bool) (shouldContinue bool)) error {
  2702. page, _ := c.GetGroupRequest(input)
  2703. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  2704. return page.EachPage(func(p interface{}, lastPage bool) bool {
  2705. return fn(p.(*GetGroupOutput), lastPage)
  2706. })
  2707. }
  2708. const opGetGroupPolicy = "GetGroupPolicy"
  2709. // GetGroupPolicyRequest generates a "aws/request.Request" representing the
  2710. // client's request for the GetGroupPolicy operation. The "output" return
  2711. // value can be used to capture response data after the request's "Send" method
  2712. // is called.
  2713. //
  2714. // Creating a request object using this method should be used when you want to inject
  2715. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2716. // access properties on the request object before or after sending the request. If
  2717. // you just want the service response, call the GetGroupPolicy method directly
  2718. // instead.
  2719. //
  2720. // Note: You must call the "Send" method on the returned request object in order
  2721. // to execute the request.
  2722. //
  2723. // // Example sending a request using the GetGroupPolicyRequest method.
  2724. // req, resp := client.GetGroupPolicyRequest(params)
  2725. //
  2726. // err := req.Send()
  2727. // if err == nil { // resp is now filled
  2728. // fmt.Println(resp)
  2729. // }
  2730. //
  2731. func (c *IAM) GetGroupPolicyRequest(input *GetGroupPolicyInput) (req *request.Request, output *GetGroupPolicyOutput) {
  2732. op := &request.Operation{
  2733. Name: opGetGroupPolicy,
  2734. HTTPMethod: "POST",
  2735. HTTPPath: "/",
  2736. }
  2737. if input == nil {
  2738. input = &GetGroupPolicyInput{}
  2739. }
  2740. req = c.newRequest(op, input, output)
  2741. output = &GetGroupPolicyOutput{}
  2742. req.Data = output
  2743. return
  2744. }
  2745. // Retrieves the specified inline policy document that is embedded in the specified
  2746. // IAM group.
  2747. //
  2748. // Policies returned by this API are URL-encoded compliant with RFC 3986 (https://tools.ietf.org/html/rfc3986).
  2749. // You can use a URL decoding method to convert the policy back to plain JSON
  2750. // text. For example, if you use Java, you can use the decode method of the
  2751. // java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
  2752. // provide similar functionality.
  2753. //
  2754. // An IAM group can also have managed policies attached to it. To retrieve
  2755. // a managed policy document that is attached to a group, use GetPolicy to determine
  2756. // the policy's default version, then use GetPolicyVersion to retrieve the policy
  2757. // document.
  2758. //
  2759. // For more information about policies, see Managed Policies and Inline Policies
  2760. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  2761. // in the IAM User Guide.
  2762. func (c *IAM) GetGroupPolicy(input *GetGroupPolicyInput) (*GetGroupPolicyOutput, error) {
  2763. req, out := c.GetGroupPolicyRequest(input)
  2764. err := req.Send()
  2765. return out, err
  2766. }
  2767. const opGetInstanceProfile = "GetInstanceProfile"
  2768. // GetInstanceProfileRequest generates a "aws/request.Request" representing the
  2769. // client's request for the GetInstanceProfile operation. The "output" return
  2770. // value can be used to capture response data after the request's "Send" method
  2771. // is called.
  2772. //
  2773. // Creating a request object using this method should be used when you want to inject
  2774. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2775. // access properties on the request object before or after sending the request. If
  2776. // you just want the service response, call the GetInstanceProfile method directly
  2777. // instead.
  2778. //
  2779. // Note: You must call the "Send" method on the returned request object in order
  2780. // to execute the request.
  2781. //
  2782. // // Example sending a request using the GetInstanceProfileRequest method.
  2783. // req, resp := client.GetInstanceProfileRequest(params)
  2784. //
  2785. // err := req.Send()
  2786. // if err == nil { // resp is now filled
  2787. // fmt.Println(resp)
  2788. // }
  2789. //
  2790. func (c *IAM) GetInstanceProfileRequest(input *GetInstanceProfileInput) (req *request.Request, output *GetInstanceProfileOutput) {
  2791. op := &request.Operation{
  2792. Name: opGetInstanceProfile,
  2793. HTTPMethod: "POST",
  2794. HTTPPath: "/",
  2795. }
  2796. if input == nil {
  2797. input = &GetInstanceProfileInput{}
  2798. }
  2799. req = c.newRequest(op, input, output)
  2800. output = &GetInstanceProfileOutput{}
  2801. req.Data = output
  2802. return
  2803. }
  2804. // Retrieves information about the specified instance profile, including the
  2805. // instance profile's path, GUID, ARN, and role. For more information about
  2806. // instance profiles, see About Instance Profiles (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html)
  2807. // in the IAM User Guide.
  2808. func (c *IAM) GetInstanceProfile(input *GetInstanceProfileInput) (*GetInstanceProfileOutput, error) {
  2809. req, out := c.GetInstanceProfileRequest(input)
  2810. err := req.Send()
  2811. return out, err
  2812. }
  2813. const opGetLoginProfile = "GetLoginProfile"
  2814. // GetLoginProfileRequest generates a "aws/request.Request" representing the
  2815. // client's request for the GetLoginProfile operation. The "output" return
  2816. // value can be used to capture response data after the request's "Send" method
  2817. // is called.
  2818. //
  2819. // Creating a request object using this method should be used when you want to inject
  2820. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2821. // access properties on the request object before or after sending the request. If
  2822. // you just want the service response, call the GetLoginProfile method directly
  2823. // instead.
  2824. //
  2825. // Note: You must call the "Send" method on the returned request object in order
  2826. // to execute the request.
  2827. //
  2828. // // Example sending a request using the GetLoginProfileRequest method.
  2829. // req, resp := client.GetLoginProfileRequest(params)
  2830. //
  2831. // err := req.Send()
  2832. // if err == nil { // resp is now filled
  2833. // fmt.Println(resp)
  2834. // }
  2835. //
  2836. func (c *IAM) GetLoginProfileRequest(input *GetLoginProfileInput) (req *request.Request, output *GetLoginProfileOutput) {
  2837. op := &request.Operation{
  2838. Name: opGetLoginProfile,
  2839. HTTPMethod: "POST",
  2840. HTTPPath: "/",
  2841. }
  2842. if input == nil {
  2843. input = &GetLoginProfileInput{}
  2844. }
  2845. req = c.newRequest(op, input, output)
  2846. output = &GetLoginProfileOutput{}
  2847. req.Data = output
  2848. return
  2849. }
  2850. // Retrieves the user name and password-creation date for the specified IAM
  2851. // user. If the user has not been assigned a password, the action returns a
  2852. // 404 (NoSuchEntity) error.
  2853. func (c *IAM) GetLoginProfile(input *GetLoginProfileInput) (*GetLoginProfileOutput, error) {
  2854. req, out := c.GetLoginProfileRequest(input)
  2855. err := req.Send()
  2856. return out, err
  2857. }
  2858. const opGetOpenIDConnectProvider = "GetOpenIDConnectProvider"
  2859. // GetOpenIDConnectProviderRequest generates a "aws/request.Request" representing the
  2860. // client's request for the GetOpenIDConnectProvider operation. The "output" return
  2861. // value can be used to capture response data after the request's "Send" method
  2862. // is called.
  2863. //
  2864. // Creating a request object using this method should be used when you want to inject
  2865. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2866. // access properties on the request object before or after sending the request. If
  2867. // you just want the service response, call the GetOpenIDConnectProvider method directly
  2868. // instead.
  2869. //
  2870. // Note: You must call the "Send" method on the returned request object in order
  2871. // to execute the request.
  2872. //
  2873. // // Example sending a request using the GetOpenIDConnectProviderRequest method.
  2874. // req, resp := client.GetOpenIDConnectProviderRequest(params)
  2875. //
  2876. // err := req.Send()
  2877. // if err == nil { // resp is now filled
  2878. // fmt.Println(resp)
  2879. // }
  2880. //
  2881. func (c *IAM) GetOpenIDConnectProviderRequest(input *GetOpenIDConnectProviderInput) (req *request.Request, output *GetOpenIDConnectProviderOutput) {
  2882. op := &request.Operation{
  2883. Name: opGetOpenIDConnectProvider,
  2884. HTTPMethod: "POST",
  2885. HTTPPath: "/",
  2886. }
  2887. if input == nil {
  2888. input = &GetOpenIDConnectProviderInput{}
  2889. }
  2890. req = c.newRequest(op, input, output)
  2891. output = &GetOpenIDConnectProviderOutput{}
  2892. req.Data = output
  2893. return
  2894. }
  2895. // Returns information about the specified OpenID Connect (OIDC) provider resource
  2896. // object in IAM.
  2897. func (c *IAM) GetOpenIDConnectProvider(input *GetOpenIDConnectProviderInput) (*GetOpenIDConnectProviderOutput, error) {
  2898. req, out := c.GetOpenIDConnectProviderRequest(input)
  2899. err := req.Send()
  2900. return out, err
  2901. }
  2902. const opGetPolicy = "GetPolicy"
  2903. // GetPolicyRequest generates a "aws/request.Request" representing the
  2904. // client's request for the GetPolicy operation. The "output" return
  2905. // value can be used to capture response data after the request's "Send" method
  2906. // is called.
  2907. //
  2908. // Creating a request object using this method should be used when you want to inject
  2909. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2910. // access properties on the request object before or after sending the request. If
  2911. // you just want the service response, call the GetPolicy method directly
  2912. // instead.
  2913. //
  2914. // Note: You must call the "Send" method on the returned request object in order
  2915. // to execute the request.
  2916. //
  2917. // // Example sending a request using the GetPolicyRequest method.
  2918. // req, resp := client.GetPolicyRequest(params)
  2919. //
  2920. // err := req.Send()
  2921. // if err == nil { // resp is now filled
  2922. // fmt.Println(resp)
  2923. // }
  2924. //
  2925. func (c *IAM) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
  2926. op := &request.Operation{
  2927. Name: opGetPolicy,
  2928. HTTPMethod: "POST",
  2929. HTTPPath: "/",
  2930. }
  2931. if input == nil {
  2932. input = &GetPolicyInput{}
  2933. }
  2934. req = c.newRequest(op, input, output)
  2935. output = &GetPolicyOutput{}
  2936. req.Data = output
  2937. return
  2938. }
  2939. // Retrieves information about the specified managed policy, including the policy's
  2940. // default version and the total number of IAM users, groups, and roles to which
  2941. // the policy is attached. To retrieve the list of the specific users, groups,
  2942. // and roles that the policy is attached to, use the ListEntitiesForPolicy API.
  2943. // This API returns metadata about the policy. To retrieve the actual policy
  2944. // document for a specific version of the policy, use GetPolicyVersion.
  2945. //
  2946. // This API retrieves information about managed policies. To retrieve information
  2947. // about an inline policy that is embedded with an IAM user, group, or role,
  2948. // use the GetUserPolicy, GetGroupPolicy, or GetRolePolicy API.
  2949. //
  2950. // For more information about policies, see Managed Policies and Inline Policies
  2951. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  2952. // in the IAM User Guide.
  2953. func (c *IAM) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
  2954. req, out := c.GetPolicyRequest(input)
  2955. err := req.Send()
  2956. return out, err
  2957. }
  2958. const opGetPolicyVersion = "GetPolicyVersion"
  2959. // GetPolicyVersionRequest generates a "aws/request.Request" representing the
  2960. // client's request for the GetPolicyVersion operation. The "output" return
  2961. // value can be used to capture response data after the request's "Send" method
  2962. // is called.
  2963. //
  2964. // Creating a request object using this method should be used when you want to inject
  2965. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2966. // access properties on the request object before or after sending the request. If
  2967. // you just want the service response, call the GetPolicyVersion method directly
  2968. // instead.
  2969. //
  2970. // Note: You must call the "Send" method on the returned request object in order
  2971. // to execute the request.
  2972. //
  2973. // // Example sending a request using the GetPolicyVersionRequest method.
  2974. // req, resp := client.GetPolicyVersionRequest(params)
  2975. //
  2976. // err := req.Send()
  2977. // if err == nil { // resp is now filled
  2978. // fmt.Println(resp)
  2979. // }
  2980. //
  2981. func (c *IAM) GetPolicyVersionRequest(input *GetPolicyVersionInput) (req *request.Request, output *GetPolicyVersionOutput) {
  2982. op := &request.Operation{
  2983. Name: opGetPolicyVersion,
  2984. HTTPMethod: "POST",
  2985. HTTPPath: "/",
  2986. }
  2987. if input == nil {
  2988. input = &GetPolicyVersionInput{}
  2989. }
  2990. req = c.newRequest(op, input, output)
  2991. output = &GetPolicyVersionOutput{}
  2992. req.Data = output
  2993. return
  2994. }
  2995. // Retrieves information about the specified version of the specified managed
  2996. // policy, including the policy document.
  2997. //
  2998. // Policies returned by this API are URL-encoded compliant with RFC 3986 (https://tools.ietf.org/html/rfc3986).
  2999. // You can use a URL decoding method to convert the policy back to plain JSON
  3000. // text. For example, if you use Java, you can use the decode method of the
  3001. // java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
  3002. // provide similar functionality.
  3003. //
  3004. // To list the available versions for a policy, use ListPolicyVersions.
  3005. //
  3006. // This API retrieves information about managed policies. To retrieve information
  3007. // about an inline policy that is embedded in a user, group, or role, use the
  3008. // GetUserPolicy, GetGroupPolicy, or GetRolePolicy API.
  3009. //
  3010. // For more information about the types of policies, see Managed Policies and
  3011. // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  3012. // in the IAM User Guide.
  3013. //
  3014. // For more information about managed policy versions, see Versioning for Managed
  3015. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
  3016. // in the IAM User Guide.
  3017. func (c *IAM) GetPolicyVersion(input *GetPolicyVersionInput) (*GetPolicyVersionOutput, error) {
  3018. req, out := c.GetPolicyVersionRequest(input)
  3019. err := req.Send()
  3020. return out, err
  3021. }
  3022. const opGetRole = "GetRole"
  3023. // GetRoleRequest generates a "aws/request.Request" representing the
  3024. // client's request for the GetRole operation. The "output" return
  3025. // value can be used to capture response data after the request's "Send" method
  3026. // is called.
  3027. //
  3028. // Creating a request object using this method should be used when you want to inject
  3029. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3030. // access properties on the request object before or after sending the request. If
  3031. // you just want the service response, call the GetRole method directly
  3032. // instead.
  3033. //
  3034. // Note: You must call the "Send" method on the returned request object in order
  3035. // to execute the request.
  3036. //
  3037. // // Example sending a request using the GetRoleRequest method.
  3038. // req, resp := client.GetRoleRequest(params)
  3039. //
  3040. // err := req.Send()
  3041. // if err == nil { // resp is now filled
  3042. // fmt.Println(resp)
  3043. // }
  3044. //
  3045. func (c *IAM) GetRoleRequest(input *GetRoleInput) (req *request.Request, output *GetRoleOutput) {
  3046. op := &request.Operation{
  3047. Name: opGetRole,
  3048. HTTPMethod: "POST",
  3049. HTTPPath: "/",
  3050. }
  3051. if input == nil {
  3052. input = &GetRoleInput{}
  3053. }
  3054. req = c.newRequest(op, input, output)
  3055. output = &GetRoleOutput{}
  3056. req.Data = output
  3057. return
  3058. }
  3059. // Retrieves information about the specified role, including the role's path,
  3060. // GUID, ARN, and the role's trust policy that grants permission to assume the
  3061. // role. For more information about roles, see Working with Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html).
  3062. //
  3063. // Policies returned by this API are URL-encoded compliant with RFC 3986 (https://tools.ietf.org/html/rfc3986).
  3064. // You can use a URL decoding method to convert the policy back to plain JSON
  3065. // text. For example, if you use Java, you can use the decode method of the
  3066. // java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
  3067. // provide similar functionality.
  3068. func (c *IAM) GetRole(input *GetRoleInput) (*GetRoleOutput, error) {
  3069. req, out := c.GetRoleRequest(input)
  3070. err := req.Send()
  3071. return out, err
  3072. }
  3073. const opGetRolePolicy = "GetRolePolicy"
  3074. // GetRolePolicyRequest generates a "aws/request.Request" representing the
  3075. // client's request for the GetRolePolicy operation. The "output" return
  3076. // value can be used to capture response data after the request's "Send" method
  3077. // is called.
  3078. //
  3079. // Creating a request object using this method should be used when you want to inject
  3080. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3081. // access properties on the request object before or after sending the request. If
  3082. // you just want the service response, call the GetRolePolicy method directly
  3083. // instead.
  3084. //
  3085. // Note: You must call the "Send" method on the returned request object in order
  3086. // to execute the request.
  3087. //
  3088. // // Example sending a request using the GetRolePolicyRequest method.
  3089. // req, resp := client.GetRolePolicyRequest(params)
  3090. //
  3091. // err := req.Send()
  3092. // if err == nil { // resp is now filled
  3093. // fmt.Println(resp)
  3094. // }
  3095. //
  3096. func (c *IAM) GetRolePolicyRequest(input *GetRolePolicyInput) (req *request.Request, output *GetRolePolicyOutput) {
  3097. op := &request.Operation{
  3098. Name: opGetRolePolicy,
  3099. HTTPMethod: "POST",
  3100. HTTPPath: "/",
  3101. }
  3102. if input == nil {
  3103. input = &GetRolePolicyInput{}
  3104. }
  3105. req = c.newRequest(op, input, output)
  3106. output = &GetRolePolicyOutput{}
  3107. req.Data = output
  3108. return
  3109. }
  3110. // Retrieves the specified inline policy document that is embedded with the
  3111. // specified IAM role.
  3112. //
  3113. // Policies returned by this API are URL-encoded compliant with RFC 3986 (https://tools.ietf.org/html/rfc3986).
  3114. // You can use a URL decoding method to convert the policy back to plain JSON
  3115. // text. For example, if you use Java, you can use the decode method of the
  3116. // java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
  3117. // provide similar functionality.
  3118. //
  3119. // An IAM role can also have managed policies attached to it. To retrieve
  3120. // a managed policy document that is attached to a role, use GetPolicy to determine
  3121. // the policy's default version, then use GetPolicyVersion to retrieve the policy
  3122. // document.
  3123. //
  3124. // For more information about policies, see Managed Policies and Inline Policies
  3125. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  3126. // in the IAM User Guide.
  3127. //
  3128. // For more information about roles, see Using Roles to Delegate Permissions
  3129. // and Federate Identities (http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html).
  3130. func (c *IAM) GetRolePolicy(input *GetRolePolicyInput) (*GetRolePolicyOutput, error) {
  3131. req, out := c.GetRolePolicyRequest(input)
  3132. err := req.Send()
  3133. return out, err
  3134. }
  3135. const opGetSAMLProvider = "GetSAMLProvider"
  3136. // GetSAMLProviderRequest generates a "aws/request.Request" representing the
  3137. // client's request for the GetSAMLProvider operation. The "output" return
  3138. // value can be used to capture response data after the request's "Send" method
  3139. // is called.
  3140. //
  3141. // Creating a request object using this method should be used when you want to inject
  3142. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3143. // access properties on the request object before or after sending the request. If
  3144. // you just want the service response, call the GetSAMLProvider method directly
  3145. // instead.
  3146. //
  3147. // Note: You must call the "Send" method on the returned request object in order
  3148. // to execute the request.
  3149. //
  3150. // // Example sending a request using the GetSAMLProviderRequest method.
  3151. // req, resp := client.GetSAMLProviderRequest(params)
  3152. //
  3153. // err := req.Send()
  3154. // if err == nil { // resp is now filled
  3155. // fmt.Println(resp)
  3156. // }
  3157. //
  3158. func (c *IAM) GetSAMLProviderRequest(input *GetSAMLProviderInput) (req *request.Request, output *GetSAMLProviderOutput) {
  3159. op := &request.Operation{
  3160. Name: opGetSAMLProvider,
  3161. HTTPMethod: "POST",
  3162. HTTPPath: "/",
  3163. }
  3164. if input == nil {
  3165. input = &GetSAMLProviderInput{}
  3166. }
  3167. req = c.newRequest(op, input, output)
  3168. output = &GetSAMLProviderOutput{}
  3169. req.Data = output
  3170. return
  3171. }
  3172. // Returns the SAML provider metadocument that was uploaded when the IAM SAML
  3173. // provider resource object was created or updated.
  3174. //
  3175. // This operation requires Signature Version 4 (http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
  3176. func (c *IAM) GetSAMLProvider(input *GetSAMLProviderInput) (*GetSAMLProviderOutput, error) {
  3177. req, out := c.GetSAMLProviderRequest(input)
  3178. err := req.Send()
  3179. return out, err
  3180. }
  3181. const opGetSSHPublicKey = "GetSSHPublicKey"
  3182. // GetSSHPublicKeyRequest generates a "aws/request.Request" representing the
  3183. // client's request for the GetSSHPublicKey operation. The "output" return
  3184. // value can be used to capture response data after the request's "Send" method
  3185. // is called.
  3186. //
  3187. // Creating a request object using this method should be used when you want to inject
  3188. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3189. // access properties on the request object before or after sending the request. If
  3190. // you just want the service response, call the GetSSHPublicKey method directly
  3191. // instead.
  3192. //
  3193. // Note: You must call the "Send" method on the returned request object in order
  3194. // to execute the request.
  3195. //
  3196. // // Example sending a request using the GetSSHPublicKeyRequest method.
  3197. // req, resp := client.GetSSHPublicKeyRequest(params)
  3198. //
  3199. // err := req.Send()
  3200. // if err == nil { // resp is now filled
  3201. // fmt.Println(resp)
  3202. // }
  3203. //
  3204. func (c *IAM) GetSSHPublicKeyRequest(input *GetSSHPublicKeyInput) (req *request.Request, output *GetSSHPublicKeyOutput) {
  3205. op := &request.Operation{
  3206. Name: opGetSSHPublicKey,
  3207. HTTPMethod: "POST",
  3208. HTTPPath: "/",
  3209. }
  3210. if input == nil {
  3211. input = &GetSSHPublicKeyInput{}
  3212. }
  3213. req = c.newRequest(op, input, output)
  3214. output = &GetSSHPublicKeyOutput{}
  3215. req.Data = output
  3216. return
  3217. }
  3218. // Retrieves the specified SSH public key, including metadata about the key.
  3219. //
  3220. // The SSH public key retrieved by this action is used only for authenticating
  3221. // the associated IAM user to an AWS CodeCommit repository. For more information
  3222. // about using SSH keys to authenticate to an AWS CodeCommit repository, see
  3223. // Set up AWS CodeCommit for SSH Connections (http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html)
  3224. // in the AWS CodeCommit User Guide.
  3225. func (c *IAM) GetSSHPublicKey(input *GetSSHPublicKeyInput) (*GetSSHPublicKeyOutput, error) {
  3226. req, out := c.GetSSHPublicKeyRequest(input)
  3227. err := req.Send()
  3228. return out, err
  3229. }
  3230. const opGetServerCertificate = "GetServerCertificate"
  3231. // GetServerCertificateRequest generates a "aws/request.Request" representing the
  3232. // client's request for the GetServerCertificate operation. The "output" return
  3233. // value can be used to capture response data after the request's "Send" method
  3234. // is called.
  3235. //
  3236. // Creating a request object using this method should be used when you want to inject
  3237. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3238. // access properties on the request object before or after sending the request. If
  3239. // you just want the service response, call the GetServerCertificate method directly
  3240. // instead.
  3241. //
  3242. // Note: You must call the "Send" method on the returned request object in order
  3243. // to execute the request.
  3244. //
  3245. // // Example sending a request using the GetServerCertificateRequest method.
  3246. // req, resp := client.GetServerCertificateRequest(params)
  3247. //
  3248. // err := req.Send()
  3249. // if err == nil { // resp is now filled
  3250. // fmt.Println(resp)
  3251. // }
  3252. //
  3253. func (c *IAM) GetServerCertificateRequest(input *GetServerCertificateInput) (req *request.Request, output *GetServerCertificateOutput) {
  3254. op := &request.Operation{
  3255. Name: opGetServerCertificate,
  3256. HTTPMethod: "POST",
  3257. HTTPPath: "/",
  3258. }
  3259. if input == nil {
  3260. input = &GetServerCertificateInput{}
  3261. }
  3262. req = c.newRequest(op, input, output)
  3263. output = &GetServerCertificateOutput{}
  3264. req.Data = output
  3265. return
  3266. }
  3267. // Retrieves information about the specified server certificate stored in IAM.
  3268. //
  3269. // For more information about working with server certificates, including a
  3270. // list of AWS services that can use the server certificates that you manage
  3271. // with IAM, go to Working with Server Certificates (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)
  3272. // in the IAM User Guide.
  3273. func (c *IAM) GetServerCertificate(input *GetServerCertificateInput) (*GetServerCertificateOutput, error) {
  3274. req, out := c.GetServerCertificateRequest(input)
  3275. err := req.Send()
  3276. return out, err
  3277. }
  3278. const opGetUser = "GetUser"
  3279. // GetUserRequest generates a "aws/request.Request" representing the
  3280. // client's request for the GetUser operation. The "output" return
  3281. // value can be used to capture response data after the request's "Send" method
  3282. // is called.
  3283. //
  3284. // Creating a request object using this method should be used when you want to inject
  3285. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3286. // access properties on the request object before or after sending the request. If
  3287. // you just want the service response, call the GetUser method directly
  3288. // instead.
  3289. //
  3290. // Note: You must call the "Send" method on the returned request object in order
  3291. // to execute the request.
  3292. //
  3293. // // Example sending a request using the GetUserRequest method.
  3294. // req, resp := client.GetUserRequest(params)
  3295. //
  3296. // err := req.Send()
  3297. // if err == nil { // resp is now filled
  3298. // fmt.Println(resp)
  3299. // }
  3300. //
  3301. func (c *IAM) GetUserRequest(input *GetUserInput) (req *request.Request, output *GetUserOutput) {
  3302. op := &request.Operation{
  3303. Name: opGetUser,
  3304. HTTPMethod: "POST",
  3305. HTTPPath: "/",
  3306. }
  3307. if input == nil {
  3308. input = &GetUserInput{}
  3309. }
  3310. req = c.newRequest(op, input, output)
  3311. output = &GetUserOutput{}
  3312. req.Data = output
  3313. return
  3314. }
  3315. // Retrieves information about the specified IAM user, including the user's
  3316. // creation date, path, unique ID, and ARN.
  3317. //
  3318. // If you do not specify a user name, IAM determines the user name implicitly
  3319. // based on the AWS access key ID used to sign the request to this API.
  3320. func (c *IAM) GetUser(input *GetUserInput) (*GetUserOutput, error) {
  3321. req, out := c.GetUserRequest(input)
  3322. err := req.Send()
  3323. return out, err
  3324. }
  3325. const opGetUserPolicy = "GetUserPolicy"
  3326. // GetUserPolicyRequest generates a "aws/request.Request" representing the
  3327. // client's request for the GetUserPolicy operation. The "output" return
  3328. // value can be used to capture response data after the request's "Send" method
  3329. // is called.
  3330. //
  3331. // Creating a request object using this method should be used when you want to inject
  3332. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3333. // access properties on the request object before or after sending the request. If
  3334. // you just want the service response, call the GetUserPolicy method directly
  3335. // instead.
  3336. //
  3337. // Note: You must call the "Send" method on the returned request object in order
  3338. // to execute the request.
  3339. //
  3340. // // Example sending a request using the GetUserPolicyRequest method.
  3341. // req, resp := client.GetUserPolicyRequest(params)
  3342. //
  3343. // err := req.Send()
  3344. // if err == nil { // resp is now filled
  3345. // fmt.Println(resp)
  3346. // }
  3347. //
  3348. func (c *IAM) GetUserPolicyRequest(input *GetUserPolicyInput) (req *request.Request, output *GetUserPolicyOutput) {
  3349. op := &request.Operation{
  3350. Name: opGetUserPolicy,
  3351. HTTPMethod: "POST",
  3352. HTTPPath: "/",
  3353. }
  3354. if input == nil {
  3355. input = &GetUserPolicyInput{}
  3356. }
  3357. req = c.newRequest(op, input, output)
  3358. output = &GetUserPolicyOutput{}
  3359. req.Data = output
  3360. return
  3361. }
  3362. // Retrieves the specified inline policy document that is embedded in the specified
  3363. // IAM user.
  3364. //
  3365. // Policies returned by this API are URL-encoded compliant with RFC 3986 (https://tools.ietf.org/html/rfc3986).
  3366. // You can use a URL decoding method to convert the policy back to plain JSON
  3367. // text. For example, if you use Java, you can use the decode method of the
  3368. // java.net.URLDecoder utility class in the Java SDK. Other languages and SDKs
  3369. // provide similar functionality.
  3370. //
  3371. // An IAM user can also have managed policies attached to it. To retrieve
  3372. // a managed policy document that is attached to a user, use GetPolicy to determine
  3373. // the policy's default version, then use GetPolicyVersion to retrieve the policy
  3374. // document.
  3375. //
  3376. // For more information about policies, see Managed Policies and Inline Policies
  3377. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  3378. // in the IAM User Guide.
  3379. func (c *IAM) GetUserPolicy(input *GetUserPolicyInput) (*GetUserPolicyOutput, error) {
  3380. req, out := c.GetUserPolicyRequest(input)
  3381. err := req.Send()
  3382. return out, err
  3383. }
  3384. const opListAccessKeys = "ListAccessKeys"
  3385. // ListAccessKeysRequest generates a "aws/request.Request" representing the
  3386. // client's request for the ListAccessKeys operation. The "output" return
  3387. // value can be used to capture response data after the request's "Send" method
  3388. // is called.
  3389. //
  3390. // Creating a request object using this method should be used when you want to inject
  3391. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3392. // access properties on the request object before or after sending the request. If
  3393. // you just want the service response, call the ListAccessKeys method directly
  3394. // instead.
  3395. //
  3396. // Note: You must call the "Send" method on the returned request object in order
  3397. // to execute the request.
  3398. //
  3399. // // Example sending a request using the ListAccessKeysRequest method.
  3400. // req, resp := client.ListAccessKeysRequest(params)
  3401. //
  3402. // err := req.Send()
  3403. // if err == nil { // resp is now filled
  3404. // fmt.Println(resp)
  3405. // }
  3406. //
  3407. func (c *IAM) ListAccessKeysRequest(input *ListAccessKeysInput) (req *request.Request, output *ListAccessKeysOutput) {
  3408. op := &request.Operation{
  3409. Name: opListAccessKeys,
  3410. HTTPMethod: "POST",
  3411. HTTPPath: "/",
  3412. Paginator: &request.Paginator{
  3413. InputTokens: []string{"Marker"},
  3414. OutputTokens: []string{"Marker"},
  3415. LimitToken: "MaxItems",
  3416. TruncationToken: "IsTruncated",
  3417. },
  3418. }
  3419. if input == nil {
  3420. input = &ListAccessKeysInput{}
  3421. }
  3422. req = c.newRequest(op, input, output)
  3423. output = &ListAccessKeysOutput{}
  3424. req.Data = output
  3425. return
  3426. }
  3427. // Returns information about the access key IDs associated with the specified
  3428. // IAM user. If there are none, the action returns an empty list.
  3429. //
  3430. // Although each user is limited to a small number of keys, you can still paginate
  3431. // the results using the MaxItems and Marker parameters.
  3432. //
  3433. // If the UserName field is not specified, the UserName is determined implicitly
  3434. // based on the AWS access key ID used to sign the request. Because this action
  3435. // works for access keys under the AWS account, you can use this action to manage
  3436. // root credentials even if the AWS account has no associated users.
  3437. //
  3438. // To ensure the security of your AWS account, the secret access key is accessible
  3439. // only during key and user creation.
  3440. func (c *IAM) ListAccessKeys(input *ListAccessKeysInput) (*ListAccessKeysOutput, error) {
  3441. req, out := c.ListAccessKeysRequest(input)
  3442. err := req.Send()
  3443. return out, err
  3444. }
  3445. // ListAccessKeysPages iterates over the pages of a ListAccessKeys operation,
  3446. // calling the "fn" function with the response data for each page. To stop
  3447. // iterating, return false from the fn function.
  3448. //
  3449. // See ListAccessKeys method for more information on how to use this operation.
  3450. //
  3451. // Note: This operation can generate multiple requests to a service.
  3452. //
  3453. // // Example iterating over at most 3 pages of a ListAccessKeys operation.
  3454. // pageNum := 0
  3455. // err := client.ListAccessKeysPages(params,
  3456. // func(page *ListAccessKeysOutput, lastPage bool) bool {
  3457. // pageNum++
  3458. // fmt.Println(page)
  3459. // return pageNum <= 3
  3460. // })
  3461. //
  3462. func (c *IAM) ListAccessKeysPages(input *ListAccessKeysInput, fn func(p *ListAccessKeysOutput, lastPage bool) (shouldContinue bool)) error {
  3463. page, _ := c.ListAccessKeysRequest(input)
  3464. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  3465. return page.EachPage(func(p interface{}, lastPage bool) bool {
  3466. return fn(p.(*ListAccessKeysOutput), lastPage)
  3467. })
  3468. }
  3469. const opListAccountAliases = "ListAccountAliases"
  3470. // ListAccountAliasesRequest generates a "aws/request.Request" representing the
  3471. // client's request for the ListAccountAliases operation. The "output" return
  3472. // value can be used to capture response data after the request's "Send" method
  3473. // is called.
  3474. //
  3475. // Creating a request object using this method should be used when you want to inject
  3476. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3477. // access properties on the request object before or after sending the request. If
  3478. // you just want the service response, call the ListAccountAliases method directly
  3479. // instead.
  3480. //
  3481. // Note: You must call the "Send" method on the returned request object in order
  3482. // to execute the request.
  3483. //
  3484. // // Example sending a request using the ListAccountAliasesRequest method.
  3485. // req, resp := client.ListAccountAliasesRequest(params)
  3486. //
  3487. // err := req.Send()
  3488. // if err == nil { // resp is now filled
  3489. // fmt.Println(resp)
  3490. // }
  3491. //
  3492. func (c *IAM) ListAccountAliasesRequest(input *ListAccountAliasesInput) (req *request.Request, output *ListAccountAliasesOutput) {
  3493. op := &request.Operation{
  3494. Name: opListAccountAliases,
  3495. HTTPMethod: "POST",
  3496. HTTPPath: "/",
  3497. Paginator: &request.Paginator{
  3498. InputTokens: []string{"Marker"},
  3499. OutputTokens: []string{"Marker"},
  3500. LimitToken: "MaxItems",
  3501. TruncationToken: "IsTruncated",
  3502. },
  3503. }
  3504. if input == nil {
  3505. input = &ListAccountAliasesInput{}
  3506. }
  3507. req = c.newRequest(op, input, output)
  3508. output = &ListAccountAliasesOutput{}
  3509. req.Data = output
  3510. return
  3511. }
  3512. // Lists the account alias associated with the AWS account (Note: you can have
  3513. // only one). For information about using an AWS account alias, see Using an
  3514. // Alias for Your AWS Account ID (http://docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html)
  3515. // in the IAM User Guide.
  3516. func (c *IAM) ListAccountAliases(input *ListAccountAliasesInput) (*ListAccountAliasesOutput, error) {
  3517. req, out := c.ListAccountAliasesRequest(input)
  3518. err := req.Send()
  3519. return out, err
  3520. }
  3521. // ListAccountAliasesPages iterates over the pages of a ListAccountAliases operation,
  3522. // calling the "fn" function with the response data for each page. To stop
  3523. // iterating, return false from the fn function.
  3524. //
  3525. // See ListAccountAliases method for more information on how to use this operation.
  3526. //
  3527. // Note: This operation can generate multiple requests to a service.
  3528. //
  3529. // // Example iterating over at most 3 pages of a ListAccountAliases operation.
  3530. // pageNum := 0
  3531. // err := client.ListAccountAliasesPages(params,
  3532. // func(page *ListAccountAliasesOutput, lastPage bool) bool {
  3533. // pageNum++
  3534. // fmt.Println(page)
  3535. // return pageNum <= 3
  3536. // })
  3537. //
  3538. func (c *IAM) ListAccountAliasesPages(input *ListAccountAliasesInput, fn func(p *ListAccountAliasesOutput, lastPage bool) (shouldContinue bool)) error {
  3539. page, _ := c.ListAccountAliasesRequest(input)
  3540. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  3541. return page.EachPage(func(p interface{}, lastPage bool) bool {
  3542. return fn(p.(*ListAccountAliasesOutput), lastPage)
  3543. })
  3544. }
  3545. const opListAttachedGroupPolicies = "ListAttachedGroupPolicies"
  3546. // ListAttachedGroupPoliciesRequest generates a "aws/request.Request" representing the
  3547. // client's request for the ListAttachedGroupPolicies operation. The "output" return
  3548. // value can be used to capture response data after the request's "Send" method
  3549. // is called.
  3550. //
  3551. // Creating a request object using this method should be used when you want to inject
  3552. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3553. // access properties on the request object before or after sending the request. If
  3554. // you just want the service response, call the ListAttachedGroupPolicies method directly
  3555. // instead.
  3556. //
  3557. // Note: You must call the "Send" method on the returned request object in order
  3558. // to execute the request.
  3559. //
  3560. // // Example sending a request using the ListAttachedGroupPoliciesRequest method.
  3561. // req, resp := client.ListAttachedGroupPoliciesRequest(params)
  3562. //
  3563. // err := req.Send()
  3564. // if err == nil { // resp is now filled
  3565. // fmt.Println(resp)
  3566. // }
  3567. //
  3568. func (c *IAM) ListAttachedGroupPoliciesRequest(input *ListAttachedGroupPoliciesInput) (req *request.Request, output *ListAttachedGroupPoliciesOutput) {
  3569. op := &request.Operation{
  3570. Name: opListAttachedGroupPolicies,
  3571. HTTPMethod: "POST",
  3572. HTTPPath: "/",
  3573. Paginator: &request.Paginator{
  3574. InputTokens: []string{"Marker"},
  3575. OutputTokens: []string{"Marker"},
  3576. LimitToken: "MaxItems",
  3577. TruncationToken: "IsTruncated",
  3578. },
  3579. }
  3580. if input == nil {
  3581. input = &ListAttachedGroupPoliciesInput{}
  3582. }
  3583. req = c.newRequest(op, input, output)
  3584. output = &ListAttachedGroupPoliciesOutput{}
  3585. req.Data = output
  3586. return
  3587. }
  3588. // Lists all managed policies that are attached to the specified IAM group.
  3589. //
  3590. // An IAM group can also have inline policies embedded with it. To list the
  3591. // inline policies for a group, use the ListGroupPolicies API. For information
  3592. // about policies, see Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  3593. // in the IAM User Guide.
  3594. //
  3595. // You can paginate the results using the MaxItems and Marker parameters. You
  3596. // can use the PathPrefix parameter to limit the list of policies to only those
  3597. // matching the specified path prefix. If there are no policies attached to
  3598. // the specified group (or none that match the specified path prefix), the action
  3599. // returns an empty list.
  3600. func (c *IAM) ListAttachedGroupPolicies(input *ListAttachedGroupPoliciesInput) (*ListAttachedGroupPoliciesOutput, error) {
  3601. req, out := c.ListAttachedGroupPoliciesRequest(input)
  3602. err := req.Send()
  3603. return out, err
  3604. }
  3605. // ListAttachedGroupPoliciesPages iterates over the pages of a ListAttachedGroupPolicies operation,
  3606. // calling the "fn" function with the response data for each page. To stop
  3607. // iterating, return false from the fn function.
  3608. //
  3609. // See ListAttachedGroupPolicies method for more information on how to use this operation.
  3610. //
  3611. // Note: This operation can generate multiple requests to a service.
  3612. //
  3613. // // Example iterating over at most 3 pages of a ListAttachedGroupPolicies operation.
  3614. // pageNum := 0
  3615. // err := client.ListAttachedGroupPoliciesPages(params,
  3616. // func(page *ListAttachedGroupPoliciesOutput, lastPage bool) bool {
  3617. // pageNum++
  3618. // fmt.Println(page)
  3619. // return pageNum <= 3
  3620. // })
  3621. //
  3622. func (c *IAM) ListAttachedGroupPoliciesPages(input *ListAttachedGroupPoliciesInput, fn func(p *ListAttachedGroupPoliciesOutput, lastPage bool) (shouldContinue bool)) error {
  3623. page, _ := c.ListAttachedGroupPoliciesRequest(input)
  3624. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  3625. return page.EachPage(func(p interface{}, lastPage bool) bool {
  3626. return fn(p.(*ListAttachedGroupPoliciesOutput), lastPage)
  3627. })
  3628. }
  3629. const opListAttachedRolePolicies = "ListAttachedRolePolicies"
  3630. // ListAttachedRolePoliciesRequest generates a "aws/request.Request" representing the
  3631. // client's request for the ListAttachedRolePolicies operation. The "output" return
  3632. // value can be used to capture response data after the request's "Send" method
  3633. // is called.
  3634. //
  3635. // Creating a request object using this method should be used when you want to inject
  3636. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3637. // access properties on the request object before or after sending the request. If
  3638. // you just want the service response, call the ListAttachedRolePolicies method directly
  3639. // instead.
  3640. //
  3641. // Note: You must call the "Send" method on the returned request object in order
  3642. // to execute the request.
  3643. //
  3644. // // Example sending a request using the ListAttachedRolePoliciesRequest method.
  3645. // req, resp := client.ListAttachedRolePoliciesRequest(params)
  3646. //
  3647. // err := req.Send()
  3648. // if err == nil { // resp is now filled
  3649. // fmt.Println(resp)
  3650. // }
  3651. //
  3652. func (c *IAM) ListAttachedRolePoliciesRequest(input *ListAttachedRolePoliciesInput) (req *request.Request, output *ListAttachedRolePoliciesOutput) {
  3653. op := &request.Operation{
  3654. Name: opListAttachedRolePolicies,
  3655. HTTPMethod: "POST",
  3656. HTTPPath: "/",
  3657. Paginator: &request.Paginator{
  3658. InputTokens: []string{"Marker"},
  3659. OutputTokens: []string{"Marker"},
  3660. LimitToken: "MaxItems",
  3661. TruncationToken: "IsTruncated",
  3662. },
  3663. }
  3664. if input == nil {
  3665. input = &ListAttachedRolePoliciesInput{}
  3666. }
  3667. req = c.newRequest(op, input, output)
  3668. output = &ListAttachedRolePoliciesOutput{}
  3669. req.Data = output
  3670. return
  3671. }
  3672. // Lists all managed policies that are attached to the specified IAM role.
  3673. //
  3674. // An IAM role can also have inline policies embedded with it. To list the
  3675. // inline policies for a role, use the ListRolePolicies API. For information
  3676. // about policies, see Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  3677. // in the IAM User Guide.
  3678. //
  3679. // You can paginate the results using the MaxItems and Marker parameters. You
  3680. // can use the PathPrefix parameter to limit the list of policies to only those
  3681. // matching the specified path prefix. If there are no policies attached to
  3682. // the specified role (or none that match the specified path prefix), the action
  3683. // returns an empty list.
  3684. func (c *IAM) ListAttachedRolePolicies(input *ListAttachedRolePoliciesInput) (*ListAttachedRolePoliciesOutput, error) {
  3685. req, out := c.ListAttachedRolePoliciesRequest(input)
  3686. err := req.Send()
  3687. return out, err
  3688. }
  3689. // ListAttachedRolePoliciesPages iterates over the pages of a ListAttachedRolePolicies operation,
  3690. // calling the "fn" function with the response data for each page. To stop
  3691. // iterating, return false from the fn function.
  3692. //
  3693. // See ListAttachedRolePolicies method for more information on how to use this operation.
  3694. //
  3695. // Note: This operation can generate multiple requests to a service.
  3696. //
  3697. // // Example iterating over at most 3 pages of a ListAttachedRolePolicies operation.
  3698. // pageNum := 0
  3699. // err := client.ListAttachedRolePoliciesPages(params,
  3700. // func(page *ListAttachedRolePoliciesOutput, lastPage bool) bool {
  3701. // pageNum++
  3702. // fmt.Println(page)
  3703. // return pageNum <= 3
  3704. // })
  3705. //
  3706. func (c *IAM) ListAttachedRolePoliciesPages(input *ListAttachedRolePoliciesInput, fn func(p *ListAttachedRolePoliciesOutput, lastPage bool) (shouldContinue bool)) error {
  3707. page, _ := c.ListAttachedRolePoliciesRequest(input)
  3708. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  3709. return page.EachPage(func(p interface{}, lastPage bool) bool {
  3710. return fn(p.(*ListAttachedRolePoliciesOutput), lastPage)
  3711. })
  3712. }
  3713. const opListAttachedUserPolicies = "ListAttachedUserPolicies"
  3714. // ListAttachedUserPoliciesRequest generates a "aws/request.Request" representing the
  3715. // client's request for the ListAttachedUserPolicies operation. The "output" return
  3716. // value can be used to capture response data after the request's "Send" method
  3717. // is called.
  3718. //
  3719. // Creating a request object using this method should be used when you want to inject
  3720. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3721. // access properties on the request object before or after sending the request. If
  3722. // you just want the service response, call the ListAttachedUserPolicies method directly
  3723. // instead.
  3724. //
  3725. // Note: You must call the "Send" method on the returned request object in order
  3726. // to execute the request.
  3727. //
  3728. // // Example sending a request using the ListAttachedUserPoliciesRequest method.
  3729. // req, resp := client.ListAttachedUserPoliciesRequest(params)
  3730. //
  3731. // err := req.Send()
  3732. // if err == nil { // resp is now filled
  3733. // fmt.Println(resp)
  3734. // }
  3735. //
  3736. func (c *IAM) ListAttachedUserPoliciesRequest(input *ListAttachedUserPoliciesInput) (req *request.Request, output *ListAttachedUserPoliciesOutput) {
  3737. op := &request.Operation{
  3738. Name: opListAttachedUserPolicies,
  3739. HTTPMethod: "POST",
  3740. HTTPPath: "/",
  3741. Paginator: &request.Paginator{
  3742. InputTokens: []string{"Marker"},
  3743. OutputTokens: []string{"Marker"},
  3744. LimitToken: "MaxItems",
  3745. TruncationToken: "IsTruncated",
  3746. },
  3747. }
  3748. if input == nil {
  3749. input = &ListAttachedUserPoliciesInput{}
  3750. }
  3751. req = c.newRequest(op, input, output)
  3752. output = &ListAttachedUserPoliciesOutput{}
  3753. req.Data = output
  3754. return
  3755. }
  3756. // Lists all managed policies that are attached to the specified IAM user.
  3757. //
  3758. // An IAM user can also have inline policies embedded with it. To list the
  3759. // inline policies for a user, use the ListUserPolicies API. For information
  3760. // about policies, see Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  3761. // in the IAM User Guide.
  3762. //
  3763. // You can paginate the results using the MaxItems and Marker parameters. You
  3764. // can use the PathPrefix parameter to limit the list of policies to only those
  3765. // matching the specified path prefix. If there are no policies attached to
  3766. // the specified group (or none that match the specified path prefix), the action
  3767. // returns an empty list.
  3768. func (c *IAM) ListAttachedUserPolicies(input *ListAttachedUserPoliciesInput) (*ListAttachedUserPoliciesOutput, error) {
  3769. req, out := c.ListAttachedUserPoliciesRequest(input)
  3770. err := req.Send()
  3771. return out, err
  3772. }
  3773. // ListAttachedUserPoliciesPages iterates over the pages of a ListAttachedUserPolicies operation,
  3774. // calling the "fn" function with the response data for each page. To stop
  3775. // iterating, return false from the fn function.
  3776. //
  3777. // See ListAttachedUserPolicies method for more information on how to use this operation.
  3778. //
  3779. // Note: This operation can generate multiple requests to a service.
  3780. //
  3781. // // Example iterating over at most 3 pages of a ListAttachedUserPolicies operation.
  3782. // pageNum := 0
  3783. // err := client.ListAttachedUserPoliciesPages(params,
  3784. // func(page *ListAttachedUserPoliciesOutput, lastPage bool) bool {
  3785. // pageNum++
  3786. // fmt.Println(page)
  3787. // return pageNum <= 3
  3788. // })
  3789. //
  3790. func (c *IAM) ListAttachedUserPoliciesPages(input *ListAttachedUserPoliciesInput, fn func(p *ListAttachedUserPoliciesOutput, lastPage bool) (shouldContinue bool)) error {
  3791. page, _ := c.ListAttachedUserPoliciesRequest(input)
  3792. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  3793. return page.EachPage(func(p interface{}, lastPage bool) bool {
  3794. return fn(p.(*ListAttachedUserPoliciesOutput), lastPage)
  3795. })
  3796. }
  3797. const opListEntitiesForPolicy = "ListEntitiesForPolicy"
  3798. // ListEntitiesForPolicyRequest generates a "aws/request.Request" representing the
  3799. // client's request for the ListEntitiesForPolicy operation. The "output" return
  3800. // value can be used to capture response data after the request's "Send" method
  3801. // is called.
  3802. //
  3803. // Creating a request object using this method should be used when you want to inject
  3804. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3805. // access properties on the request object before or after sending the request. If
  3806. // you just want the service response, call the ListEntitiesForPolicy method directly
  3807. // instead.
  3808. //
  3809. // Note: You must call the "Send" method on the returned request object in order
  3810. // to execute the request.
  3811. //
  3812. // // Example sending a request using the ListEntitiesForPolicyRequest method.
  3813. // req, resp := client.ListEntitiesForPolicyRequest(params)
  3814. //
  3815. // err := req.Send()
  3816. // if err == nil { // resp is now filled
  3817. // fmt.Println(resp)
  3818. // }
  3819. //
  3820. func (c *IAM) ListEntitiesForPolicyRequest(input *ListEntitiesForPolicyInput) (req *request.Request, output *ListEntitiesForPolicyOutput) {
  3821. op := &request.Operation{
  3822. Name: opListEntitiesForPolicy,
  3823. HTTPMethod: "POST",
  3824. HTTPPath: "/",
  3825. Paginator: &request.Paginator{
  3826. InputTokens: []string{"Marker"},
  3827. OutputTokens: []string{"Marker"},
  3828. LimitToken: "MaxItems",
  3829. TruncationToken: "IsTruncated",
  3830. },
  3831. }
  3832. if input == nil {
  3833. input = &ListEntitiesForPolicyInput{}
  3834. }
  3835. req = c.newRequest(op, input, output)
  3836. output = &ListEntitiesForPolicyOutput{}
  3837. req.Data = output
  3838. return
  3839. }
  3840. // Lists all IAM users, groups, and roles that the specified managed policy
  3841. // is attached to.
  3842. //
  3843. // You can use the optional EntityFilter parameter to limit the results to
  3844. // a particular type of entity (users, groups, or roles). For example, to list
  3845. // only the roles that are attached to the specified policy, set EntityFilter
  3846. // to Role.
  3847. //
  3848. // You can paginate the results using the MaxItems and Marker parameters.
  3849. func (c *IAM) ListEntitiesForPolicy(input *ListEntitiesForPolicyInput) (*ListEntitiesForPolicyOutput, error) {
  3850. req, out := c.ListEntitiesForPolicyRequest(input)
  3851. err := req.Send()
  3852. return out, err
  3853. }
  3854. // ListEntitiesForPolicyPages iterates over the pages of a ListEntitiesForPolicy operation,
  3855. // calling the "fn" function with the response data for each page. To stop
  3856. // iterating, return false from the fn function.
  3857. //
  3858. // See ListEntitiesForPolicy method for more information on how to use this operation.
  3859. //
  3860. // Note: This operation can generate multiple requests to a service.
  3861. //
  3862. // // Example iterating over at most 3 pages of a ListEntitiesForPolicy operation.
  3863. // pageNum := 0
  3864. // err := client.ListEntitiesForPolicyPages(params,
  3865. // func(page *ListEntitiesForPolicyOutput, lastPage bool) bool {
  3866. // pageNum++
  3867. // fmt.Println(page)
  3868. // return pageNum <= 3
  3869. // })
  3870. //
  3871. func (c *IAM) ListEntitiesForPolicyPages(input *ListEntitiesForPolicyInput, fn func(p *ListEntitiesForPolicyOutput, lastPage bool) (shouldContinue bool)) error {
  3872. page, _ := c.ListEntitiesForPolicyRequest(input)
  3873. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  3874. return page.EachPage(func(p interface{}, lastPage bool) bool {
  3875. return fn(p.(*ListEntitiesForPolicyOutput), lastPage)
  3876. })
  3877. }
  3878. const opListGroupPolicies = "ListGroupPolicies"
  3879. // ListGroupPoliciesRequest generates a "aws/request.Request" representing the
  3880. // client's request for the ListGroupPolicies operation. The "output" return
  3881. // value can be used to capture response data after the request's "Send" method
  3882. // is called.
  3883. //
  3884. // Creating a request object using this method should be used when you want to inject
  3885. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3886. // access properties on the request object before or after sending the request. If
  3887. // you just want the service response, call the ListGroupPolicies method directly
  3888. // instead.
  3889. //
  3890. // Note: You must call the "Send" method on the returned request object in order
  3891. // to execute the request.
  3892. //
  3893. // // Example sending a request using the ListGroupPoliciesRequest method.
  3894. // req, resp := client.ListGroupPoliciesRequest(params)
  3895. //
  3896. // err := req.Send()
  3897. // if err == nil { // resp is now filled
  3898. // fmt.Println(resp)
  3899. // }
  3900. //
  3901. func (c *IAM) ListGroupPoliciesRequest(input *ListGroupPoliciesInput) (req *request.Request, output *ListGroupPoliciesOutput) {
  3902. op := &request.Operation{
  3903. Name: opListGroupPolicies,
  3904. HTTPMethod: "POST",
  3905. HTTPPath: "/",
  3906. Paginator: &request.Paginator{
  3907. InputTokens: []string{"Marker"},
  3908. OutputTokens: []string{"Marker"},
  3909. LimitToken: "MaxItems",
  3910. TruncationToken: "IsTruncated",
  3911. },
  3912. }
  3913. if input == nil {
  3914. input = &ListGroupPoliciesInput{}
  3915. }
  3916. req = c.newRequest(op, input, output)
  3917. output = &ListGroupPoliciesOutput{}
  3918. req.Data = output
  3919. return
  3920. }
  3921. // Lists the names of the inline policies that are embedded in the specified
  3922. // IAM group.
  3923. //
  3924. // An IAM group can also have managed policies attached to it. To list the
  3925. // managed policies that are attached to a group, use ListAttachedGroupPolicies.
  3926. // For more information about policies, see Managed Policies and Inline Policies
  3927. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  3928. // in the IAM User Guide.
  3929. //
  3930. // You can paginate the results using the MaxItems and Marker parameters. If
  3931. // there are no inline policies embedded with the specified group, the action
  3932. // returns an empty list.
  3933. func (c *IAM) ListGroupPolicies(input *ListGroupPoliciesInput) (*ListGroupPoliciesOutput, error) {
  3934. req, out := c.ListGroupPoliciesRequest(input)
  3935. err := req.Send()
  3936. return out, err
  3937. }
  3938. // ListGroupPoliciesPages iterates over the pages of a ListGroupPolicies operation,
  3939. // calling the "fn" function with the response data for each page. To stop
  3940. // iterating, return false from the fn function.
  3941. //
  3942. // See ListGroupPolicies method for more information on how to use this operation.
  3943. //
  3944. // Note: This operation can generate multiple requests to a service.
  3945. //
  3946. // // Example iterating over at most 3 pages of a ListGroupPolicies operation.
  3947. // pageNum := 0
  3948. // err := client.ListGroupPoliciesPages(params,
  3949. // func(page *ListGroupPoliciesOutput, lastPage bool) bool {
  3950. // pageNum++
  3951. // fmt.Println(page)
  3952. // return pageNum <= 3
  3953. // })
  3954. //
  3955. func (c *IAM) ListGroupPoliciesPages(input *ListGroupPoliciesInput, fn func(p *ListGroupPoliciesOutput, lastPage bool) (shouldContinue bool)) error {
  3956. page, _ := c.ListGroupPoliciesRequest(input)
  3957. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  3958. return page.EachPage(func(p interface{}, lastPage bool) bool {
  3959. return fn(p.(*ListGroupPoliciesOutput), lastPage)
  3960. })
  3961. }
  3962. const opListGroups = "ListGroups"
  3963. // ListGroupsRequest generates a "aws/request.Request" representing the
  3964. // client's request for the ListGroups operation. The "output" return
  3965. // value can be used to capture response data after the request's "Send" method
  3966. // is called.
  3967. //
  3968. // Creating a request object using this method should be used when you want to inject
  3969. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3970. // access properties on the request object before or after sending the request. If
  3971. // you just want the service response, call the ListGroups method directly
  3972. // instead.
  3973. //
  3974. // Note: You must call the "Send" method on the returned request object in order
  3975. // to execute the request.
  3976. //
  3977. // // Example sending a request using the ListGroupsRequest method.
  3978. // req, resp := client.ListGroupsRequest(params)
  3979. //
  3980. // err := req.Send()
  3981. // if err == nil { // resp is now filled
  3982. // fmt.Println(resp)
  3983. // }
  3984. //
  3985. func (c *IAM) ListGroupsRequest(input *ListGroupsInput) (req *request.Request, output *ListGroupsOutput) {
  3986. op := &request.Operation{
  3987. Name: opListGroups,
  3988. HTTPMethod: "POST",
  3989. HTTPPath: "/",
  3990. Paginator: &request.Paginator{
  3991. InputTokens: []string{"Marker"},
  3992. OutputTokens: []string{"Marker"},
  3993. LimitToken: "MaxItems",
  3994. TruncationToken: "IsTruncated",
  3995. },
  3996. }
  3997. if input == nil {
  3998. input = &ListGroupsInput{}
  3999. }
  4000. req = c.newRequest(op, input, output)
  4001. output = &ListGroupsOutput{}
  4002. req.Data = output
  4003. return
  4004. }
  4005. // Lists the IAM groups that have the specified path prefix.
  4006. //
  4007. // You can paginate the results using the MaxItems and Marker parameters.
  4008. func (c *IAM) ListGroups(input *ListGroupsInput) (*ListGroupsOutput, error) {
  4009. req, out := c.ListGroupsRequest(input)
  4010. err := req.Send()
  4011. return out, err
  4012. }
  4013. // ListGroupsPages iterates over the pages of a ListGroups operation,
  4014. // calling the "fn" function with the response data for each page. To stop
  4015. // iterating, return false from the fn function.
  4016. //
  4017. // See ListGroups method for more information on how to use this operation.
  4018. //
  4019. // Note: This operation can generate multiple requests to a service.
  4020. //
  4021. // // Example iterating over at most 3 pages of a ListGroups operation.
  4022. // pageNum := 0
  4023. // err := client.ListGroupsPages(params,
  4024. // func(page *ListGroupsOutput, lastPage bool) bool {
  4025. // pageNum++
  4026. // fmt.Println(page)
  4027. // return pageNum <= 3
  4028. // })
  4029. //
  4030. func (c *IAM) ListGroupsPages(input *ListGroupsInput, fn func(p *ListGroupsOutput, lastPage bool) (shouldContinue bool)) error {
  4031. page, _ := c.ListGroupsRequest(input)
  4032. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  4033. return page.EachPage(func(p interface{}, lastPage bool) bool {
  4034. return fn(p.(*ListGroupsOutput), lastPage)
  4035. })
  4036. }
  4037. const opListGroupsForUser = "ListGroupsForUser"
  4038. // ListGroupsForUserRequest generates a "aws/request.Request" representing the
  4039. // client's request for the ListGroupsForUser operation. The "output" return
  4040. // value can be used to capture response data after the request's "Send" method
  4041. // is called.
  4042. //
  4043. // Creating a request object using this method should be used when you want to inject
  4044. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4045. // access properties on the request object before or after sending the request. If
  4046. // you just want the service response, call the ListGroupsForUser method directly
  4047. // instead.
  4048. //
  4049. // Note: You must call the "Send" method on the returned request object in order
  4050. // to execute the request.
  4051. //
  4052. // // Example sending a request using the ListGroupsForUserRequest method.
  4053. // req, resp := client.ListGroupsForUserRequest(params)
  4054. //
  4055. // err := req.Send()
  4056. // if err == nil { // resp is now filled
  4057. // fmt.Println(resp)
  4058. // }
  4059. //
  4060. func (c *IAM) ListGroupsForUserRequest(input *ListGroupsForUserInput) (req *request.Request, output *ListGroupsForUserOutput) {
  4061. op := &request.Operation{
  4062. Name: opListGroupsForUser,
  4063. HTTPMethod: "POST",
  4064. HTTPPath: "/",
  4065. Paginator: &request.Paginator{
  4066. InputTokens: []string{"Marker"},
  4067. OutputTokens: []string{"Marker"},
  4068. LimitToken: "MaxItems",
  4069. TruncationToken: "IsTruncated",
  4070. },
  4071. }
  4072. if input == nil {
  4073. input = &ListGroupsForUserInput{}
  4074. }
  4075. req = c.newRequest(op, input, output)
  4076. output = &ListGroupsForUserOutput{}
  4077. req.Data = output
  4078. return
  4079. }
  4080. // Lists the IAM groups that the specified IAM user belongs to.
  4081. //
  4082. // You can paginate the results using the MaxItems and Marker parameters.
  4083. func (c *IAM) ListGroupsForUser(input *ListGroupsForUserInput) (*ListGroupsForUserOutput, error) {
  4084. req, out := c.ListGroupsForUserRequest(input)
  4085. err := req.Send()
  4086. return out, err
  4087. }
  4088. // ListGroupsForUserPages iterates over the pages of a ListGroupsForUser operation,
  4089. // calling the "fn" function with the response data for each page. To stop
  4090. // iterating, return false from the fn function.
  4091. //
  4092. // See ListGroupsForUser method for more information on how to use this operation.
  4093. //
  4094. // Note: This operation can generate multiple requests to a service.
  4095. //
  4096. // // Example iterating over at most 3 pages of a ListGroupsForUser operation.
  4097. // pageNum := 0
  4098. // err := client.ListGroupsForUserPages(params,
  4099. // func(page *ListGroupsForUserOutput, lastPage bool) bool {
  4100. // pageNum++
  4101. // fmt.Println(page)
  4102. // return pageNum <= 3
  4103. // })
  4104. //
  4105. func (c *IAM) ListGroupsForUserPages(input *ListGroupsForUserInput, fn func(p *ListGroupsForUserOutput, lastPage bool) (shouldContinue bool)) error {
  4106. page, _ := c.ListGroupsForUserRequest(input)
  4107. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  4108. return page.EachPage(func(p interface{}, lastPage bool) bool {
  4109. return fn(p.(*ListGroupsForUserOutput), lastPage)
  4110. })
  4111. }
  4112. const opListInstanceProfiles = "ListInstanceProfiles"
  4113. // ListInstanceProfilesRequest generates a "aws/request.Request" representing the
  4114. // client's request for the ListInstanceProfiles operation. The "output" return
  4115. // value can be used to capture response data after the request's "Send" method
  4116. // is called.
  4117. //
  4118. // Creating a request object using this method should be used when you want to inject
  4119. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4120. // access properties on the request object before or after sending the request. If
  4121. // you just want the service response, call the ListInstanceProfiles method directly
  4122. // instead.
  4123. //
  4124. // Note: You must call the "Send" method on the returned request object in order
  4125. // to execute the request.
  4126. //
  4127. // // Example sending a request using the ListInstanceProfilesRequest method.
  4128. // req, resp := client.ListInstanceProfilesRequest(params)
  4129. //
  4130. // err := req.Send()
  4131. // if err == nil { // resp is now filled
  4132. // fmt.Println(resp)
  4133. // }
  4134. //
  4135. func (c *IAM) ListInstanceProfilesRequest(input *ListInstanceProfilesInput) (req *request.Request, output *ListInstanceProfilesOutput) {
  4136. op := &request.Operation{
  4137. Name: opListInstanceProfiles,
  4138. HTTPMethod: "POST",
  4139. HTTPPath: "/",
  4140. Paginator: &request.Paginator{
  4141. InputTokens: []string{"Marker"},
  4142. OutputTokens: []string{"Marker"},
  4143. LimitToken: "MaxItems",
  4144. TruncationToken: "IsTruncated",
  4145. },
  4146. }
  4147. if input == nil {
  4148. input = &ListInstanceProfilesInput{}
  4149. }
  4150. req = c.newRequest(op, input, output)
  4151. output = &ListInstanceProfilesOutput{}
  4152. req.Data = output
  4153. return
  4154. }
  4155. // Lists the instance profiles that have the specified path prefix. If there
  4156. // are none, the action returns an empty list. For more information about instance
  4157. // profiles, go to About Instance Profiles (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html).
  4158. //
  4159. // You can paginate the results using the MaxItems and Marker parameters.
  4160. func (c *IAM) ListInstanceProfiles(input *ListInstanceProfilesInput) (*ListInstanceProfilesOutput, error) {
  4161. req, out := c.ListInstanceProfilesRequest(input)
  4162. err := req.Send()
  4163. return out, err
  4164. }
  4165. // ListInstanceProfilesPages iterates over the pages of a ListInstanceProfiles operation,
  4166. // calling the "fn" function with the response data for each page. To stop
  4167. // iterating, return false from the fn function.
  4168. //
  4169. // See ListInstanceProfiles method for more information on how to use this operation.
  4170. //
  4171. // Note: This operation can generate multiple requests to a service.
  4172. //
  4173. // // Example iterating over at most 3 pages of a ListInstanceProfiles operation.
  4174. // pageNum := 0
  4175. // err := client.ListInstanceProfilesPages(params,
  4176. // func(page *ListInstanceProfilesOutput, lastPage bool) bool {
  4177. // pageNum++
  4178. // fmt.Println(page)
  4179. // return pageNum <= 3
  4180. // })
  4181. //
  4182. func (c *IAM) ListInstanceProfilesPages(input *ListInstanceProfilesInput, fn func(p *ListInstanceProfilesOutput, lastPage bool) (shouldContinue bool)) error {
  4183. page, _ := c.ListInstanceProfilesRequest(input)
  4184. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  4185. return page.EachPage(func(p interface{}, lastPage bool) bool {
  4186. return fn(p.(*ListInstanceProfilesOutput), lastPage)
  4187. })
  4188. }
  4189. const opListInstanceProfilesForRole = "ListInstanceProfilesForRole"
  4190. // ListInstanceProfilesForRoleRequest generates a "aws/request.Request" representing the
  4191. // client's request for the ListInstanceProfilesForRole operation. The "output" return
  4192. // value can be used to capture response data after the request's "Send" method
  4193. // is called.
  4194. //
  4195. // Creating a request object using this method should be used when you want to inject
  4196. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4197. // access properties on the request object before or after sending the request. If
  4198. // you just want the service response, call the ListInstanceProfilesForRole method directly
  4199. // instead.
  4200. //
  4201. // Note: You must call the "Send" method on the returned request object in order
  4202. // to execute the request.
  4203. //
  4204. // // Example sending a request using the ListInstanceProfilesForRoleRequest method.
  4205. // req, resp := client.ListInstanceProfilesForRoleRequest(params)
  4206. //
  4207. // err := req.Send()
  4208. // if err == nil { // resp is now filled
  4209. // fmt.Println(resp)
  4210. // }
  4211. //
  4212. func (c *IAM) ListInstanceProfilesForRoleRequest(input *ListInstanceProfilesForRoleInput) (req *request.Request, output *ListInstanceProfilesForRoleOutput) {
  4213. op := &request.Operation{
  4214. Name: opListInstanceProfilesForRole,
  4215. HTTPMethod: "POST",
  4216. HTTPPath: "/",
  4217. Paginator: &request.Paginator{
  4218. InputTokens: []string{"Marker"},
  4219. OutputTokens: []string{"Marker"},
  4220. LimitToken: "MaxItems",
  4221. TruncationToken: "IsTruncated",
  4222. },
  4223. }
  4224. if input == nil {
  4225. input = &ListInstanceProfilesForRoleInput{}
  4226. }
  4227. req = c.newRequest(op, input, output)
  4228. output = &ListInstanceProfilesForRoleOutput{}
  4229. req.Data = output
  4230. return
  4231. }
  4232. // Lists the instance profiles that have the specified associated IAM role.
  4233. // If there are none, the action returns an empty list. For more information
  4234. // about instance profiles, go to About Instance Profiles (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html).
  4235. //
  4236. // You can paginate the results using the MaxItems and Marker parameters.
  4237. func (c *IAM) ListInstanceProfilesForRole(input *ListInstanceProfilesForRoleInput) (*ListInstanceProfilesForRoleOutput, error) {
  4238. req, out := c.ListInstanceProfilesForRoleRequest(input)
  4239. err := req.Send()
  4240. return out, err
  4241. }
  4242. // ListInstanceProfilesForRolePages iterates over the pages of a ListInstanceProfilesForRole operation,
  4243. // calling the "fn" function with the response data for each page. To stop
  4244. // iterating, return false from the fn function.
  4245. //
  4246. // See ListInstanceProfilesForRole method for more information on how to use this operation.
  4247. //
  4248. // Note: This operation can generate multiple requests to a service.
  4249. //
  4250. // // Example iterating over at most 3 pages of a ListInstanceProfilesForRole operation.
  4251. // pageNum := 0
  4252. // err := client.ListInstanceProfilesForRolePages(params,
  4253. // func(page *ListInstanceProfilesForRoleOutput, lastPage bool) bool {
  4254. // pageNum++
  4255. // fmt.Println(page)
  4256. // return pageNum <= 3
  4257. // })
  4258. //
  4259. func (c *IAM) ListInstanceProfilesForRolePages(input *ListInstanceProfilesForRoleInput, fn func(p *ListInstanceProfilesForRoleOutput, lastPage bool) (shouldContinue bool)) error {
  4260. page, _ := c.ListInstanceProfilesForRoleRequest(input)
  4261. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  4262. return page.EachPage(func(p interface{}, lastPage bool) bool {
  4263. return fn(p.(*ListInstanceProfilesForRoleOutput), lastPage)
  4264. })
  4265. }
  4266. const opListMFADevices = "ListMFADevices"
  4267. // ListMFADevicesRequest generates a "aws/request.Request" representing the
  4268. // client's request for the ListMFADevices operation. The "output" return
  4269. // value can be used to capture response data after the request's "Send" method
  4270. // is called.
  4271. //
  4272. // Creating a request object using this method should be used when you want to inject
  4273. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4274. // access properties on the request object before or after sending the request. If
  4275. // you just want the service response, call the ListMFADevices method directly
  4276. // instead.
  4277. //
  4278. // Note: You must call the "Send" method on the returned request object in order
  4279. // to execute the request.
  4280. //
  4281. // // Example sending a request using the ListMFADevicesRequest method.
  4282. // req, resp := client.ListMFADevicesRequest(params)
  4283. //
  4284. // err := req.Send()
  4285. // if err == nil { // resp is now filled
  4286. // fmt.Println(resp)
  4287. // }
  4288. //
  4289. func (c *IAM) ListMFADevicesRequest(input *ListMFADevicesInput) (req *request.Request, output *ListMFADevicesOutput) {
  4290. op := &request.Operation{
  4291. Name: opListMFADevices,
  4292. HTTPMethod: "POST",
  4293. HTTPPath: "/",
  4294. Paginator: &request.Paginator{
  4295. InputTokens: []string{"Marker"},
  4296. OutputTokens: []string{"Marker"},
  4297. LimitToken: "MaxItems",
  4298. TruncationToken: "IsTruncated",
  4299. },
  4300. }
  4301. if input == nil {
  4302. input = &ListMFADevicesInput{}
  4303. }
  4304. req = c.newRequest(op, input, output)
  4305. output = &ListMFADevicesOutput{}
  4306. req.Data = output
  4307. return
  4308. }
  4309. // Lists the MFA devices for an IAM user. If the request includes a IAM user
  4310. // name, then this action lists all the MFA devices associated with the specified
  4311. // user. If you do not specify a user name, IAM determines the user name implicitly
  4312. // based on the AWS access key ID signing the request for this API.
  4313. //
  4314. // You can paginate the results using the MaxItems and Marker parameters.
  4315. func (c *IAM) ListMFADevices(input *ListMFADevicesInput) (*ListMFADevicesOutput, error) {
  4316. req, out := c.ListMFADevicesRequest(input)
  4317. err := req.Send()
  4318. return out, err
  4319. }
  4320. // ListMFADevicesPages iterates over the pages of a ListMFADevices operation,
  4321. // calling the "fn" function with the response data for each page. To stop
  4322. // iterating, return false from the fn function.
  4323. //
  4324. // See ListMFADevices method for more information on how to use this operation.
  4325. //
  4326. // Note: This operation can generate multiple requests to a service.
  4327. //
  4328. // // Example iterating over at most 3 pages of a ListMFADevices operation.
  4329. // pageNum := 0
  4330. // err := client.ListMFADevicesPages(params,
  4331. // func(page *ListMFADevicesOutput, lastPage bool) bool {
  4332. // pageNum++
  4333. // fmt.Println(page)
  4334. // return pageNum <= 3
  4335. // })
  4336. //
  4337. func (c *IAM) ListMFADevicesPages(input *ListMFADevicesInput, fn func(p *ListMFADevicesOutput, lastPage bool) (shouldContinue bool)) error {
  4338. page, _ := c.ListMFADevicesRequest(input)
  4339. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  4340. return page.EachPage(func(p interface{}, lastPage bool) bool {
  4341. return fn(p.(*ListMFADevicesOutput), lastPage)
  4342. })
  4343. }
  4344. const opListOpenIDConnectProviders = "ListOpenIDConnectProviders"
  4345. // ListOpenIDConnectProvidersRequest generates a "aws/request.Request" representing the
  4346. // client's request for the ListOpenIDConnectProviders operation. The "output" return
  4347. // value can be used to capture response data after the request's "Send" method
  4348. // is called.
  4349. //
  4350. // Creating a request object using this method should be used when you want to inject
  4351. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4352. // access properties on the request object before or after sending the request. If
  4353. // you just want the service response, call the ListOpenIDConnectProviders method directly
  4354. // instead.
  4355. //
  4356. // Note: You must call the "Send" method on the returned request object in order
  4357. // to execute the request.
  4358. //
  4359. // // Example sending a request using the ListOpenIDConnectProvidersRequest method.
  4360. // req, resp := client.ListOpenIDConnectProvidersRequest(params)
  4361. //
  4362. // err := req.Send()
  4363. // if err == nil { // resp is now filled
  4364. // fmt.Println(resp)
  4365. // }
  4366. //
  4367. func (c *IAM) ListOpenIDConnectProvidersRequest(input *ListOpenIDConnectProvidersInput) (req *request.Request, output *ListOpenIDConnectProvidersOutput) {
  4368. op := &request.Operation{
  4369. Name: opListOpenIDConnectProviders,
  4370. HTTPMethod: "POST",
  4371. HTTPPath: "/",
  4372. }
  4373. if input == nil {
  4374. input = &ListOpenIDConnectProvidersInput{}
  4375. }
  4376. req = c.newRequest(op, input, output)
  4377. output = &ListOpenIDConnectProvidersOutput{}
  4378. req.Data = output
  4379. return
  4380. }
  4381. // Lists information about the IAM OpenID Connect (OIDC) provider resource objects
  4382. // defined in the AWS account.
  4383. func (c *IAM) ListOpenIDConnectProviders(input *ListOpenIDConnectProvidersInput) (*ListOpenIDConnectProvidersOutput, error) {
  4384. req, out := c.ListOpenIDConnectProvidersRequest(input)
  4385. err := req.Send()
  4386. return out, err
  4387. }
  4388. const opListPolicies = "ListPolicies"
  4389. // ListPoliciesRequest generates a "aws/request.Request" representing the
  4390. // client's request for the ListPolicies operation. The "output" return
  4391. // value can be used to capture response data after the request's "Send" method
  4392. // is called.
  4393. //
  4394. // Creating a request object using this method should be used when you want to inject
  4395. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4396. // access properties on the request object before or after sending the request. If
  4397. // you just want the service response, call the ListPolicies method directly
  4398. // instead.
  4399. //
  4400. // Note: You must call the "Send" method on the returned request object in order
  4401. // to execute the request.
  4402. //
  4403. // // Example sending a request using the ListPoliciesRequest method.
  4404. // req, resp := client.ListPoliciesRequest(params)
  4405. //
  4406. // err := req.Send()
  4407. // if err == nil { // resp is now filled
  4408. // fmt.Println(resp)
  4409. // }
  4410. //
  4411. func (c *IAM) ListPoliciesRequest(input *ListPoliciesInput) (req *request.Request, output *ListPoliciesOutput) {
  4412. op := &request.Operation{
  4413. Name: opListPolicies,
  4414. HTTPMethod: "POST",
  4415. HTTPPath: "/",
  4416. Paginator: &request.Paginator{
  4417. InputTokens: []string{"Marker"},
  4418. OutputTokens: []string{"Marker"},
  4419. LimitToken: "MaxItems",
  4420. TruncationToken: "IsTruncated",
  4421. },
  4422. }
  4423. if input == nil {
  4424. input = &ListPoliciesInput{}
  4425. }
  4426. req = c.newRequest(op, input, output)
  4427. output = &ListPoliciesOutput{}
  4428. req.Data = output
  4429. return
  4430. }
  4431. // Lists all the managed policies that are available in your AWS account, including
  4432. // your own customer-defined managed policies and all AWS managed policies.
  4433. //
  4434. // You can filter the list of policies that is returned using the optional
  4435. // OnlyAttached, Scope, and PathPrefix parameters. For example, to list only
  4436. // the customer managed policies in your AWS account, set Scope to Local. To
  4437. // list only AWS managed policies, set Scope to AWS.
  4438. //
  4439. // You can paginate the results using the MaxItems and Marker parameters.
  4440. //
  4441. // For more information about managed policies, see Managed Policies and Inline
  4442. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  4443. // in the IAM User Guide.
  4444. func (c *IAM) ListPolicies(input *ListPoliciesInput) (*ListPoliciesOutput, error) {
  4445. req, out := c.ListPoliciesRequest(input)
  4446. err := req.Send()
  4447. return out, err
  4448. }
  4449. // ListPoliciesPages iterates over the pages of a ListPolicies operation,
  4450. // calling the "fn" function with the response data for each page. To stop
  4451. // iterating, return false from the fn function.
  4452. //
  4453. // See ListPolicies method for more information on how to use this operation.
  4454. //
  4455. // Note: This operation can generate multiple requests to a service.
  4456. //
  4457. // // Example iterating over at most 3 pages of a ListPolicies operation.
  4458. // pageNum := 0
  4459. // err := client.ListPoliciesPages(params,
  4460. // func(page *ListPoliciesOutput, lastPage bool) bool {
  4461. // pageNum++
  4462. // fmt.Println(page)
  4463. // return pageNum <= 3
  4464. // })
  4465. //
  4466. func (c *IAM) ListPoliciesPages(input *ListPoliciesInput, fn func(p *ListPoliciesOutput, lastPage bool) (shouldContinue bool)) error {
  4467. page, _ := c.ListPoliciesRequest(input)
  4468. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  4469. return page.EachPage(func(p interface{}, lastPage bool) bool {
  4470. return fn(p.(*ListPoliciesOutput), lastPage)
  4471. })
  4472. }
  4473. const opListPolicyVersions = "ListPolicyVersions"
  4474. // ListPolicyVersionsRequest generates a "aws/request.Request" representing the
  4475. // client's request for the ListPolicyVersions operation. The "output" return
  4476. // value can be used to capture response data after the request's "Send" method
  4477. // is called.
  4478. //
  4479. // Creating a request object using this method should be used when you want to inject
  4480. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4481. // access properties on the request object before or after sending the request. If
  4482. // you just want the service response, call the ListPolicyVersions method directly
  4483. // instead.
  4484. //
  4485. // Note: You must call the "Send" method on the returned request object in order
  4486. // to execute the request.
  4487. //
  4488. // // Example sending a request using the ListPolicyVersionsRequest method.
  4489. // req, resp := client.ListPolicyVersionsRequest(params)
  4490. //
  4491. // err := req.Send()
  4492. // if err == nil { // resp is now filled
  4493. // fmt.Println(resp)
  4494. // }
  4495. //
  4496. func (c *IAM) ListPolicyVersionsRequest(input *ListPolicyVersionsInput) (req *request.Request, output *ListPolicyVersionsOutput) {
  4497. op := &request.Operation{
  4498. Name: opListPolicyVersions,
  4499. HTTPMethod: "POST",
  4500. HTTPPath: "/",
  4501. Paginator: &request.Paginator{
  4502. InputTokens: []string{"Marker"},
  4503. OutputTokens: []string{"Marker"},
  4504. LimitToken: "MaxItems",
  4505. TruncationToken: "IsTruncated",
  4506. },
  4507. }
  4508. if input == nil {
  4509. input = &ListPolicyVersionsInput{}
  4510. }
  4511. req = c.newRequest(op, input, output)
  4512. output = &ListPolicyVersionsOutput{}
  4513. req.Data = output
  4514. return
  4515. }
  4516. // Lists information about the versions of the specified managed policy, including
  4517. // the version that is currently set as the policy's default version.
  4518. //
  4519. // For more information about managed policies, see Managed Policies and Inline
  4520. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  4521. // in the IAM User Guide.
  4522. func (c *IAM) ListPolicyVersions(input *ListPolicyVersionsInput) (*ListPolicyVersionsOutput, error) {
  4523. req, out := c.ListPolicyVersionsRequest(input)
  4524. err := req.Send()
  4525. return out, err
  4526. }
  4527. // ListPolicyVersionsPages iterates over the pages of a ListPolicyVersions operation,
  4528. // calling the "fn" function with the response data for each page. To stop
  4529. // iterating, return false from the fn function.
  4530. //
  4531. // See ListPolicyVersions method for more information on how to use this operation.
  4532. //
  4533. // Note: This operation can generate multiple requests to a service.
  4534. //
  4535. // // Example iterating over at most 3 pages of a ListPolicyVersions operation.
  4536. // pageNum := 0
  4537. // err := client.ListPolicyVersionsPages(params,
  4538. // func(page *ListPolicyVersionsOutput, lastPage bool) bool {
  4539. // pageNum++
  4540. // fmt.Println(page)
  4541. // return pageNum <= 3
  4542. // })
  4543. //
  4544. func (c *IAM) ListPolicyVersionsPages(input *ListPolicyVersionsInput, fn func(p *ListPolicyVersionsOutput, lastPage bool) (shouldContinue bool)) error {
  4545. page, _ := c.ListPolicyVersionsRequest(input)
  4546. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  4547. return page.EachPage(func(p interface{}, lastPage bool) bool {
  4548. return fn(p.(*ListPolicyVersionsOutput), lastPage)
  4549. })
  4550. }
  4551. const opListRolePolicies = "ListRolePolicies"
  4552. // ListRolePoliciesRequest generates a "aws/request.Request" representing the
  4553. // client's request for the ListRolePolicies operation. The "output" return
  4554. // value can be used to capture response data after the request's "Send" method
  4555. // is called.
  4556. //
  4557. // Creating a request object using this method should be used when you want to inject
  4558. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4559. // access properties on the request object before or after sending the request. If
  4560. // you just want the service response, call the ListRolePolicies method directly
  4561. // instead.
  4562. //
  4563. // Note: You must call the "Send" method on the returned request object in order
  4564. // to execute the request.
  4565. //
  4566. // // Example sending a request using the ListRolePoliciesRequest method.
  4567. // req, resp := client.ListRolePoliciesRequest(params)
  4568. //
  4569. // err := req.Send()
  4570. // if err == nil { // resp is now filled
  4571. // fmt.Println(resp)
  4572. // }
  4573. //
  4574. func (c *IAM) ListRolePoliciesRequest(input *ListRolePoliciesInput) (req *request.Request, output *ListRolePoliciesOutput) {
  4575. op := &request.Operation{
  4576. Name: opListRolePolicies,
  4577. HTTPMethod: "POST",
  4578. HTTPPath: "/",
  4579. Paginator: &request.Paginator{
  4580. InputTokens: []string{"Marker"},
  4581. OutputTokens: []string{"Marker"},
  4582. LimitToken: "MaxItems",
  4583. TruncationToken: "IsTruncated",
  4584. },
  4585. }
  4586. if input == nil {
  4587. input = &ListRolePoliciesInput{}
  4588. }
  4589. req = c.newRequest(op, input, output)
  4590. output = &ListRolePoliciesOutput{}
  4591. req.Data = output
  4592. return
  4593. }
  4594. // Lists the names of the inline policies that are embedded in the specified
  4595. // IAM role.
  4596. //
  4597. // An IAM role can also have managed policies attached to it. To list the managed
  4598. // policies that are attached to a role, use ListAttachedRolePolicies. For more
  4599. // information about policies, see Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  4600. // in the IAM User Guide.
  4601. //
  4602. // You can paginate the results using the MaxItems and Marker parameters. If
  4603. // there are no inline policies embedded with the specified role, the action
  4604. // returns an empty list.
  4605. func (c *IAM) ListRolePolicies(input *ListRolePoliciesInput) (*ListRolePoliciesOutput, error) {
  4606. req, out := c.ListRolePoliciesRequest(input)
  4607. err := req.Send()
  4608. return out, err
  4609. }
  4610. // ListRolePoliciesPages iterates over the pages of a ListRolePolicies operation,
  4611. // calling the "fn" function with the response data for each page. To stop
  4612. // iterating, return false from the fn function.
  4613. //
  4614. // See ListRolePolicies method for more information on how to use this operation.
  4615. //
  4616. // Note: This operation can generate multiple requests to a service.
  4617. //
  4618. // // Example iterating over at most 3 pages of a ListRolePolicies operation.
  4619. // pageNum := 0
  4620. // err := client.ListRolePoliciesPages(params,
  4621. // func(page *ListRolePoliciesOutput, lastPage bool) bool {
  4622. // pageNum++
  4623. // fmt.Println(page)
  4624. // return pageNum <= 3
  4625. // })
  4626. //
  4627. func (c *IAM) ListRolePoliciesPages(input *ListRolePoliciesInput, fn func(p *ListRolePoliciesOutput, lastPage bool) (shouldContinue bool)) error {
  4628. page, _ := c.ListRolePoliciesRequest(input)
  4629. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  4630. return page.EachPage(func(p interface{}, lastPage bool) bool {
  4631. return fn(p.(*ListRolePoliciesOutput), lastPage)
  4632. })
  4633. }
  4634. const opListRoles = "ListRoles"
  4635. // ListRolesRequest generates a "aws/request.Request" representing the
  4636. // client's request for the ListRoles operation. The "output" return
  4637. // value can be used to capture response data after the request's "Send" method
  4638. // is called.
  4639. //
  4640. // Creating a request object using this method should be used when you want to inject
  4641. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4642. // access properties on the request object before or after sending the request. If
  4643. // you just want the service response, call the ListRoles method directly
  4644. // instead.
  4645. //
  4646. // Note: You must call the "Send" method on the returned request object in order
  4647. // to execute the request.
  4648. //
  4649. // // Example sending a request using the ListRolesRequest method.
  4650. // req, resp := client.ListRolesRequest(params)
  4651. //
  4652. // err := req.Send()
  4653. // if err == nil { // resp is now filled
  4654. // fmt.Println(resp)
  4655. // }
  4656. //
  4657. func (c *IAM) ListRolesRequest(input *ListRolesInput) (req *request.Request, output *ListRolesOutput) {
  4658. op := &request.Operation{
  4659. Name: opListRoles,
  4660. HTTPMethod: "POST",
  4661. HTTPPath: "/",
  4662. Paginator: &request.Paginator{
  4663. InputTokens: []string{"Marker"},
  4664. OutputTokens: []string{"Marker"},
  4665. LimitToken: "MaxItems",
  4666. TruncationToken: "IsTruncated",
  4667. },
  4668. }
  4669. if input == nil {
  4670. input = &ListRolesInput{}
  4671. }
  4672. req = c.newRequest(op, input, output)
  4673. output = &ListRolesOutput{}
  4674. req.Data = output
  4675. return
  4676. }
  4677. // Lists the IAM roles that have the specified path prefix. If there are none,
  4678. // the action returns an empty list. For more information about roles, go to
  4679. // Working with Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html).
  4680. //
  4681. // You can paginate the results using the MaxItems and Marker parameters.
  4682. func (c *IAM) ListRoles(input *ListRolesInput) (*ListRolesOutput, error) {
  4683. req, out := c.ListRolesRequest(input)
  4684. err := req.Send()
  4685. return out, err
  4686. }
  4687. // ListRolesPages iterates over the pages of a ListRoles operation,
  4688. // calling the "fn" function with the response data for each page. To stop
  4689. // iterating, return false from the fn function.
  4690. //
  4691. // See ListRoles method for more information on how to use this operation.
  4692. //
  4693. // Note: This operation can generate multiple requests to a service.
  4694. //
  4695. // // Example iterating over at most 3 pages of a ListRoles operation.
  4696. // pageNum := 0
  4697. // err := client.ListRolesPages(params,
  4698. // func(page *ListRolesOutput, lastPage bool) bool {
  4699. // pageNum++
  4700. // fmt.Println(page)
  4701. // return pageNum <= 3
  4702. // })
  4703. //
  4704. func (c *IAM) ListRolesPages(input *ListRolesInput, fn func(p *ListRolesOutput, lastPage bool) (shouldContinue bool)) error {
  4705. page, _ := c.ListRolesRequest(input)
  4706. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  4707. return page.EachPage(func(p interface{}, lastPage bool) bool {
  4708. return fn(p.(*ListRolesOutput), lastPage)
  4709. })
  4710. }
  4711. const opListSAMLProviders = "ListSAMLProviders"
  4712. // ListSAMLProvidersRequest generates a "aws/request.Request" representing the
  4713. // client's request for the ListSAMLProviders operation. The "output" return
  4714. // value can be used to capture response data after the request's "Send" method
  4715. // is called.
  4716. //
  4717. // Creating a request object using this method should be used when you want to inject
  4718. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4719. // access properties on the request object before or after sending the request. If
  4720. // you just want the service response, call the ListSAMLProviders method directly
  4721. // instead.
  4722. //
  4723. // Note: You must call the "Send" method on the returned request object in order
  4724. // to execute the request.
  4725. //
  4726. // // Example sending a request using the ListSAMLProvidersRequest method.
  4727. // req, resp := client.ListSAMLProvidersRequest(params)
  4728. //
  4729. // err := req.Send()
  4730. // if err == nil { // resp is now filled
  4731. // fmt.Println(resp)
  4732. // }
  4733. //
  4734. func (c *IAM) ListSAMLProvidersRequest(input *ListSAMLProvidersInput) (req *request.Request, output *ListSAMLProvidersOutput) {
  4735. op := &request.Operation{
  4736. Name: opListSAMLProviders,
  4737. HTTPMethod: "POST",
  4738. HTTPPath: "/",
  4739. }
  4740. if input == nil {
  4741. input = &ListSAMLProvidersInput{}
  4742. }
  4743. req = c.newRequest(op, input, output)
  4744. output = &ListSAMLProvidersOutput{}
  4745. req.Data = output
  4746. return
  4747. }
  4748. // Lists the SAML provider resource objects defined in IAM in the account.
  4749. //
  4750. // This operation requires Signature Version 4 (http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
  4751. func (c *IAM) ListSAMLProviders(input *ListSAMLProvidersInput) (*ListSAMLProvidersOutput, error) {
  4752. req, out := c.ListSAMLProvidersRequest(input)
  4753. err := req.Send()
  4754. return out, err
  4755. }
  4756. const opListSSHPublicKeys = "ListSSHPublicKeys"
  4757. // ListSSHPublicKeysRequest generates a "aws/request.Request" representing the
  4758. // client's request for the ListSSHPublicKeys operation. The "output" return
  4759. // value can be used to capture response data after the request's "Send" method
  4760. // is called.
  4761. //
  4762. // Creating a request object using this method should be used when you want to inject
  4763. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4764. // access properties on the request object before or after sending the request. If
  4765. // you just want the service response, call the ListSSHPublicKeys method directly
  4766. // instead.
  4767. //
  4768. // Note: You must call the "Send" method on the returned request object in order
  4769. // to execute the request.
  4770. //
  4771. // // Example sending a request using the ListSSHPublicKeysRequest method.
  4772. // req, resp := client.ListSSHPublicKeysRequest(params)
  4773. //
  4774. // err := req.Send()
  4775. // if err == nil { // resp is now filled
  4776. // fmt.Println(resp)
  4777. // }
  4778. //
  4779. func (c *IAM) ListSSHPublicKeysRequest(input *ListSSHPublicKeysInput) (req *request.Request, output *ListSSHPublicKeysOutput) {
  4780. op := &request.Operation{
  4781. Name: opListSSHPublicKeys,
  4782. HTTPMethod: "POST",
  4783. HTTPPath: "/",
  4784. Paginator: &request.Paginator{
  4785. InputTokens: []string{"Marker"},
  4786. OutputTokens: []string{"Marker"},
  4787. LimitToken: "MaxItems",
  4788. TruncationToken: "IsTruncated",
  4789. },
  4790. }
  4791. if input == nil {
  4792. input = &ListSSHPublicKeysInput{}
  4793. }
  4794. req = c.newRequest(op, input, output)
  4795. output = &ListSSHPublicKeysOutput{}
  4796. req.Data = output
  4797. return
  4798. }
  4799. // Returns information about the SSH public keys associated with the specified
  4800. // IAM user. If there are none, the action returns an empty list.
  4801. //
  4802. // The SSH public keys returned by this action are used only for authenticating
  4803. // the IAM user to an AWS CodeCommit repository. For more information about
  4804. // using SSH keys to authenticate to an AWS CodeCommit repository, see Set up
  4805. // AWS CodeCommit for SSH Connections (http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html)
  4806. // in the AWS CodeCommit User Guide.
  4807. //
  4808. // Although each user is limited to a small number of keys, you can still paginate
  4809. // the results using the MaxItems and Marker parameters.
  4810. func (c *IAM) ListSSHPublicKeys(input *ListSSHPublicKeysInput) (*ListSSHPublicKeysOutput, error) {
  4811. req, out := c.ListSSHPublicKeysRequest(input)
  4812. err := req.Send()
  4813. return out, err
  4814. }
  4815. // ListSSHPublicKeysPages iterates over the pages of a ListSSHPublicKeys operation,
  4816. // calling the "fn" function with the response data for each page. To stop
  4817. // iterating, return false from the fn function.
  4818. //
  4819. // See ListSSHPublicKeys method for more information on how to use this operation.
  4820. //
  4821. // Note: This operation can generate multiple requests to a service.
  4822. //
  4823. // // Example iterating over at most 3 pages of a ListSSHPublicKeys operation.
  4824. // pageNum := 0
  4825. // err := client.ListSSHPublicKeysPages(params,
  4826. // func(page *ListSSHPublicKeysOutput, lastPage bool) bool {
  4827. // pageNum++
  4828. // fmt.Println(page)
  4829. // return pageNum <= 3
  4830. // })
  4831. //
  4832. func (c *IAM) ListSSHPublicKeysPages(input *ListSSHPublicKeysInput, fn func(p *ListSSHPublicKeysOutput, lastPage bool) (shouldContinue bool)) error {
  4833. page, _ := c.ListSSHPublicKeysRequest(input)
  4834. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  4835. return page.EachPage(func(p interface{}, lastPage bool) bool {
  4836. return fn(p.(*ListSSHPublicKeysOutput), lastPage)
  4837. })
  4838. }
  4839. const opListServerCertificates = "ListServerCertificates"
  4840. // ListServerCertificatesRequest generates a "aws/request.Request" representing the
  4841. // client's request for the ListServerCertificates operation. The "output" return
  4842. // value can be used to capture response data after the request's "Send" method
  4843. // is called.
  4844. //
  4845. // Creating a request object using this method should be used when you want to inject
  4846. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4847. // access properties on the request object before or after sending the request. If
  4848. // you just want the service response, call the ListServerCertificates method directly
  4849. // instead.
  4850. //
  4851. // Note: You must call the "Send" method on the returned request object in order
  4852. // to execute the request.
  4853. //
  4854. // // Example sending a request using the ListServerCertificatesRequest method.
  4855. // req, resp := client.ListServerCertificatesRequest(params)
  4856. //
  4857. // err := req.Send()
  4858. // if err == nil { // resp is now filled
  4859. // fmt.Println(resp)
  4860. // }
  4861. //
  4862. func (c *IAM) ListServerCertificatesRequest(input *ListServerCertificatesInput) (req *request.Request, output *ListServerCertificatesOutput) {
  4863. op := &request.Operation{
  4864. Name: opListServerCertificates,
  4865. HTTPMethod: "POST",
  4866. HTTPPath: "/",
  4867. Paginator: &request.Paginator{
  4868. InputTokens: []string{"Marker"},
  4869. OutputTokens: []string{"Marker"},
  4870. LimitToken: "MaxItems",
  4871. TruncationToken: "IsTruncated",
  4872. },
  4873. }
  4874. if input == nil {
  4875. input = &ListServerCertificatesInput{}
  4876. }
  4877. req = c.newRequest(op, input, output)
  4878. output = &ListServerCertificatesOutput{}
  4879. req.Data = output
  4880. return
  4881. }
  4882. // Lists the server certificates stored in IAM that have the specified path
  4883. // prefix. If none exist, the action returns an empty list.
  4884. //
  4885. // You can paginate the results using the MaxItems and Marker parameters.
  4886. //
  4887. // For more information about working with server certificates, including a
  4888. // list of AWS services that can use the server certificates that you manage
  4889. // with IAM, go to Working with Server Certificates (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)
  4890. // in the IAM User Guide.
  4891. func (c *IAM) ListServerCertificates(input *ListServerCertificatesInput) (*ListServerCertificatesOutput, error) {
  4892. req, out := c.ListServerCertificatesRequest(input)
  4893. err := req.Send()
  4894. return out, err
  4895. }
  4896. // ListServerCertificatesPages iterates over the pages of a ListServerCertificates operation,
  4897. // calling the "fn" function with the response data for each page. To stop
  4898. // iterating, return false from the fn function.
  4899. //
  4900. // See ListServerCertificates method for more information on how to use this operation.
  4901. //
  4902. // Note: This operation can generate multiple requests to a service.
  4903. //
  4904. // // Example iterating over at most 3 pages of a ListServerCertificates operation.
  4905. // pageNum := 0
  4906. // err := client.ListServerCertificatesPages(params,
  4907. // func(page *ListServerCertificatesOutput, lastPage bool) bool {
  4908. // pageNum++
  4909. // fmt.Println(page)
  4910. // return pageNum <= 3
  4911. // })
  4912. //
  4913. func (c *IAM) ListServerCertificatesPages(input *ListServerCertificatesInput, fn func(p *ListServerCertificatesOutput, lastPage bool) (shouldContinue bool)) error {
  4914. page, _ := c.ListServerCertificatesRequest(input)
  4915. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  4916. return page.EachPage(func(p interface{}, lastPage bool) bool {
  4917. return fn(p.(*ListServerCertificatesOutput), lastPage)
  4918. })
  4919. }
  4920. const opListSigningCertificates = "ListSigningCertificates"
  4921. // ListSigningCertificatesRequest generates a "aws/request.Request" representing the
  4922. // client's request for the ListSigningCertificates operation. The "output" return
  4923. // value can be used to capture response data after the request's "Send" method
  4924. // is called.
  4925. //
  4926. // Creating a request object using this method should be used when you want to inject
  4927. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4928. // access properties on the request object before or after sending the request. If
  4929. // you just want the service response, call the ListSigningCertificates method directly
  4930. // instead.
  4931. //
  4932. // Note: You must call the "Send" method on the returned request object in order
  4933. // to execute the request.
  4934. //
  4935. // // Example sending a request using the ListSigningCertificatesRequest method.
  4936. // req, resp := client.ListSigningCertificatesRequest(params)
  4937. //
  4938. // err := req.Send()
  4939. // if err == nil { // resp is now filled
  4940. // fmt.Println(resp)
  4941. // }
  4942. //
  4943. func (c *IAM) ListSigningCertificatesRequest(input *ListSigningCertificatesInput) (req *request.Request, output *ListSigningCertificatesOutput) {
  4944. op := &request.Operation{
  4945. Name: opListSigningCertificates,
  4946. HTTPMethod: "POST",
  4947. HTTPPath: "/",
  4948. Paginator: &request.Paginator{
  4949. InputTokens: []string{"Marker"},
  4950. OutputTokens: []string{"Marker"},
  4951. LimitToken: "MaxItems",
  4952. TruncationToken: "IsTruncated",
  4953. },
  4954. }
  4955. if input == nil {
  4956. input = &ListSigningCertificatesInput{}
  4957. }
  4958. req = c.newRequest(op, input, output)
  4959. output = &ListSigningCertificatesOutput{}
  4960. req.Data = output
  4961. return
  4962. }
  4963. // Returns information about the signing certificates associated with the specified
  4964. // IAM user. If there are none, the action returns an empty list.
  4965. //
  4966. // Although each user is limited to a small number of signing certificates,
  4967. // you can still paginate the results using the MaxItems and Marker parameters.
  4968. //
  4969. // If the UserName field is not specified, the user name is determined implicitly
  4970. // based on the AWS access key ID used to sign the request for this API. Because
  4971. // this action works for access keys under the AWS account, you can use this
  4972. // action to manage root credentials even if the AWS account has no associated
  4973. // users.
  4974. func (c *IAM) ListSigningCertificates(input *ListSigningCertificatesInput) (*ListSigningCertificatesOutput, error) {
  4975. req, out := c.ListSigningCertificatesRequest(input)
  4976. err := req.Send()
  4977. return out, err
  4978. }
  4979. // ListSigningCertificatesPages iterates over the pages of a ListSigningCertificates operation,
  4980. // calling the "fn" function with the response data for each page. To stop
  4981. // iterating, return false from the fn function.
  4982. //
  4983. // See ListSigningCertificates method for more information on how to use this operation.
  4984. //
  4985. // Note: This operation can generate multiple requests to a service.
  4986. //
  4987. // // Example iterating over at most 3 pages of a ListSigningCertificates operation.
  4988. // pageNum := 0
  4989. // err := client.ListSigningCertificatesPages(params,
  4990. // func(page *ListSigningCertificatesOutput, lastPage bool) bool {
  4991. // pageNum++
  4992. // fmt.Println(page)
  4993. // return pageNum <= 3
  4994. // })
  4995. //
  4996. func (c *IAM) ListSigningCertificatesPages(input *ListSigningCertificatesInput, fn func(p *ListSigningCertificatesOutput, lastPage bool) (shouldContinue bool)) error {
  4997. page, _ := c.ListSigningCertificatesRequest(input)
  4998. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  4999. return page.EachPage(func(p interface{}, lastPage bool) bool {
  5000. return fn(p.(*ListSigningCertificatesOutput), lastPage)
  5001. })
  5002. }
  5003. const opListUserPolicies = "ListUserPolicies"
  5004. // ListUserPoliciesRequest generates a "aws/request.Request" representing the
  5005. // client's request for the ListUserPolicies operation. The "output" return
  5006. // value can be used to capture response data after the request's "Send" method
  5007. // is called.
  5008. //
  5009. // Creating a request object using this method should be used when you want to inject
  5010. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5011. // access properties on the request object before or after sending the request. If
  5012. // you just want the service response, call the ListUserPolicies method directly
  5013. // instead.
  5014. //
  5015. // Note: You must call the "Send" method on the returned request object in order
  5016. // to execute the request.
  5017. //
  5018. // // Example sending a request using the ListUserPoliciesRequest method.
  5019. // req, resp := client.ListUserPoliciesRequest(params)
  5020. //
  5021. // err := req.Send()
  5022. // if err == nil { // resp is now filled
  5023. // fmt.Println(resp)
  5024. // }
  5025. //
  5026. func (c *IAM) ListUserPoliciesRequest(input *ListUserPoliciesInput) (req *request.Request, output *ListUserPoliciesOutput) {
  5027. op := &request.Operation{
  5028. Name: opListUserPolicies,
  5029. HTTPMethod: "POST",
  5030. HTTPPath: "/",
  5031. Paginator: &request.Paginator{
  5032. InputTokens: []string{"Marker"},
  5033. OutputTokens: []string{"Marker"},
  5034. LimitToken: "MaxItems",
  5035. TruncationToken: "IsTruncated",
  5036. },
  5037. }
  5038. if input == nil {
  5039. input = &ListUserPoliciesInput{}
  5040. }
  5041. req = c.newRequest(op, input, output)
  5042. output = &ListUserPoliciesOutput{}
  5043. req.Data = output
  5044. return
  5045. }
  5046. // Lists the names of the inline policies embedded in the specified IAM user.
  5047. //
  5048. // An IAM user can also have managed policies attached to it. To list the managed
  5049. // policies that are attached to a user, use ListAttachedUserPolicies. For more
  5050. // information about policies, see Managed Policies and Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  5051. // in the IAM User Guide.
  5052. //
  5053. // You can paginate the results using the MaxItems and Marker parameters. If
  5054. // there are no inline policies embedded with the specified user, the action
  5055. // returns an empty list.
  5056. func (c *IAM) ListUserPolicies(input *ListUserPoliciesInput) (*ListUserPoliciesOutput, error) {
  5057. req, out := c.ListUserPoliciesRequest(input)
  5058. err := req.Send()
  5059. return out, err
  5060. }
  5061. // ListUserPoliciesPages iterates over the pages of a ListUserPolicies operation,
  5062. // calling the "fn" function with the response data for each page. To stop
  5063. // iterating, return false from the fn function.
  5064. //
  5065. // See ListUserPolicies method for more information on how to use this operation.
  5066. //
  5067. // Note: This operation can generate multiple requests to a service.
  5068. //
  5069. // // Example iterating over at most 3 pages of a ListUserPolicies operation.
  5070. // pageNum := 0
  5071. // err := client.ListUserPoliciesPages(params,
  5072. // func(page *ListUserPoliciesOutput, lastPage bool) bool {
  5073. // pageNum++
  5074. // fmt.Println(page)
  5075. // return pageNum <= 3
  5076. // })
  5077. //
  5078. func (c *IAM) ListUserPoliciesPages(input *ListUserPoliciesInput, fn func(p *ListUserPoliciesOutput, lastPage bool) (shouldContinue bool)) error {
  5079. page, _ := c.ListUserPoliciesRequest(input)
  5080. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  5081. return page.EachPage(func(p interface{}, lastPage bool) bool {
  5082. return fn(p.(*ListUserPoliciesOutput), lastPage)
  5083. })
  5084. }
  5085. const opListUsers = "ListUsers"
  5086. // ListUsersRequest generates a "aws/request.Request" representing the
  5087. // client's request for the ListUsers operation. The "output" return
  5088. // value can be used to capture response data after the request's "Send" method
  5089. // is called.
  5090. //
  5091. // Creating a request object using this method should be used when you want to inject
  5092. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5093. // access properties on the request object before or after sending the request. If
  5094. // you just want the service response, call the ListUsers method directly
  5095. // instead.
  5096. //
  5097. // Note: You must call the "Send" method on the returned request object in order
  5098. // to execute the request.
  5099. //
  5100. // // Example sending a request using the ListUsersRequest method.
  5101. // req, resp := client.ListUsersRequest(params)
  5102. //
  5103. // err := req.Send()
  5104. // if err == nil { // resp is now filled
  5105. // fmt.Println(resp)
  5106. // }
  5107. //
  5108. func (c *IAM) ListUsersRequest(input *ListUsersInput) (req *request.Request, output *ListUsersOutput) {
  5109. op := &request.Operation{
  5110. Name: opListUsers,
  5111. HTTPMethod: "POST",
  5112. HTTPPath: "/",
  5113. Paginator: &request.Paginator{
  5114. InputTokens: []string{"Marker"},
  5115. OutputTokens: []string{"Marker"},
  5116. LimitToken: "MaxItems",
  5117. TruncationToken: "IsTruncated",
  5118. },
  5119. }
  5120. if input == nil {
  5121. input = &ListUsersInput{}
  5122. }
  5123. req = c.newRequest(op, input, output)
  5124. output = &ListUsersOutput{}
  5125. req.Data = output
  5126. return
  5127. }
  5128. // Lists the IAM users that have the specified path prefix. If no path prefix
  5129. // is specified, the action returns all users in the AWS account. If there are
  5130. // none, the action returns an empty list.
  5131. //
  5132. // You can paginate the results using the MaxItems and Marker parameters.
  5133. func (c *IAM) ListUsers(input *ListUsersInput) (*ListUsersOutput, error) {
  5134. req, out := c.ListUsersRequest(input)
  5135. err := req.Send()
  5136. return out, err
  5137. }
  5138. // ListUsersPages iterates over the pages of a ListUsers operation,
  5139. // calling the "fn" function with the response data for each page. To stop
  5140. // iterating, return false from the fn function.
  5141. //
  5142. // See ListUsers method for more information on how to use this operation.
  5143. //
  5144. // Note: This operation can generate multiple requests to a service.
  5145. //
  5146. // // Example iterating over at most 3 pages of a ListUsers operation.
  5147. // pageNum := 0
  5148. // err := client.ListUsersPages(params,
  5149. // func(page *ListUsersOutput, lastPage bool) bool {
  5150. // pageNum++
  5151. // fmt.Println(page)
  5152. // return pageNum <= 3
  5153. // })
  5154. //
  5155. func (c *IAM) ListUsersPages(input *ListUsersInput, fn func(p *ListUsersOutput, lastPage bool) (shouldContinue bool)) error {
  5156. page, _ := c.ListUsersRequest(input)
  5157. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  5158. return page.EachPage(func(p interface{}, lastPage bool) bool {
  5159. return fn(p.(*ListUsersOutput), lastPage)
  5160. })
  5161. }
  5162. const opListVirtualMFADevices = "ListVirtualMFADevices"
  5163. // ListVirtualMFADevicesRequest generates a "aws/request.Request" representing the
  5164. // client's request for the ListVirtualMFADevices operation. The "output" return
  5165. // value can be used to capture response data after the request's "Send" method
  5166. // is called.
  5167. //
  5168. // Creating a request object using this method should be used when you want to inject
  5169. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5170. // access properties on the request object before or after sending the request. If
  5171. // you just want the service response, call the ListVirtualMFADevices method directly
  5172. // instead.
  5173. //
  5174. // Note: You must call the "Send" method on the returned request object in order
  5175. // to execute the request.
  5176. //
  5177. // // Example sending a request using the ListVirtualMFADevicesRequest method.
  5178. // req, resp := client.ListVirtualMFADevicesRequest(params)
  5179. //
  5180. // err := req.Send()
  5181. // if err == nil { // resp is now filled
  5182. // fmt.Println(resp)
  5183. // }
  5184. //
  5185. func (c *IAM) ListVirtualMFADevicesRequest(input *ListVirtualMFADevicesInput) (req *request.Request, output *ListVirtualMFADevicesOutput) {
  5186. op := &request.Operation{
  5187. Name: opListVirtualMFADevices,
  5188. HTTPMethod: "POST",
  5189. HTTPPath: "/",
  5190. Paginator: &request.Paginator{
  5191. InputTokens: []string{"Marker"},
  5192. OutputTokens: []string{"Marker"},
  5193. LimitToken: "MaxItems",
  5194. TruncationToken: "IsTruncated",
  5195. },
  5196. }
  5197. if input == nil {
  5198. input = &ListVirtualMFADevicesInput{}
  5199. }
  5200. req = c.newRequest(op, input, output)
  5201. output = &ListVirtualMFADevicesOutput{}
  5202. req.Data = output
  5203. return
  5204. }
  5205. // Lists the virtual MFA devices defined in the AWS account by assignment status.
  5206. // If you do not specify an assignment status, the action returns a list of
  5207. // all virtual MFA devices. Assignment status can be Assigned, Unassigned, or
  5208. // Any.
  5209. //
  5210. // You can paginate the results using the MaxItems and Marker parameters.
  5211. func (c *IAM) ListVirtualMFADevices(input *ListVirtualMFADevicesInput) (*ListVirtualMFADevicesOutput, error) {
  5212. req, out := c.ListVirtualMFADevicesRequest(input)
  5213. err := req.Send()
  5214. return out, err
  5215. }
  5216. // ListVirtualMFADevicesPages iterates over the pages of a ListVirtualMFADevices operation,
  5217. // calling the "fn" function with the response data for each page. To stop
  5218. // iterating, return false from the fn function.
  5219. //
  5220. // See ListVirtualMFADevices method for more information on how to use this operation.
  5221. //
  5222. // Note: This operation can generate multiple requests to a service.
  5223. //
  5224. // // Example iterating over at most 3 pages of a ListVirtualMFADevices operation.
  5225. // pageNum := 0
  5226. // err := client.ListVirtualMFADevicesPages(params,
  5227. // func(page *ListVirtualMFADevicesOutput, lastPage bool) bool {
  5228. // pageNum++
  5229. // fmt.Println(page)
  5230. // return pageNum <= 3
  5231. // })
  5232. //
  5233. func (c *IAM) ListVirtualMFADevicesPages(input *ListVirtualMFADevicesInput, fn func(p *ListVirtualMFADevicesOutput, lastPage bool) (shouldContinue bool)) error {
  5234. page, _ := c.ListVirtualMFADevicesRequest(input)
  5235. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  5236. return page.EachPage(func(p interface{}, lastPage bool) bool {
  5237. return fn(p.(*ListVirtualMFADevicesOutput), lastPage)
  5238. })
  5239. }
  5240. const opPutGroupPolicy = "PutGroupPolicy"
  5241. // PutGroupPolicyRequest generates a "aws/request.Request" representing the
  5242. // client's request for the PutGroupPolicy operation. The "output" return
  5243. // value can be used to capture response data after the request's "Send" method
  5244. // is called.
  5245. //
  5246. // Creating a request object using this method should be used when you want to inject
  5247. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5248. // access properties on the request object before or after sending the request. If
  5249. // you just want the service response, call the PutGroupPolicy method directly
  5250. // instead.
  5251. //
  5252. // Note: You must call the "Send" method on the returned request object in order
  5253. // to execute the request.
  5254. //
  5255. // // Example sending a request using the PutGroupPolicyRequest method.
  5256. // req, resp := client.PutGroupPolicyRequest(params)
  5257. //
  5258. // err := req.Send()
  5259. // if err == nil { // resp is now filled
  5260. // fmt.Println(resp)
  5261. // }
  5262. //
  5263. func (c *IAM) PutGroupPolicyRequest(input *PutGroupPolicyInput) (req *request.Request, output *PutGroupPolicyOutput) {
  5264. op := &request.Operation{
  5265. Name: opPutGroupPolicy,
  5266. HTTPMethod: "POST",
  5267. HTTPPath: "/",
  5268. }
  5269. if input == nil {
  5270. input = &PutGroupPolicyInput{}
  5271. }
  5272. req = c.newRequest(op, input, output)
  5273. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  5274. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  5275. output = &PutGroupPolicyOutput{}
  5276. req.Data = output
  5277. return
  5278. }
  5279. // Adds or updates an inline policy document that is embedded in the specified
  5280. // IAM group.
  5281. //
  5282. // A user can also have managed policies attached to it. To attach a managed
  5283. // policy to a group, use AttachGroupPolicy. To create a new managed policy,
  5284. // use CreatePolicy. For information about policies, see Managed Policies and
  5285. // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  5286. // in the IAM User Guide.
  5287. //
  5288. // For information about limits on the number of inline policies that you can
  5289. // embed in a group, see Limitations on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
  5290. // in the IAM User Guide.
  5291. //
  5292. // Because policy documents can be large, you should use POST rather than
  5293. // GET when calling PutGroupPolicy. For general information about using the
  5294. // Query API with IAM, go to Making Query Requests (http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html)
  5295. // in the IAM User Guide.
  5296. func (c *IAM) PutGroupPolicy(input *PutGroupPolicyInput) (*PutGroupPolicyOutput, error) {
  5297. req, out := c.PutGroupPolicyRequest(input)
  5298. err := req.Send()
  5299. return out, err
  5300. }
  5301. const opPutRolePolicy = "PutRolePolicy"
  5302. // PutRolePolicyRequest generates a "aws/request.Request" representing the
  5303. // client's request for the PutRolePolicy operation. The "output" return
  5304. // value can be used to capture response data after the request's "Send" method
  5305. // is called.
  5306. //
  5307. // Creating a request object using this method should be used when you want to inject
  5308. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5309. // access properties on the request object before or after sending the request. If
  5310. // you just want the service response, call the PutRolePolicy method directly
  5311. // instead.
  5312. //
  5313. // Note: You must call the "Send" method on the returned request object in order
  5314. // to execute the request.
  5315. //
  5316. // // Example sending a request using the PutRolePolicyRequest method.
  5317. // req, resp := client.PutRolePolicyRequest(params)
  5318. //
  5319. // err := req.Send()
  5320. // if err == nil { // resp is now filled
  5321. // fmt.Println(resp)
  5322. // }
  5323. //
  5324. func (c *IAM) PutRolePolicyRequest(input *PutRolePolicyInput) (req *request.Request, output *PutRolePolicyOutput) {
  5325. op := &request.Operation{
  5326. Name: opPutRolePolicy,
  5327. HTTPMethod: "POST",
  5328. HTTPPath: "/",
  5329. }
  5330. if input == nil {
  5331. input = &PutRolePolicyInput{}
  5332. }
  5333. req = c.newRequest(op, input, output)
  5334. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  5335. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  5336. output = &PutRolePolicyOutput{}
  5337. req.Data = output
  5338. return
  5339. }
  5340. // Adds or updates an inline policy document that is embedded in the specified
  5341. // IAM role.
  5342. //
  5343. // When you embed an inline policy in a role, the inline policy is used as
  5344. // part of the role's access (permissions) policy. The role's trust policy is
  5345. // created at the same time as the role, using CreateRole. You can update a
  5346. // role's trust policy using UpdateAssumeRolePolicy. For more information about
  5347. // IAM roles, go to Using Roles to Delegate Permissions and Federate Identities
  5348. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html).
  5349. //
  5350. // A role can also have a managed policy attached to it. To attach a managed
  5351. // policy to a role, use AttachRolePolicy. To create a new managed policy, use
  5352. // CreatePolicy. For information about policies, see Managed Policies and Inline
  5353. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  5354. // in the IAM User Guide.
  5355. //
  5356. // For information about limits on the number of inline policies that you can
  5357. // embed with a role, see Limitations on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
  5358. // in the IAM User Guide.
  5359. //
  5360. // Because policy documents can be large, you should use POST rather than
  5361. // GET when calling PutRolePolicy. For general information about using the Query
  5362. // API with IAM, go to Making Query Requests (http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html)
  5363. // in the IAM User Guide.
  5364. func (c *IAM) PutRolePolicy(input *PutRolePolicyInput) (*PutRolePolicyOutput, error) {
  5365. req, out := c.PutRolePolicyRequest(input)
  5366. err := req.Send()
  5367. return out, err
  5368. }
  5369. const opPutUserPolicy = "PutUserPolicy"
  5370. // PutUserPolicyRequest generates a "aws/request.Request" representing the
  5371. // client's request for the PutUserPolicy operation. The "output" return
  5372. // value can be used to capture response data after the request's "Send" method
  5373. // is called.
  5374. //
  5375. // Creating a request object using this method should be used when you want to inject
  5376. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5377. // access properties on the request object before or after sending the request. If
  5378. // you just want the service response, call the PutUserPolicy method directly
  5379. // instead.
  5380. //
  5381. // Note: You must call the "Send" method on the returned request object in order
  5382. // to execute the request.
  5383. //
  5384. // // Example sending a request using the PutUserPolicyRequest method.
  5385. // req, resp := client.PutUserPolicyRequest(params)
  5386. //
  5387. // err := req.Send()
  5388. // if err == nil { // resp is now filled
  5389. // fmt.Println(resp)
  5390. // }
  5391. //
  5392. func (c *IAM) PutUserPolicyRequest(input *PutUserPolicyInput) (req *request.Request, output *PutUserPolicyOutput) {
  5393. op := &request.Operation{
  5394. Name: opPutUserPolicy,
  5395. HTTPMethod: "POST",
  5396. HTTPPath: "/",
  5397. }
  5398. if input == nil {
  5399. input = &PutUserPolicyInput{}
  5400. }
  5401. req = c.newRequest(op, input, output)
  5402. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  5403. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  5404. output = &PutUserPolicyOutput{}
  5405. req.Data = output
  5406. return
  5407. }
  5408. // Adds or updates an inline policy document that is embedded in the specified
  5409. // IAM user.
  5410. //
  5411. // An IAM user can also have a managed policy attached to it. To attach a managed
  5412. // policy to a user, use AttachUserPolicy. To create a new managed policy, use
  5413. // CreatePolicy. For information about policies, see Managed Policies and Inline
  5414. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  5415. // in the IAM User Guide.
  5416. //
  5417. // For information about limits on the number of inline policies that you can
  5418. // embed in a user, see Limitations on IAM Entities (http://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html)
  5419. // in the IAM User Guide.
  5420. //
  5421. // Because policy documents can be large, you should use POST rather than
  5422. // GET when calling PutUserPolicy. For general information about using the Query
  5423. // API with IAM, go to Making Query Requests (http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html)
  5424. // in the IAM User Guide.
  5425. func (c *IAM) PutUserPolicy(input *PutUserPolicyInput) (*PutUserPolicyOutput, error) {
  5426. req, out := c.PutUserPolicyRequest(input)
  5427. err := req.Send()
  5428. return out, err
  5429. }
  5430. const opRemoveClientIDFromOpenIDConnectProvider = "RemoveClientIDFromOpenIDConnectProvider"
  5431. // RemoveClientIDFromOpenIDConnectProviderRequest generates a "aws/request.Request" representing the
  5432. // client's request for the RemoveClientIDFromOpenIDConnectProvider operation. The "output" return
  5433. // value can be used to capture response data after the request's "Send" method
  5434. // is called.
  5435. //
  5436. // Creating a request object using this method should be used when you want to inject
  5437. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5438. // access properties on the request object before or after sending the request. If
  5439. // you just want the service response, call the RemoveClientIDFromOpenIDConnectProvider method directly
  5440. // instead.
  5441. //
  5442. // Note: You must call the "Send" method on the returned request object in order
  5443. // to execute the request.
  5444. //
  5445. // // Example sending a request using the RemoveClientIDFromOpenIDConnectProviderRequest method.
  5446. // req, resp := client.RemoveClientIDFromOpenIDConnectProviderRequest(params)
  5447. //
  5448. // err := req.Send()
  5449. // if err == nil { // resp is now filled
  5450. // fmt.Println(resp)
  5451. // }
  5452. //
  5453. func (c *IAM) RemoveClientIDFromOpenIDConnectProviderRequest(input *RemoveClientIDFromOpenIDConnectProviderInput) (req *request.Request, output *RemoveClientIDFromOpenIDConnectProviderOutput) {
  5454. op := &request.Operation{
  5455. Name: opRemoveClientIDFromOpenIDConnectProvider,
  5456. HTTPMethod: "POST",
  5457. HTTPPath: "/",
  5458. }
  5459. if input == nil {
  5460. input = &RemoveClientIDFromOpenIDConnectProviderInput{}
  5461. }
  5462. req = c.newRequest(op, input, output)
  5463. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  5464. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  5465. output = &RemoveClientIDFromOpenIDConnectProviderOutput{}
  5466. req.Data = output
  5467. return
  5468. }
  5469. // Removes the specified client ID (also known as audience) from the list of
  5470. // client IDs registered for the specified IAM OpenID Connect (OIDC) provider
  5471. // resource object.
  5472. //
  5473. // This action is idempotent; it does not fail or return an error if you try
  5474. // to remove a client ID that does not exist.
  5475. func (c *IAM) RemoveClientIDFromOpenIDConnectProvider(input *RemoveClientIDFromOpenIDConnectProviderInput) (*RemoveClientIDFromOpenIDConnectProviderOutput, error) {
  5476. req, out := c.RemoveClientIDFromOpenIDConnectProviderRequest(input)
  5477. err := req.Send()
  5478. return out, err
  5479. }
  5480. const opRemoveRoleFromInstanceProfile = "RemoveRoleFromInstanceProfile"
  5481. // RemoveRoleFromInstanceProfileRequest generates a "aws/request.Request" representing the
  5482. // client's request for the RemoveRoleFromInstanceProfile operation. The "output" return
  5483. // value can be used to capture response data after the request's "Send" method
  5484. // is called.
  5485. //
  5486. // Creating a request object using this method should be used when you want to inject
  5487. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5488. // access properties on the request object before or after sending the request. If
  5489. // you just want the service response, call the RemoveRoleFromInstanceProfile method directly
  5490. // instead.
  5491. //
  5492. // Note: You must call the "Send" method on the returned request object in order
  5493. // to execute the request.
  5494. //
  5495. // // Example sending a request using the RemoveRoleFromInstanceProfileRequest method.
  5496. // req, resp := client.RemoveRoleFromInstanceProfileRequest(params)
  5497. //
  5498. // err := req.Send()
  5499. // if err == nil { // resp is now filled
  5500. // fmt.Println(resp)
  5501. // }
  5502. //
  5503. func (c *IAM) RemoveRoleFromInstanceProfileRequest(input *RemoveRoleFromInstanceProfileInput) (req *request.Request, output *RemoveRoleFromInstanceProfileOutput) {
  5504. op := &request.Operation{
  5505. Name: opRemoveRoleFromInstanceProfile,
  5506. HTTPMethod: "POST",
  5507. HTTPPath: "/",
  5508. }
  5509. if input == nil {
  5510. input = &RemoveRoleFromInstanceProfileInput{}
  5511. }
  5512. req = c.newRequest(op, input, output)
  5513. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  5514. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  5515. output = &RemoveRoleFromInstanceProfileOutput{}
  5516. req.Data = output
  5517. return
  5518. }
  5519. // Removes the specified IAM role from the specified EC2 instance profile.
  5520. //
  5521. // Make sure you do not have any Amazon EC2 instances running with the role
  5522. // you are about to remove from the instance profile. Removing a role from an
  5523. // instance profile that is associated with a running instance break any applications
  5524. // running on the instance.
  5525. //
  5526. // For more information about IAM roles, go to Working with Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html).
  5527. // For more information about instance profiles, go to About Instance Profiles
  5528. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html).
  5529. func (c *IAM) RemoveRoleFromInstanceProfile(input *RemoveRoleFromInstanceProfileInput) (*RemoveRoleFromInstanceProfileOutput, error) {
  5530. req, out := c.RemoveRoleFromInstanceProfileRequest(input)
  5531. err := req.Send()
  5532. return out, err
  5533. }
  5534. const opRemoveUserFromGroup = "RemoveUserFromGroup"
  5535. // RemoveUserFromGroupRequest generates a "aws/request.Request" representing the
  5536. // client's request for the RemoveUserFromGroup operation. The "output" return
  5537. // value can be used to capture response data after the request's "Send" method
  5538. // is called.
  5539. //
  5540. // Creating a request object using this method should be used when you want to inject
  5541. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5542. // access properties on the request object before or after sending the request. If
  5543. // you just want the service response, call the RemoveUserFromGroup method directly
  5544. // instead.
  5545. //
  5546. // Note: You must call the "Send" method on the returned request object in order
  5547. // to execute the request.
  5548. //
  5549. // // Example sending a request using the RemoveUserFromGroupRequest method.
  5550. // req, resp := client.RemoveUserFromGroupRequest(params)
  5551. //
  5552. // err := req.Send()
  5553. // if err == nil { // resp is now filled
  5554. // fmt.Println(resp)
  5555. // }
  5556. //
  5557. func (c *IAM) RemoveUserFromGroupRequest(input *RemoveUserFromGroupInput) (req *request.Request, output *RemoveUserFromGroupOutput) {
  5558. op := &request.Operation{
  5559. Name: opRemoveUserFromGroup,
  5560. HTTPMethod: "POST",
  5561. HTTPPath: "/",
  5562. }
  5563. if input == nil {
  5564. input = &RemoveUserFromGroupInput{}
  5565. }
  5566. req = c.newRequest(op, input, output)
  5567. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  5568. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  5569. output = &RemoveUserFromGroupOutput{}
  5570. req.Data = output
  5571. return
  5572. }
  5573. // Removes the specified user from the specified group.
  5574. func (c *IAM) RemoveUserFromGroup(input *RemoveUserFromGroupInput) (*RemoveUserFromGroupOutput, error) {
  5575. req, out := c.RemoveUserFromGroupRequest(input)
  5576. err := req.Send()
  5577. return out, err
  5578. }
  5579. const opResyncMFADevice = "ResyncMFADevice"
  5580. // ResyncMFADeviceRequest generates a "aws/request.Request" representing the
  5581. // client's request for the ResyncMFADevice operation. The "output" return
  5582. // value can be used to capture response data after the request's "Send" method
  5583. // is called.
  5584. //
  5585. // Creating a request object using this method should be used when you want to inject
  5586. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5587. // access properties on the request object before or after sending the request. If
  5588. // you just want the service response, call the ResyncMFADevice method directly
  5589. // instead.
  5590. //
  5591. // Note: You must call the "Send" method on the returned request object in order
  5592. // to execute the request.
  5593. //
  5594. // // Example sending a request using the ResyncMFADeviceRequest method.
  5595. // req, resp := client.ResyncMFADeviceRequest(params)
  5596. //
  5597. // err := req.Send()
  5598. // if err == nil { // resp is now filled
  5599. // fmt.Println(resp)
  5600. // }
  5601. //
  5602. func (c *IAM) ResyncMFADeviceRequest(input *ResyncMFADeviceInput) (req *request.Request, output *ResyncMFADeviceOutput) {
  5603. op := &request.Operation{
  5604. Name: opResyncMFADevice,
  5605. HTTPMethod: "POST",
  5606. HTTPPath: "/",
  5607. }
  5608. if input == nil {
  5609. input = &ResyncMFADeviceInput{}
  5610. }
  5611. req = c.newRequest(op, input, output)
  5612. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  5613. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  5614. output = &ResyncMFADeviceOutput{}
  5615. req.Data = output
  5616. return
  5617. }
  5618. // Synchronizes the specified MFA device with its IAM resource object on the
  5619. // AWS servers.
  5620. //
  5621. // For more information about creating and working with virtual MFA devices,
  5622. // go to Using a Virtual MFA Device (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html)
  5623. // in the IAM User Guide.
  5624. func (c *IAM) ResyncMFADevice(input *ResyncMFADeviceInput) (*ResyncMFADeviceOutput, error) {
  5625. req, out := c.ResyncMFADeviceRequest(input)
  5626. err := req.Send()
  5627. return out, err
  5628. }
  5629. const opSetDefaultPolicyVersion = "SetDefaultPolicyVersion"
  5630. // SetDefaultPolicyVersionRequest generates a "aws/request.Request" representing the
  5631. // client's request for the SetDefaultPolicyVersion operation. The "output" return
  5632. // value can be used to capture response data after the request's "Send" method
  5633. // is called.
  5634. //
  5635. // Creating a request object using this method should be used when you want to inject
  5636. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5637. // access properties on the request object before or after sending the request. If
  5638. // you just want the service response, call the SetDefaultPolicyVersion method directly
  5639. // instead.
  5640. //
  5641. // Note: You must call the "Send" method on the returned request object in order
  5642. // to execute the request.
  5643. //
  5644. // // Example sending a request using the SetDefaultPolicyVersionRequest method.
  5645. // req, resp := client.SetDefaultPolicyVersionRequest(params)
  5646. //
  5647. // err := req.Send()
  5648. // if err == nil { // resp is now filled
  5649. // fmt.Println(resp)
  5650. // }
  5651. //
  5652. func (c *IAM) SetDefaultPolicyVersionRequest(input *SetDefaultPolicyVersionInput) (req *request.Request, output *SetDefaultPolicyVersionOutput) {
  5653. op := &request.Operation{
  5654. Name: opSetDefaultPolicyVersion,
  5655. HTTPMethod: "POST",
  5656. HTTPPath: "/",
  5657. }
  5658. if input == nil {
  5659. input = &SetDefaultPolicyVersionInput{}
  5660. }
  5661. req = c.newRequest(op, input, output)
  5662. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  5663. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  5664. output = &SetDefaultPolicyVersionOutput{}
  5665. req.Data = output
  5666. return
  5667. }
  5668. // Sets the specified version of the specified policy as the policy's default
  5669. // (operative) version.
  5670. //
  5671. // This action affects all users, groups, and roles that the policy is attached
  5672. // to. To list the users, groups, and roles that the policy is attached to,
  5673. // use the ListEntitiesForPolicy API.
  5674. //
  5675. // For information about managed policies, see Managed Policies and Inline
  5676. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  5677. // in the IAM User Guide.
  5678. func (c *IAM) SetDefaultPolicyVersion(input *SetDefaultPolicyVersionInput) (*SetDefaultPolicyVersionOutput, error) {
  5679. req, out := c.SetDefaultPolicyVersionRequest(input)
  5680. err := req.Send()
  5681. return out, err
  5682. }
  5683. const opSimulateCustomPolicy = "SimulateCustomPolicy"
  5684. // SimulateCustomPolicyRequest generates a "aws/request.Request" representing the
  5685. // client's request for the SimulateCustomPolicy operation. The "output" return
  5686. // value can be used to capture response data after the request's "Send" method
  5687. // is called.
  5688. //
  5689. // Creating a request object using this method should be used when you want to inject
  5690. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5691. // access properties on the request object before or after sending the request. If
  5692. // you just want the service response, call the SimulateCustomPolicy method directly
  5693. // instead.
  5694. //
  5695. // Note: You must call the "Send" method on the returned request object in order
  5696. // to execute the request.
  5697. //
  5698. // // Example sending a request using the SimulateCustomPolicyRequest method.
  5699. // req, resp := client.SimulateCustomPolicyRequest(params)
  5700. //
  5701. // err := req.Send()
  5702. // if err == nil { // resp is now filled
  5703. // fmt.Println(resp)
  5704. // }
  5705. //
  5706. func (c *IAM) SimulateCustomPolicyRequest(input *SimulateCustomPolicyInput) (req *request.Request, output *SimulatePolicyResponse) {
  5707. op := &request.Operation{
  5708. Name: opSimulateCustomPolicy,
  5709. HTTPMethod: "POST",
  5710. HTTPPath: "/",
  5711. Paginator: &request.Paginator{
  5712. InputTokens: []string{"Marker"},
  5713. OutputTokens: []string{"Marker"},
  5714. LimitToken: "MaxItems",
  5715. TruncationToken: "IsTruncated",
  5716. },
  5717. }
  5718. if input == nil {
  5719. input = &SimulateCustomPolicyInput{}
  5720. }
  5721. req = c.newRequest(op, input, output)
  5722. output = &SimulatePolicyResponse{}
  5723. req.Data = output
  5724. return
  5725. }
  5726. // Simulate how a set of IAM policies and optionally a resource-based policy
  5727. // works with a list of API actions and AWS resources to determine the policies'
  5728. // effective permissions. The policies are provided as strings.
  5729. //
  5730. // The simulation does not perform the API actions; it only checks the authorization
  5731. // to determine if the simulated policies allow or deny the actions.
  5732. //
  5733. // If you want to simulate existing policies attached to an IAM user, group,
  5734. // or role, use SimulatePrincipalPolicy instead.
  5735. //
  5736. // Context keys are variables maintained by AWS and its services that provide
  5737. // details about the context of an API query request. You can use the Condition
  5738. // element of an IAM policy to evaluate context keys. To get the list of context
  5739. // keys that the policies require for correct simulation, use GetContextKeysForCustomPolicy.
  5740. //
  5741. // If the output is long, you can use MaxItems and Marker parameters to paginate
  5742. // the results.
  5743. func (c *IAM) SimulateCustomPolicy(input *SimulateCustomPolicyInput) (*SimulatePolicyResponse, error) {
  5744. req, out := c.SimulateCustomPolicyRequest(input)
  5745. err := req.Send()
  5746. return out, err
  5747. }
  5748. // SimulateCustomPolicyPages iterates over the pages of a SimulateCustomPolicy operation,
  5749. // calling the "fn" function with the response data for each page. To stop
  5750. // iterating, return false from the fn function.
  5751. //
  5752. // See SimulateCustomPolicy method for more information on how to use this operation.
  5753. //
  5754. // Note: This operation can generate multiple requests to a service.
  5755. //
  5756. // // Example iterating over at most 3 pages of a SimulateCustomPolicy operation.
  5757. // pageNum := 0
  5758. // err := client.SimulateCustomPolicyPages(params,
  5759. // func(page *SimulatePolicyResponse, lastPage bool) bool {
  5760. // pageNum++
  5761. // fmt.Println(page)
  5762. // return pageNum <= 3
  5763. // })
  5764. //
  5765. func (c *IAM) SimulateCustomPolicyPages(input *SimulateCustomPolicyInput, fn func(p *SimulatePolicyResponse, lastPage bool) (shouldContinue bool)) error {
  5766. page, _ := c.SimulateCustomPolicyRequest(input)
  5767. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  5768. return page.EachPage(func(p interface{}, lastPage bool) bool {
  5769. return fn(p.(*SimulatePolicyResponse), lastPage)
  5770. })
  5771. }
  5772. const opSimulatePrincipalPolicy = "SimulatePrincipalPolicy"
  5773. // SimulatePrincipalPolicyRequest generates a "aws/request.Request" representing the
  5774. // client's request for the SimulatePrincipalPolicy operation. The "output" return
  5775. // value can be used to capture response data after the request's "Send" method
  5776. // is called.
  5777. //
  5778. // Creating a request object using this method should be used when you want to inject
  5779. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5780. // access properties on the request object before or after sending the request. If
  5781. // you just want the service response, call the SimulatePrincipalPolicy method directly
  5782. // instead.
  5783. //
  5784. // Note: You must call the "Send" method on the returned request object in order
  5785. // to execute the request.
  5786. //
  5787. // // Example sending a request using the SimulatePrincipalPolicyRequest method.
  5788. // req, resp := client.SimulatePrincipalPolicyRequest(params)
  5789. //
  5790. // err := req.Send()
  5791. // if err == nil { // resp is now filled
  5792. // fmt.Println(resp)
  5793. // }
  5794. //
  5795. func (c *IAM) SimulatePrincipalPolicyRequest(input *SimulatePrincipalPolicyInput) (req *request.Request, output *SimulatePolicyResponse) {
  5796. op := &request.Operation{
  5797. Name: opSimulatePrincipalPolicy,
  5798. HTTPMethod: "POST",
  5799. HTTPPath: "/",
  5800. Paginator: &request.Paginator{
  5801. InputTokens: []string{"Marker"},
  5802. OutputTokens: []string{"Marker"},
  5803. LimitToken: "MaxItems",
  5804. TruncationToken: "IsTruncated",
  5805. },
  5806. }
  5807. if input == nil {
  5808. input = &SimulatePrincipalPolicyInput{}
  5809. }
  5810. req = c.newRequest(op, input, output)
  5811. output = &SimulatePolicyResponse{}
  5812. req.Data = output
  5813. return
  5814. }
  5815. // Simulate how a set of IAM policies attached to an IAM entity works with a
  5816. // list of API actions and AWS resources to determine the policies' effective
  5817. // permissions. The entity can be an IAM user, group, or role. If you specify
  5818. // a user, then the simulation also includes all of the policies that are attached
  5819. // to groups that the user belongs to .
  5820. //
  5821. // You can optionally include a list of one or more additional policies specified
  5822. // as strings to include in the simulation. If you want to simulate only policies
  5823. // specified as strings, use SimulateCustomPolicy instead.
  5824. //
  5825. // You can also optionally include one resource-based policy to be evaluated
  5826. // with each of the resources included in the simulation.
  5827. //
  5828. // The simulation does not perform the API actions, it only checks the authorization
  5829. // to determine if the simulated policies allow or deny the actions.
  5830. //
  5831. // Note: This API discloses information about the permissions granted to other
  5832. // users. If you do not want users to see other user's permissions, then consider
  5833. // allowing them to use SimulateCustomPolicy instead.
  5834. //
  5835. // Context keys are variables maintained by AWS and its services that provide
  5836. // details about the context of an API query request. You can use the Condition
  5837. // element of an IAM policy to evaluate context keys. To get the list of context
  5838. // keys that the policies require for correct simulation, use GetContextKeysForPrincipalPolicy.
  5839. //
  5840. // If the output is long, you can use the MaxItems and Marker parameters to
  5841. // paginate the results.
  5842. func (c *IAM) SimulatePrincipalPolicy(input *SimulatePrincipalPolicyInput) (*SimulatePolicyResponse, error) {
  5843. req, out := c.SimulatePrincipalPolicyRequest(input)
  5844. err := req.Send()
  5845. return out, err
  5846. }
  5847. // SimulatePrincipalPolicyPages iterates over the pages of a SimulatePrincipalPolicy operation,
  5848. // calling the "fn" function with the response data for each page. To stop
  5849. // iterating, return false from the fn function.
  5850. //
  5851. // See SimulatePrincipalPolicy method for more information on how to use this operation.
  5852. //
  5853. // Note: This operation can generate multiple requests to a service.
  5854. //
  5855. // // Example iterating over at most 3 pages of a SimulatePrincipalPolicy operation.
  5856. // pageNum := 0
  5857. // err := client.SimulatePrincipalPolicyPages(params,
  5858. // func(page *SimulatePolicyResponse, lastPage bool) bool {
  5859. // pageNum++
  5860. // fmt.Println(page)
  5861. // return pageNum <= 3
  5862. // })
  5863. //
  5864. func (c *IAM) SimulatePrincipalPolicyPages(input *SimulatePrincipalPolicyInput, fn func(p *SimulatePolicyResponse, lastPage bool) (shouldContinue bool)) error {
  5865. page, _ := c.SimulatePrincipalPolicyRequest(input)
  5866. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  5867. return page.EachPage(func(p interface{}, lastPage bool) bool {
  5868. return fn(p.(*SimulatePolicyResponse), lastPage)
  5869. })
  5870. }
  5871. const opUpdateAccessKey = "UpdateAccessKey"
  5872. // UpdateAccessKeyRequest generates a "aws/request.Request" representing the
  5873. // client's request for the UpdateAccessKey operation. The "output" return
  5874. // value can be used to capture response data after the request's "Send" method
  5875. // is called.
  5876. //
  5877. // Creating a request object using this method should be used when you want to inject
  5878. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5879. // access properties on the request object before or after sending the request. If
  5880. // you just want the service response, call the UpdateAccessKey method directly
  5881. // instead.
  5882. //
  5883. // Note: You must call the "Send" method on the returned request object in order
  5884. // to execute the request.
  5885. //
  5886. // // Example sending a request using the UpdateAccessKeyRequest method.
  5887. // req, resp := client.UpdateAccessKeyRequest(params)
  5888. //
  5889. // err := req.Send()
  5890. // if err == nil { // resp is now filled
  5891. // fmt.Println(resp)
  5892. // }
  5893. //
  5894. func (c *IAM) UpdateAccessKeyRequest(input *UpdateAccessKeyInput) (req *request.Request, output *UpdateAccessKeyOutput) {
  5895. op := &request.Operation{
  5896. Name: opUpdateAccessKey,
  5897. HTTPMethod: "POST",
  5898. HTTPPath: "/",
  5899. }
  5900. if input == nil {
  5901. input = &UpdateAccessKeyInput{}
  5902. }
  5903. req = c.newRequest(op, input, output)
  5904. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  5905. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  5906. output = &UpdateAccessKeyOutput{}
  5907. req.Data = output
  5908. return
  5909. }
  5910. // Changes the status of the specified access key from Active to Inactive, or
  5911. // vice versa. This action can be used to disable a user's key as part of a
  5912. // key rotation work flow.
  5913. //
  5914. // If the UserName field is not specified, the UserName is determined implicitly
  5915. // based on the AWS access key ID used to sign the request. Because this action
  5916. // works for access keys under the AWS account, you can use this action to manage
  5917. // root credentials even if the AWS account has no associated users.
  5918. //
  5919. // For information about rotating keys, see Managing Keys and Certificates
  5920. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingCredentials.html)
  5921. // in the IAM User Guide.
  5922. func (c *IAM) UpdateAccessKey(input *UpdateAccessKeyInput) (*UpdateAccessKeyOutput, error) {
  5923. req, out := c.UpdateAccessKeyRequest(input)
  5924. err := req.Send()
  5925. return out, err
  5926. }
  5927. const opUpdateAccountPasswordPolicy = "UpdateAccountPasswordPolicy"
  5928. // UpdateAccountPasswordPolicyRequest generates a "aws/request.Request" representing the
  5929. // client's request for the UpdateAccountPasswordPolicy operation. The "output" return
  5930. // value can be used to capture response data after the request's "Send" method
  5931. // is called.
  5932. //
  5933. // Creating a request object using this method should be used when you want to inject
  5934. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5935. // access properties on the request object before or after sending the request. If
  5936. // you just want the service response, call the UpdateAccountPasswordPolicy method directly
  5937. // instead.
  5938. //
  5939. // Note: You must call the "Send" method on the returned request object in order
  5940. // to execute the request.
  5941. //
  5942. // // Example sending a request using the UpdateAccountPasswordPolicyRequest method.
  5943. // req, resp := client.UpdateAccountPasswordPolicyRequest(params)
  5944. //
  5945. // err := req.Send()
  5946. // if err == nil { // resp is now filled
  5947. // fmt.Println(resp)
  5948. // }
  5949. //
  5950. func (c *IAM) UpdateAccountPasswordPolicyRequest(input *UpdateAccountPasswordPolicyInput) (req *request.Request, output *UpdateAccountPasswordPolicyOutput) {
  5951. op := &request.Operation{
  5952. Name: opUpdateAccountPasswordPolicy,
  5953. HTTPMethod: "POST",
  5954. HTTPPath: "/",
  5955. }
  5956. if input == nil {
  5957. input = &UpdateAccountPasswordPolicyInput{}
  5958. }
  5959. req = c.newRequest(op, input, output)
  5960. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  5961. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  5962. output = &UpdateAccountPasswordPolicyOutput{}
  5963. req.Data = output
  5964. return
  5965. }
  5966. // Updates the password policy settings for the AWS account.
  5967. //
  5968. // This action does not support partial updates. No parameters are required,
  5969. // but if you do not specify a parameter, that parameter's value reverts to
  5970. // its default value. See the Request Parameters section for each parameter's
  5971. // default value.
  5972. //
  5973. // For more information about using a password policy, see Managing an IAM
  5974. // Password Policy (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html)
  5975. // in the IAM User Guide.
  5976. func (c *IAM) UpdateAccountPasswordPolicy(input *UpdateAccountPasswordPolicyInput) (*UpdateAccountPasswordPolicyOutput, error) {
  5977. req, out := c.UpdateAccountPasswordPolicyRequest(input)
  5978. err := req.Send()
  5979. return out, err
  5980. }
  5981. const opUpdateAssumeRolePolicy = "UpdateAssumeRolePolicy"
  5982. // UpdateAssumeRolePolicyRequest generates a "aws/request.Request" representing the
  5983. // client's request for the UpdateAssumeRolePolicy operation. The "output" return
  5984. // value can be used to capture response data after the request's "Send" method
  5985. // is called.
  5986. //
  5987. // Creating a request object using this method should be used when you want to inject
  5988. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5989. // access properties on the request object before or after sending the request. If
  5990. // you just want the service response, call the UpdateAssumeRolePolicy method directly
  5991. // instead.
  5992. //
  5993. // Note: You must call the "Send" method on the returned request object in order
  5994. // to execute the request.
  5995. //
  5996. // // Example sending a request using the UpdateAssumeRolePolicyRequest method.
  5997. // req, resp := client.UpdateAssumeRolePolicyRequest(params)
  5998. //
  5999. // err := req.Send()
  6000. // if err == nil { // resp is now filled
  6001. // fmt.Println(resp)
  6002. // }
  6003. //
  6004. func (c *IAM) UpdateAssumeRolePolicyRequest(input *UpdateAssumeRolePolicyInput) (req *request.Request, output *UpdateAssumeRolePolicyOutput) {
  6005. op := &request.Operation{
  6006. Name: opUpdateAssumeRolePolicy,
  6007. HTTPMethod: "POST",
  6008. HTTPPath: "/",
  6009. }
  6010. if input == nil {
  6011. input = &UpdateAssumeRolePolicyInput{}
  6012. }
  6013. req = c.newRequest(op, input, output)
  6014. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  6015. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  6016. output = &UpdateAssumeRolePolicyOutput{}
  6017. req.Data = output
  6018. return
  6019. }
  6020. // Updates the policy that grants an IAM entity permission to assume a role.
  6021. // This is typically referred to as the "role trust policy". For more information
  6022. // about roles, go to Using Roles to Delegate Permissions and Federate Identities
  6023. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html).
  6024. func (c *IAM) UpdateAssumeRolePolicy(input *UpdateAssumeRolePolicyInput) (*UpdateAssumeRolePolicyOutput, error) {
  6025. req, out := c.UpdateAssumeRolePolicyRequest(input)
  6026. err := req.Send()
  6027. return out, err
  6028. }
  6029. const opUpdateGroup = "UpdateGroup"
  6030. // UpdateGroupRequest generates a "aws/request.Request" representing the
  6031. // client's request for the UpdateGroup operation. The "output" return
  6032. // value can be used to capture response data after the request's "Send" method
  6033. // is called.
  6034. //
  6035. // Creating a request object using this method should be used when you want to inject
  6036. // custom logic into the request's lifecycle using a custom handler, or if you want to
  6037. // access properties on the request object before or after sending the request. If
  6038. // you just want the service response, call the UpdateGroup method directly
  6039. // instead.
  6040. //
  6041. // Note: You must call the "Send" method on the returned request object in order
  6042. // to execute the request.
  6043. //
  6044. // // Example sending a request using the UpdateGroupRequest method.
  6045. // req, resp := client.UpdateGroupRequest(params)
  6046. //
  6047. // err := req.Send()
  6048. // if err == nil { // resp is now filled
  6049. // fmt.Println(resp)
  6050. // }
  6051. //
  6052. func (c *IAM) UpdateGroupRequest(input *UpdateGroupInput) (req *request.Request, output *UpdateGroupOutput) {
  6053. op := &request.Operation{
  6054. Name: opUpdateGroup,
  6055. HTTPMethod: "POST",
  6056. HTTPPath: "/",
  6057. }
  6058. if input == nil {
  6059. input = &UpdateGroupInput{}
  6060. }
  6061. req = c.newRequest(op, input, output)
  6062. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  6063. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  6064. output = &UpdateGroupOutput{}
  6065. req.Data = output
  6066. return
  6067. }
  6068. // Updates the name and/or the path of the specified IAM group.
  6069. //
  6070. // You should understand the implications of changing a group's path or name.
  6071. // For more information, see Renaming Users and Groups (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html)
  6072. // in the IAM User Guide.
  6073. //
  6074. // To change an IAM group name the requester must have appropriate permissions
  6075. // on both the source object and the target object. For example, to change "Managers"
  6076. // to "MGRs", the entity making the request must have permission on both "Managers"
  6077. // and "MGRs", or must have permission on all (*). For more information about
  6078. // permissions, see Permissions and Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html).
  6079. func (c *IAM) UpdateGroup(input *UpdateGroupInput) (*UpdateGroupOutput, error) {
  6080. req, out := c.UpdateGroupRequest(input)
  6081. err := req.Send()
  6082. return out, err
  6083. }
  6084. const opUpdateLoginProfile = "UpdateLoginProfile"
  6085. // UpdateLoginProfileRequest generates a "aws/request.Request" representing the
  6086. // client's request for the UpdateLoginProfile operation. The "output" return
  6087. // value can be used to capture response data after the request's "Send" method
  6088. // is called.
  6089. //
  6090. // Creating a request object using this method should be used when you want to inject
  6091. // custom logic into the request's lifecycle using a custom handler, or if you want to
  6092. // access properties on the request object before or after sending the request. If
  6093. // you just want the service response, call the UpdateLoginProfile method directly
  6094. // instead.
  6095. //
  6096. // Note: You must call the "Send" method on the returned request object in order
  6097. // to execute the request.
  6098. //
  6099. // // Example sending a request using the UpdateLoginProfileRequest method.
  6100. // req, resp := client.UpdateLoginProfileRequest(params)
  6101. //
  6102. // err := req.Send()
  6103. // if err == nil { // resp is now filled
  6104. // fmt.Println(resp)
  6105. // }
  6106. //
  6107. func (c *IAM) UpdateLoginProfileRequest(input *UpdateLoginProfileInput) (req *request.Request, output *UpdateLoginProfileOutput) {
  6108. op := &request.Operation{
  6109. Name: opUpdateLoginProfile,
  6110. HTTPMethod: "POST",
  6111. HTTPPath: "/",
  6112. }
  6113. if input == nil {
  6114. input = &UpdateLoginProfileInput{}
  6115. }
  6116. req = c.newRequest(op, input, output)
  6117. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  6118. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  6119. output = &UpdateLoginProfileOutput{}
  6120. req.Data = output
  6121. return
  6122. }
  6123. // Changes the password for the specified IAM user.
  6124. //
  6125. // IAM users can change their own passwords by calling ChangePassword. For
  6126. // more information about modifying passwords, see Managing Passwords (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html)
  6127. // in the IAM User Guide.
  6128. func (c *IAM) UpdateLoginProfile(input *UpdateLoginProfileInput) (*UpdateLoginProfileOutput, error) {
  6129. req, out := c.UpdateLoginProfileRequest(input)
  6130. err := req.Send()
  6131. return out, err
  6132. }
  6133. const opUpdateOpenIDConnectProviderThumbprint = "UpdateOpenIDConnectProviderThumbprint"
  6134. // UpdateOpenIDConnectProviderThumbprintRequest generates a "aws/request.Request" representing the
  6135. // client's request for the UpdateOpenIDConnectProviderThumbprint operation. The "output" return
  6136. // value can be used to capture response data after the request's "Send" method
  6137. // is called.
  6138. //
  6139. // Creating a request object using this method should be used when you want to inject
  6140. // custom logic into the request's lifecycle using a custom handler, or if you want to
  6141. // access properties on the request object before or after sending the request. If
  6142. // you just want the service response, call the UpdateOpenIDConnectProviderThumbprint method directly
  6143. // instead.
  6144. //
  6145. // Note: You must call the "Send" method on the returned request object in order
  6146. // to execute the request.
  6147. //
  6148. // // Example sending a request using the UpdateOpenIDConnectProviderThumbprintRequest method.
  6149. // req, resp := client.UpdateOpenIDConnectProviderThumbprintRequest(params)
  6150. //
  6151. // err := req.Send()
  6152. // if err == nil { // resp is now filled
  6153. // fmt.Println(resp)
  6154. // }
  6155. //
  6156. func (c *IAM) UpdateOpenIDConnectProviderThumbprintRequest(input *UpdateOpenIDConnectProviderThumbprintInput) (req *request.Request, output *UpdateOpenIDConnectProviderThumbprintOutput) {
  6157. op := &request.Operation{
  6158. Name: opUpdateOpenIDConnectProviderThumbprint,
  6159. HTTPMethod: "POST",
  6160. HTTPPath: "/",
  6161. }
  6162. if input == nil {
  6163. input = &UpdateOpenIDConnectProviderThumbprintInput{}
  6164. }
  6165. req = c.newRequest(op, input, output)
  6166. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  6167. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  6168. output = &UpdateOpenIDConnectProviderThumbprintOutput{}
  6169. req.Data = output
  6170. return
  6171. }
  6172. // Replaces the existing list of server certificate thumbprints associated with
  6173. // an OpenID Connect (OIDC) provider resource object with a new list of thumbprints.
  6174. //
  6175. // The list that you pass with this action completely replaces the existing
  6176. // list of thumbprints. (The lists are not merged.)
  6177. //
  6178. // Typically, you need to update a thumbprint only when the identity provider's
  6179. // certificate changes, which occurs rarely. However, if the provider's certificate
  6180. // does change, any attempt to assume an IAM role that specifies the OIDC provider
  6181. // as a principal fails until the certificate thumbprint is updated.
  6182. //
  6183. // Because trust for the OIDC provider is ultimately derived from the provider's
  6184. // certificate and is validated by the thumbprint, it is a best practice to
  6185. // limit access to the UpdateOpenIDConnectProviderThumbprint action to highly-privileged
  6186. // users.
  6187. func (c *IAM) UpdateOpenIDConnectProviderThumbprint(input *UpdateOpenIDConnectProviderThumbprintInput) (*UpdateOpenIDConnectProviderThumbprintOutput, error) {
  6188. req, out := c.UpdateOpenIDConnectProviderThumbprintRequest(input)
  6189. err := req.Send()
  6190. return out, err
  6191. }
  6192. const opUpdateSAMLProvider = "UpdateSAMLProvider"
  6193. // UpdateSAMLProviderRequest generates a "aws/request.Request" representing the
  6194. // client's request for the UpdateSAMLProvider operation. The "output" return
  6195. // value can be used to capture response data after the request's "Send" method
  6196. // is called.
  6197. //
  6198. // Creating a request object using this method should be used when you want to inject
  6199. // custom logic into the request's lifecycle using a custom handler, or if you want to
  6200. // access properties on the request object before or after sending the request. If
  6201. // you just want the service response, call the UpdateSAMLProvider method directly
  6202. // instead.
  6203. //
  6204. // Note: You must call the "Send" method on the returned request object in order
  6205. // to execute the request.
  6206. //
  6207. // // Example sending a request using the UpdateSAMLProviderRequest method.
  6208. // req, resp := client.UpdateSAMLProviderRequest(params)
  6209. //
  6210. // err := req.Send()
  6211. // if err == nil { // resp is now filled
  6212. // fmt.Println(resp)
  6213. // }
  6214. //
  6215. func (c *IAM) UpdateSAMLProviderRequest(input *UpdateSAMLProviderInput) (req *request.Request, output *UpdateSAMLProviderOutput) {
  6216. op := &request.Operation{
  6217. Name: opUpdateSAMLProvider,
  6218. HTTPMethod: "POST",
  6219. HTTPPath: "/",
  6220. }
  6221. if input == nil {
  6222. input = &UpdateSAMLProviderInput{}
  6223. }
  6224. req = c.newRequest(op, input, output)
  6225. output = &UpdateSAMLProviderOutput{}
  6226. req.Data = output
  6227. return
  6228. }
  6229. // Updates the metadata document for an existing SAML provider resource object.
  6230. //
  6231. // This operation requires Signature Version 4 (http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
  6232. func (c *IAM) UpdateSAMLProvider(input *UpdateSAMLProviderInput) (*UpdateSAMLProviderOutput, error) {
  6233. req, out := c.UpdateSAMLProviderRequest(input)
  6234. err := req.Send()
  6235. return out, err
  6236. }
  6237. const opUpdateSSHPublicKey = "UpdateSSHPublicKey"
  6238. // UpdateSSHPublicKeyRequest generates a "aws/request.Request" representing the
  6239. // client's request for the UpdateSSHPublicKey operation. The "output" return
  6240. // value can be used to capture response data after the request's "Send" method
  6241. // is called.
  6242. //
  6243. // Creating a request object using this method should be used when you want to inject
  6244. // custom logic into the request's lifecycle using a custom handler, or if you want to
  6245. // access properties on the request object before or after sending the request. If
  6246. // you just want the service response, call the UpdateSSHPublicKey method directly
  6247. // instead.
  6248. //
  6249. // Note: You must call the "Send" method on the returned request object in order
  6250. // to execute the request.
  6251. //
  6252. // // Example sending a request using the UpdateSSHPublicKeyRequest method.
  6253. // req, resp := client.UpdateSSHPublicKeyRequest(params)
  6254. //
  6255. // err := req.Send()
  6256. // if err == nil { // resp is now filled
  6257. // fmt.Println(resp)
  6258. // }
  6259. //
  6260. func (c *IAM) UpdateSSHPublicKeyRequest(input *UpdateSSHPublicKeyInput) (req *request.Request, output *UpdateSSHPublicKeyOutput) {
  6261. op := &request.Operation{
  6262. Name: opUpdateSSHPublicKey,
  6263. HTTPMethod: "POST",
  6264. HTTPPath: "/",
  6265. }
  6266. if input == nil {
  6267. input = &UpdateSSHPublicKeyInput{}
  6268. }
  6269. req = c.newRequest(op, input, output)
  6270. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  6271. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  6272. output = &UpdateSSHPublicKeyOutput{}
  6273. req.Data = output
  6274. return
  6275. }
  6276. // Sets the status of an IAM user's SSH public key to active or inactive. SSH
  6277. // public keys that are inactive cannot be used for authentication. This action
  6278. // can be used to disable a user's SSH public key as part of a key rotation
  6279. // work flow.
  6280. //
  6281. // The SSH public key affected by this action is used only for authenticating
  6282. // the associated IAM user to an AWS CodeCommit repository. For more information
  6283. // about using SSH keys to authenticate to an AWS CodeCommit repository, see
  6284. // Set up AWS CodeCommit for SSH Connections (http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html)
  6285. // in the AWS CodeCommit User Guide.
  6286. func (c *IAM) UpdateSSHPublicKey(input *UpdateSSHPublicKeyInput) (*UpdateSSHPublicKeyOutput, error) {
  6287. req, out := c.UpdateSSHPublicKeyRequest(input)
  6288. err := req.Send()
  6289. return out, err
  6290. }
  6291. const opUpdateServerCertificate = "UpdateServerCertificate"
  6292. // UpdateServerCertificateRequest generates a "aws/request.Request" representing the
  6293. // client's request for the UpdateServerCertificate operation. The "output" return
  6294. // value can be used to capture response data after the request's "Send" method
  6295. // is called.
  6296. //
  6297. // Creating a request object using this method should be used when you want to inject
  6298. // custom logic into the request's lifecycle using a custom handler, or if you want to
  6299. // access properties on the request object before or after sending the request. If
  6300. // you just want the service response, call the UpdateServerCertificate method directly
  6301. // instead.
  6302. //
  6303. // Note: You must call the "Send" method on the returned request object in order
  6304. // to execute the request.
  6305. //
  6306. // // Example sending a request using the UpdateServerCertificateRequest method.
  6307. // req, resp := client.UpdateServerCertificateRequest(params)
  6308. //
  6309. // err := req.Send()
  6310. // if err == nil { // resp is now filled
  6311. // fmt.Println(resp)
  6312. // }
  6313. //
  6314. func (c *IAM) UpdateServerCertificateRequest(input *UpdateServerCertificateInput) (req *request.Request, output *UpdateServerCertificateOutput) {
  6315. op := &request.Operation{
  6316. Name: opUpdateServerCertificate,
  6317. HTTPMethod: "POST",
  6318. HTTPPath: "/",
  6319. }
  6320. if input == nil {
  6321. input = &UpdateServerCertificateInput{}
  6322. }
  6323. req = c.newRequest(op, input, output)
  6324. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  6325. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  6326. output = &UpdateServerCertificateOutput{}
  6327. req.Data = output
  6328. return
  6329. }
  6330. // Updates the name and/or the path of the specified server certificate stored
  6331. // in IAM.
  6332. //
  6333. // For more information about working with server certificates, including a
  6334. // list of AWS services that can use the server certificates that you manage
  6335. // with IAM, go to Working with Server Certificates (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)
  6336. // in the IAM User Guide.
  6337. //
  6338. // You should understand the implications of changing a server certificate's
  6339. // path or name. For more information, see Renaming a Server Certificate (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs_manage.html#RenamingServerCerts)
  6340. // in the IAM User Guide.
  6341. //
  6342. // To change a server certificate name the requester must have appropriate
  6343. // permissions on both the source object and the target object. For example,
  6344. // to change the name from "ProductionCert" to "ProdCert", the entity making
  6345. // the request must have permission on "ProductionCert" and "ProdCert", or must
  6346. // have permission on all (*). For more information about permissions, see Access
  6347. // Management (http://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
  6348. // in the IAM User Guide.
  6349. func (c *IAM) UpdateServerCertificate(input *UpdateServerCertificateInput) (*UpdateServerCertificateOutput, error) {
  6350. req, out := c.UpdateServerCertificateRequest(input)
  6351. err := req.Send()
  6352. return out, err
  6353. }
  6354. const opUpdateSigningCertificate = "UpdateSigningCertificate"
  6355. // UpdateSigningCertificateRequest generates a "aws/request.Request" representing the
  6356. // client's request for the UpdateSigningCertificate operation. The "output" return
  6357. // value can be used to capture response data after the request's "Send" method
  6358. // is called.
  6359. //
  6360. // Creating a request object using this method should be used when you want to inject
  6361. // custom logic into the request's lifecycle using a custom handler, or if you want to
  6362. // access properties on the request object before or after sending the request. If
  6363. // you just want the service response, call the UpdateSigningCertificate method directly
  6364. // instead.
  6365. //
  6366. // Note: You must call the "Send" method on the returned request object in order
  6367. // to execute the request.
  6368. //
  6369. // // Example sending a request using the UpdateSigningCertificateRequest method.
  6370. // req, resp := client.UpdateSigningCertificateRequest(params)
  6371. //
  6372. // err := req.Send()
  6373. // if err == nil { // resp is now filled
  6374. // fmt.Println(resp)
  6375. // }
  6376. //
  6377. func (c *IAM) UpdateSigningCertificateRequest(input *UpdateSigningCertificateInput) (req *request.Request, output *UpdateSigningCertificateOutput) {
  6378. op := &request.Operation{
  6379. Name: opUpdateSigningCertificate,
  6380. HTTPMethod: "POST",
  6381. HTTPPath: "/",
  6382. }
  6383. if input == nil {
  6384. input = &UpdateSigningCertificateInput{}
  6385. }
  6386. req = c.newRequest(op, input, output)
  6387. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  6388. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  6389. output = &UpdateSigningCertificateOutput{}
  6390. req.Data = output
  6391. return
  6392. }
  6393. // Changes the status of the specified user signing certificate from active
  6394. // to disabled, or vice versa. This action can be used to disable an IAM user's
  6395. // signing certificate as part of a certificate rotation work flow.
  6396. //
  6397. // If the UserName field is not specified, the UserName is determined implicitly
  6398. // based on the AWS access key ID used to sign the request. Because this action
  6399. // works for access keys under the AWS account, you can use this action to manage
  6400. // root credentials even if the AWS account has no associated users.
  6401. func (c *IAM) UpdateSigningCertificate(input *UpdateSigningCertificateInput) (*UpdateSigningCertificateOutput, error) {
  6402. req, out := c.UpdateSigningCertificateRequest(input)
  6403. err := req.Send()
  6404. return out, err
  6405. }
  6406. const opUpdateUser = "UpdateUser"
  6407. // UpdateUserRequest generates a "aws/request.Request" representing the
  6408. // client's request for the UpdateUser operation. The "output" return
  6409. // value can be used to capture response data after the request's "Send" method
  6410. // is called.
  6411. //
  6412. // Creating a request object using this method should be used when you want to inject
  6413. // custom logic into the request's lifecycle using a custom handler, or if you want to
  6414. // access properties on the request object before or after sending the request. If
  6415. // you just want the service response, call the UpdateUser method directly
  6416. // instead.
  6417. //
  6418. // Note: You must call the "Send" method on the returned request object in order
  6419. // to execute the request.
  6420. //
  6421. // // Example sending a request using the UpdateUserRequest method.
  6422. // req, resp := client.UpdateUserRequest(params)
  6423. //
  6424. // err := req.Send()
  6425. // if err == nil { // resp is now filled
  6426. // fmt.Println(resp)
  6427. // }
  6428. //
  6429. func (c *IAM) UpdateUserRequest(input *UpdateUserInput) (req *request.Request, output *UpdateUserOutput) {
  6430. op := &request.Operation{
  6431. Name: opUpdateUser,
  6432. HTTPMethod: "POST",
  6433. HTTPPath: "/",
  6434. }
  6435. if input == nil {
  6436. input = &UpdateUserInput{}
  6437. }
  6438. req = c.newRequest(op, input, output)
  6439. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  6440. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  6441. output = &UpdateUserOutput{}
  6442. req.Data = output
  6443. return
  6444. }
  6445. // Updates the name and/or the path of the specified IAM user.
  6446. //
  6447. // You should understand the implications of changing an IAM user's path
  6448. // or name. For more information, see Renaming an IAM User (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_renaming)
  6449. // and Renaming an IAM Group (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_rename.html)
  6450. // in the IAM User Guide.
  6451. //
  6452. // To change a user name the requester must have appropriate permissions
  6453. // on both the source object and the target object. For example, to change Bob
  6454. // to Robert, the entity making the request must have permission on Bob and
  6455. // Robert, or must have permission on all (*). For more information about permissions,
  6456. // see Permissions and Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html).
  6457. func (c *IAM) UpdateUser(input *UpdateUserInput) (*UpdateUserOutput, error) {
  6458. req, out := c.UpdateUserRequest(input)
  6459. err := req.Send()
  6460. return out, err
  6461. }
  6462. const opUploadSSHPublicKey = "UploadSSHPublicKey"
  6463. // UploadSSHPublicKeyRequest generates a "aws/request.Request" representing the
  6464. // client's request for the UploadSSHPublicKey operation. The "output" return
  6465. // value can be used to capture response data after the request's "Send" method
  6466. // is called.
  6467. //
  6468. // Creating a request object using this method should be used when you want to inject
  6469. // custom logic into the request's lifecycle using a custom handler, or if you want to
  6470. // access properties on the request object before or after sending the request. If
  6471. // you just want the service response, call the UploadSSHPublicKey method directly
  6472. // instead.
  6473. //
  6474. // Note: You must call the "Send" method on the returned request object in order
  6475. // to execute the request.
  6476. //
  6477. // // Example sending a request using the UploadSSHPublicKeyRequest method.
  6478. // req, resp := client.UploadSSHPublicKeyRequest(params)
  6479. //
  6480. // err := req.Send()
  6481. // if err == nil { // resp is now filled
  6482. // fmt.Println(resp)
  6483. // }
  6484. //
  6485. func (c *IAM) UploadSSHPublicKeyRequest(input *UploadSSHPublicKeyInput) (req *request.Request, output *UploadSSHPublicKeyOutput) {
  6486. op := &request.Operation{
  6487. Name: opUploadSSHPublicKey,
  6488. HTTPMethod: "POST",
  6489. HTTPPath: "/",
  6490. }
  6491. if input == nil {
  6492. input = &UploadSSHPublicKeyInput{}
  6493. }
  6494. req = c.newRequest(op, input, output)
  6495. output = &UploadSSHPublicKeyOutput{}
  6496. req.Data = output
  6497. return
  6498. }
  6499. // Uploads an SSH public key and associates it with the specified IAM user.
  6500. //
  6501. // The SSH public key uploaded by this action can be used only for authenticating
  6502. // the associated IAM user to an AWS CodeCommit repository. For more information
  6503. // about using SSH keys to authenticate to an AWS CodeCommit repository, see
  6504. // Set up AWS CodeCommit for SSH Connections (http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html)
  6505. // in the AWS CodeCommit User Guide.
  6506. func (c *IAM) UploadSSHPublicKey(input *UploadSSHPublicKeyInput) (*UploadSSHPublicKeyOutput, error) {
  6507. req, out := c.UploadSSHPublicKeyRequest(input)
  6508. err := req.Send()
  6509. return out, err
  6510. }
  6511. const opUploadServerCertificate = "UploadServerCertificate"
  6512. // UploadServerCertificateRequest generates a "aws/request.Request" representing the
  6513. // client's request for the UploadServerCertificate operation. The "output" return
  6514. // value can be used to capture response data after the request's "Send" method
  6515. // is called.
  6516. //
  6517. // Creating a request object using this method should be used when you want to inject
  6518. // custom logic into the request's lifecycle using a custom handler, or if you want to
  6519. // access properties on the request object before or after sending the request. If
  6520. // you just want the service response, call the UploadServerCertificate method directly
  6521. // instead.
  6522. //
  6523. // Note: You must call the "Send" method on the returned request object in order
  6524. // to execute the request.
  6525. //
  6526. // // Example sending a request using the UploadServerCertificateRequest method.
  6527. // req, resp := client.UploadServerCertificateRequest(params)
  6528. //
  6529. // err := req.Send()
  6530. // if err == nil { // resp is now filled
  6531. // fmt.Println(resp)
  6532. // }
  6533. //
  6534. func (c *IAM) UploadServerCertificateRequest(input *UploadServerCertificateInput) (req *request.Request, output *UploadServerCertificateOutput) {
  6535. op := &request.Operation{
  6536. Name: opUploadServerCertificate,
  6537. HTTPMethod: "POST",
  6538. HTTPPath: "/",
  6539. }
  6540. if input == nil {
  6541. input = &UploadServerCertificateInput{}
  6542. }
  6543. req = c.newRequest(op, input, output)
  6544. output = &UploadServerCertificateOutput{}
  6545. req.Data = output
  6546. return
  6547. }
  6548. // Uploads a server certificate entity for the AWS account. The server certificate
  6549. // entity includes a public key certificate, a private key, and an optional
  6550. // certificate chain, which should all be PEM-encoded.
  6551. //
  6552. // For more information about working with server certificates, including a
  6553. // list of AWS services that can use the server certificates that you manage
  6554. // with IAM, go to Working with Server Certificates (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)
  6555. // in the IAM User Guide.
  6556. //
  6557. // For information about the number of server certificates you can upload,
  6558. // see Limitations on IAM Entities and Objects (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html)
  6559. // in the IAM User Guide.
  6560. //
  6561. // Because the body of the public key certificate, private key, and the certificate
  6562. // chain can be large, you should use POST rather than GET when calling UploadServerCertificate.
  6563. // For information about setting up signatures and authorization through the
  6564. // API, go to Signing AWS API Requests (http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)
  6565. // in the AWS General Reference. For general information about using the Query
  6566. // API with IAM, go to Calling the API by Making HTTP Query Requests (http://docs.aws.amazon.com/IAM/latest/UserGuide/programming.html)
  6567. // in the IAM User Guide.
  6568. func (c *IAM) UploadServerCertificate(input *UploadServerCertificateInput) (*UploadServerCertificateOutput, error) {
  6569. req, out := c.UploadServerCertificateRequest(input)
  6570. err := req.Send()
  6571. return out, err
  6572. }
  6573. const opUploadSigningCertificate = "UploadSigningCertificate"
  6574. // UploadSigningCertificateRequest generates a "aws/request.Request" representing the
  6575. // client's request for the UploadSigningCertificate operation. The "output" return
  6576. // value can be used to capture response data after the request's "Send" method
  6577. // is called.
  6578. //
  6579. // Creating a request object using this method should be used when you want to inject
  6580. // custom logic into the request's lifecycle using a custom handler, or if you want to
  6581. // access properties on the request object before or after sending the request. If
  6582. // you just want the service response, call the UploadSigningCertificate method directly
  6583. // instead.
  6584. //
  6585. // Note: You must call the "Send" method on the returned request object in order
  6586. // to execute the request.
  6587. //
  6588. // // Example sending a request using the UploadSigningCertificateRequest method.
  6589. // req, resp := client.UploadSigningCertificateRequest(params)
  6590. //
  6591. // err := req.Send()
  6592. // if err == nil { // resp is now filled
  6593. // fmt.Println(resp)
  6594. // }
  6595. //
  6596. func (c *IAM) UploadSigningCertificateRequest(input *UploadSigningCertificateInput) (req *request.Request, output *UploadSigningCertificateOutput) {
  6597. op := &request.Operation{
  6598. Name: opUploadSigningCertificate,
  6599. HTTPMethod: "POST",
  6600. HTTPPath: "/",
  6601. }
  6602. if input == nil {
  6603. input = &UploadSigningCertificateInput{}
  6604. }
  6605. req = c.newRequest(op, input, output)
  6606. output = &UploadSigningCertificateOutput{}
  6607. req.Data = output
  6608. return
  6609. }
  6610. // Uploads an X.509 signing certificate and associates it with the specified
  6611. // IAM user. Some AWS services use X.509 signing certificates to validate requests
  6612. // that are signed with a corresponding private key. When you upload the certificate,
  6613. // its default status is Active.
  6614. //
  6615. // If the UserName field is not specified, the IAM user name is determined
  6616. // implicitly based on the AWS access key ID used to sign the request. Because
  6617. // this action works for access keys under the AWS account, you can use this
  6618. // action to manage root credentials even if the AWS account has no associated
  6619. // users.
  6620. //
  6621. // Because the body of a X.509 certificate can be large, you should use POST
  6622. // rather than GET when calling UploadSigningCertificate. For information about
  6623. // setting up signatures and authorization through the API, go to Signing AWS
  6624. // API Requests (http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)
  6625. // in the AWS General Reference. For general information about using the Query
  6626. // API with IAM, go to Making Query Requests (http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html)
  6627. // in the IAM User Guide.
  6628. func (c *IAM) UploadSigningCertificate(input *UploadSigningCertificateInput) (*UploadSigningCertificateOutput, error) {
  6629. req, out := c.UploadSigningCertificateRequest(input)
  6630. err := req.Send()
  6631. return out, err
  6632. }
  6633. // Contains information about an AWS access key.
  6634. //
  6635. // This data type is used as a response element in the CreateAccessKey and
  6636. // ListAccessKeys actions.
  6637. //
  6638. // The SecretAccessKey value is returned only in response to CreateAccessKey.
  6639. // You can get a secret access key only when you first create an access key;
  6640. // you cannot recover the secret access key later. If you lose a secret access
  6641. // key, you must create a new access key.
  6642. type AccessKey struct {
  6643. _ struct{} `type:"structure"`
  6644. // The ID for this access key.
  6645. AccessKeyId *string `min:"16" type:"string" required:"true"`
  6646. // The date when the access key was created.
  6647. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  6648. // The secret key used to sign requests.
  6649. SecretAccessKey *string `type:"string" required:"true"`
  6650. // The status of the access key. Active means the key is valid for API calls,
  6651. // while Inactive means it is not.
  6652. Status *string `type:"string" required:"true" enum:"statusType"`
  6653. // The name of the IAM user that the access key is associated with.
  6654. UserName *string `min:"1" type:"string" required:"true"`
  6655. }
  6656. // String returns the string representation
  6657. func (s AccessKey) String() string {
  6658. return awsutil.Prettify(s)
  6659. }
  6660. // GoString returns the string representation
  6661. func (s AccessKey) GoString() string {
  6662. return s.String()
  6663. }
  6664. // Contains information about the last time an AWS access key was used.
  6665. //
  6666. // This data type is used as a response element in the GetAccessKeyLastUsed
  6667. // action.
  6668. type AccessKeyLastUsed struct {
  6669. _ struct{} `type:"structure"`
  6670. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  6671. // when the access key was most recently used. This field is null when:
  6672. //
  6673. // The user does not have an access key.
  6674. //
  6675. // An access key exists but has never been used, at least not since IAM started
  6676. // tracking this information on April 22nd, 2015.
  6677. //
  6678. // There is no sign-in data associated with the user
  6679. LastUsedDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
  6680. // The AWS region where this access key was most recently used. This field is
  6681. // null when:
  6682. //
  6683. // The user does not have an access key.
  6684. //
  6685. // An access key exists but has never been used, at least not since IAM started
  6686. // tracking this information on April 22nd, 2015.
  6687. //
  6688. // There is no sign-in data associated with the user
  6689. //
  6690. // For more information about AWS regions, see Regions and Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html)
  6691. // in the Amazon Web Services General Reference.
  6692. Region *string `type:"string" required:"true"`
  6693. // The name of the AWS service with which this access key was most recently
  6694. // used. This field is null when:
  6695. //
  6696. // The user does not have an access key.
  6697. //
  6698. // An access key exists but has never been used, at least not since IAM started
  6699. // tracking this information on April 22nd, 2015.
  6700. //
  6701. // There is no sign-in data associated with the user
  6702. ServiceName *string `type:"string" required:"true"`
  6703. }
  6704. // String returns the string representation
  6705. func (s AccessKeyLastUsed) String() string {
  6706. return awsutil.Prettify(s)
  6707. }
  6708. // GoString returns the string representation
  6709. func (s AccessKeyLastUsed) GoString() string {
  6710. return s.String()
  6711. }
  6712. // Contains information about an AWS access key, without its secret key.
  6713. //
  6714. // This data type is used as a response element in the ListAccessKeys action.
  6715. type AccessKeyMetadata struct {
  6716. _ struct{} `type:"structure"`
  6717. // The ID for this access key.
  6718. AccessKeyId *string `min:"16" type:"string"`
  6719. // The date when the access key was created.
  6720. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  6721. // The status of the access key. Active means the key is valid for API calls;
  6722. // Inactive means it is not.
  6723. Status *string `type:"string" enum:"statusType"`
  6724. // The name of the IAM user that the key is associated with.
  6725. UserName *string `min:"1" type:"string"`
  6726. }
  6727. // String returns the string representation
  6728. func (s AccessKeyMetadata) String() string {
  6729. return awsutil.Prettify(s)
  6730. }
  6731. // GoString returns the string representation
  6732. func (s AccessKeyMetadata) GoString() string {
  6733. return s.String()
  6734. }
  6735. type AddClientIDToOpenIDConnectProviderInput struct {
  6736. _ struct{} `type:"structure"`
  6737. // The client ID (also known as audience) to add to the IAM OpenID Connect provider
  6738. // resource.
  6739. ClientID *string `min:"1" type:"string" required:"true"`
  6740. // The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider
  6741. // resource to add the client ID to. You can get a list of OIDC provider ARNs
  6742. // by using the ListOpenIDConnectProviders action.
  6743. OpenIDConnectProviderArn *string `min:"20" type:"string" required:"true"`
  6744. }
  6745. // String returns the string representation
  6746. func (s AddClientIDToOpenIDConnectProviderInput) String() string {
  6747. return awsutil.Prettify(s)
  6748. }
  6749. // GoString returns the string representation
  6750. func (s AddClientIDToOpenIDConnectProviderInput) GoString() string {
  6751. return s.String()
  6752. }
  6753. // Validate inspects the fields of the type to determine if they are valid.
  6754. func (s *AddClientIDToOpenIDConnectProviderInput) Validate() error {
  6755. invalidParams := request.ErrInvalidParams{Context: "AddClientIDToOpenIDConnectProviderInput"}
  6756. if s.ClientID == nil {
  6757. invalidParams.Add(request.NewErrParamRequired("ClientID"))
  6758. }
  6759. if s.ClientID != nil && len(*s.ClientID) < 1 {
  6760. invalidParams.Add(request.NewErrParamMinLen("ClientID", 1))
  6761. }
  6762. if s.OpenIDConnectProviderArn == nil {
  6763. invalidParams.Add(request.NewErrParamRequired("OpenIDConnectProviderArn"))
  6764. }
  6765. if s.OpenIDConnectProviderArn != nil && len(*s.OpenIDConnectProviderArn) < 20 {
  6766. invalidParams.Add(request.NewErrParamMinLen("OpenIDConnectProviderArn", 20))
  6767. }
  6768. if invalidParams.Len() > 0 {
  6769. return invalidParams
  6770. }
  6771. return nil
  6772. }
  6773. type AddClientIDToOpenIDConnectProviderOutput struct {
  6774. _ struct{} `type:"structure"`
  6775. }
  6776. // String returns the string representation
  6777. func (s AddClientIDToOpenIDConnectProviderOutput) String() string {
  6778. return awsutil.Prettify(s)
  6779. }
  6780. // GoString returns the string representation
  6781. func (s AddClientIDToOpenIDConnectProviderOutput) GoString() string {
  6782. return s.String()
  6783. }
  6784. type AddRoleToInstanceProfileInput struct {
  6785. _ struct{} `type:"structure"`
  6786. // The name of the instance profile to update.
  6787. //
  6788. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  6789. // a string of characters consisting of upper and lowercase alphanumeric characters
  6790. // with no spaces. You can also include any of the following characters: =,.@-
  6791. InstanceProfileName *string `min:"1" type:"string" required:"true"`
  6792. // The name of the role to add.
  6793. //
  6794. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  6795. // a string of characters consisting of upper and lowercase alphanumeric characters
  6796. // with no spaces. You can also include any of the following characters: =,.@-
  6797. RoleName *string `min:"1" type:"string" required:"true"`
  6798. }
  6799. // String returns the string representation
  6800. func (s AddRoleToInstanceProfileInput) String() string {
  6801. return awsutil.Prettify(s)
  6802. }
  6803. // GoString returns the string representation
  6804. func (s AddRoleToInstanceProfileInput) GoString() string {
  6805. return s.String()
  6806. }
  6807. // Validate inspects the fields of the type to determine if they are valid.
  6808. func (s *AddRoleToInstanceProfileInput) Validate() error {
  6809. invalidParams := request.ErrInvalidParams{Context: "AddRoleToInstanceProfileInput"}
  6810. if s.InstanceProfileName == nil {
  6811. invalidParams.Add(request.NewErrParamRequired("InstanceProfileName"))
  6812. }
  6813. if s.InstanceProfileName != nil && len(*s.InstanceProfileName) < 1 {
  6814. invalidParams.Add(request.NewErrParamMinLen("InstanceProfileName", 1))
  6815. }
  6816. if s.RoleName == nil {
  6817. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  6818. }
  6819. if s.RoleName != nil && len(*s.RoleName) < 1 {
  6820. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  6821. }
  6822. if invalidParams.Len() > 0 {
  6823. return invalidParams
  6824. }
  6825. return nil
  6826. }
  6827. type AddRoleToInstanceProfileOutput struct {
  6828. _ struct{} `type:"structure"`
  6829. }
  6830. // String returns the string representation
  6831. func (s AddRoleToInstanceProfileOutput) String() string {
  6832. return awsutil.Prettify(s)
  6833. }
  6834. // GoString returns the string representation
  6835. func (s AddRoleToInstanceProfileOutput) GoString() string {
  6836. return s.String()
  6837. }
  6838. type AddUserToGroupInput struct {
  6839. _ struct{} `type:"structure"`
  6840. // The name of the group to update.
  6841. //
  6842. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  6843. // a string of characters consisting of upper and lowercase alphanumeric characters
  6844. // with no spaces. You can also include any of the following characters: =,.@-
  6845. GroupName *string `min:"1" type:"string" required:"true"`
  6846. // The name of the user to add.
  6847. //
  6848. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  6849. // a string of characters consisting of upper and lowercase alphanumeric characters
  6850. // with no spaces. You can also include any of the following characters: =,.@-
  6851. UserName *string `min:"1" type:"string" required:"true"`
  6852. }
  6853. // String returns the string representation
  6854. func (s AddUserToGroupInput) String() string {
  6855. return awsutil.Prettify(s)
  6856. }
  6857. // GoString returns the string representation
  6858. func (s AddUserToGroupInput) GoString() string {
  6859. return s.String()
  6860. }
  6861. // Validate inspects the fields of the type to determine if they are valid.
  6862. func (s *AddUserToGroupInput) Validate() error {
  6863. invalidParams := request.ErrInvalidParams{Context: "AddUserToGroupInput"}
  6864. if s.GroupName == nil {
  6865. invalidParams.Add(request.NewErrParamRequired("GroupName"))
  6866. }
  6867. if s.GroupName != nil && len(*s.GroupName) < 1 {
  6868. invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  6869. }
  6870. if s.UserName == nil {
  6871. invalidParams.Add(request.NewErrParamRequired("UserName"))
  6872. }
  6873. if s.UserName != nil && len(*s.UserName) < 1 {
  6874. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  6875. }
  6876. if invalidParams.Len() > 0 {
  6877. return invalidParams
  6878. }
  6879. return nil
  6880. }
  6881. type AddUserToGroupOutput struct {
  6882. _ struct{} `type:"structure"`
  6883. }
  6884. // String returns the string representation
  6885. func (s AddUserToGroupOutput) String() string {
  6886. return awsutil.Prettify(s)
  6887. }
  6888. // GoString returns the string representation
  6889. func (s AddUserToGroupOutput) GoString() string {
  6890. return s.String()
  6891. }
  6892. type AttachGroupPolicyInput struct {
  6893. _ struct{} `type:"structure"`
  6894. // The name (friendly name, not ARN) of the group to attach the policy to.
  6895. //
  6896. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  6897. // a string of characters consisting of upper and lowercase alphanumeric characters
  6898. // with no spaces. You can also include any of the following characters: =,.@-
  6899. GroupName *string `min:"1" type:"string" required:"true"`
  6900. // The Amazon Resource Name (ARN) of the IAM policy you want to attach.
  6901. //
  6902. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  6903. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  6904. // in the AWS General Reference.
  6905. PolicyArn *string `min:"20" type:"string" required:"true"`
  6906. }
  6907. // String returns the string representation
  6908. func (s AttachGroupPolicyInput) String() string {
  6909. return awsutil.Prettify(s)
  6910. }
  6911. // GoString returns the string representation
  6912. func (s AttachGroupPolicyInput) GoString() string {
  6913. return s.String()
  6914. }
  6915. // Validate inspects the fields of the type to determine if they are valid.
  6916. func (s *AttachGroupPolicyInput) Validate() error {
  6917. invalidParams := request.ErrInvalidParams{Context: "AttachGroupPolicyInput"}
  6918. if s.GroupName == nil {
  6919. invalidParams.Add(request.NewErrParamRequired("GroupName"))
  6920. }
  6921. if s.GroupName != nil && len(*s.GroupName) < 1 {
  6922. invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  6923. }
  6924. if s.PolicyArn == nil {
  6925. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  6926. }
  6927. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  6928. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  6929. }
  6930. if invalidParams.Len() > 0 {
  6931. return invalidParams
  6932. }
  6933. return nil
  6934. }
  6935. type AttachGroupPolicyOutput struct {
  6936. _ struct{} `type:"structure"`
  6937. }
  6938. // String returns the string representation
  6939. func (s AttachGroupPolicyOutput) String() string {
  6940. return awsutil.Prettify(s)
  6941. }
  6942. // GoString returns the string representation
  6943. func (s AttachGroupPolicyOutput) GoString() string {
  6944. return s.String()
  6945. }
  6946. type AttachRolePolicyInput struct {
  6947. _ struct{} `type:"structure"`
  6948. // The Amazon Resource Name (ARN) of the IAM policy you want to attach.
  6949. //
  6950. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  6951. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  6952. // in the AWS General Reference.
  6953. PolicyArn *string `min:"20" type:"string" required:"true"`
  6954. // The name (friendly name, not ARN) of the role to attach the policy to.
  6955. //
  6956. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  6957. // a string of characters consisting of upper and lowercase alphanumeric characters
  6958. // with no spaces. You can also include any of the following characters: =,.@-
  6959. RoleName *string `min:"1" type:"string" required:"true"`
  6960. }
  6961. // String returns the string representation
  6962. func (s AttachRolePolicyInput) String() string {
  6963. return awsutil.Prettify(s)
  6964. }
  6965. // GoString returns the string representation
  6966. func (s AttachRolePolicyInput) GoString() string {
  6967. return s.String()
  6968. }
  6969. // Validate inspects the fields of the type to determine if they are valid.
  6970. func (s *AttachRolePolicyInput) Validate() error {
  6971. invalidParams := request.ErrInvalidParams{Context: "AttachRolePolicyInput"}
  6972. if s.PolicyArn == nil {
  6973. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  6974. }
  6975. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  6976. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  6977. }
  6978. if s.RoleName == nil {
  6979. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  6980. }
  6981. if s.RoleName != nil && len(*s.RoleName) < 1 {
  6982. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  6983. }
  6984. if invalidParams.Len() > 0 {
  6985. return invalidParams
  6986. }
  6987. return nil
  6988. }
  6989. type AttachRolePolicyOutput struct {
  6990. _ struct{} `type:"structure"`
  6991. }
  6992. // String returns the string representation
  6993. func (s AttachRolePolicyOutput) String() string {
  6994. return awsutil.Prettify(s)
  6995. }
  6996. // GoString returns the string representation
  6997. func (s AttachRolePolicyOutput) GoString() string {
  6998. return s.String()
  6999. }
  7000. type AttachUserPolicyInput struct {
  7001. _ struct{} `type:"structure"`
  7002. // The Amazon Resource Name (ARN) of the IAM policy you want to attach.
  7003. //
  7004. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  7005. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  7006. // in the AWS General Reference.
  7007. PolicyArn *string `min:"20" type:"string" required:"true"`
  7008. // The name (friendly name, not ARN) of the IAM user to attach the policy to.
  7009. //
  7010. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7011. // a string of characters consisting of upper and lowercase alphanumeric characters
  7012. // with no spaces. You can also include any of the following characters: =,.@-
  7013. UserName *string `min:"1" type:"string" required:"true"`
  7014. }
  7015. // String returns the string representation
  7016. func (s AttachUserPolicyInput) String() string {
  7017. return awsutil.Prettify(s)
  7018. }
  7019. // GoString returns the string representation
  7020. func (s AttachUserPolicyInput) GoString() string {
  7021. return s.String()
  7022. }
  7023. // Validate inspects the fields of the type to determine if they are valid.
  7024. func (s *AttachUserPolicyInput) Validate() error {
  7025. invalidParams := request.ErrInvalidParams{Context: "AttachUserPolicyInput"}
  7026. if s.PolicyArn == nil {
  7027. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  7028. }
  7029. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  7030. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  7031. }
  7032. if s.UserName == nil {
  7033. invalidParams.Add(request.NewErrParamRequired("UserName"))
  7034. }
  7035. if s.UserName != nil && len(*s.UserName) < 1 {
  7036. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  7037. }
  7038. if invalidParams.Len() > 0 {
  7039. return invalidParams
  7040. }
  7041. return nil
  7042. }
  7043. type AttachUserPolicyOutput struct {
  7044. _ struct{} `type:"structure"`
  7045. }
  7046. // String returns the string representation
  7047. func (s AttachUserPolicyOutput) String() string {
  7048. return awsutil.Prettify(s)
  7049. }
  7050. // GoString returns the string representation
  7051. func (s AttachUserPolicyOutput) GoString() string {
  7052. return s.String()
  7053. }
  7054. // Contains information about an attached policy.
  7055. //
  7056. // An attached policy is a managed policy that has been attached to a user,
  7057. // group, or role. This data type is used as a response element in the ListAttachedGroupPolicies,
  7058. // ListAttachedRolePolicies, ListAttachedUserPolicies, and GetAccountAuthorizationDetails
  7059. // actions.
  7060. //
  7061. // For more information about managed policies, refer to Managed Policies and
  7062. // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  7063. // in the Using IAM guide.
  7064. type AttachedPolicy struct {
  7065. _ struct{} `type:"structure"`
  7066. // The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
  7067. //
  7068. // For more information about ARNs, go to Amazon Resource Names (ARNs) and
  7069. // AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  7070. // in the AWS General Reference.
  7071. PolicyArn *string `min:"20" type:"string"`
  7072. // The friendly name of the attached policy.
  7073. PolicyName *string `min:"1" type:"string"`
  7074. }
  7075. // String returns the string representation
  7076. func (s AttachedPolicy) String() string {
  7077. return awsutil.Prettify(s)
  7078. }
  7079. // GoString returns the string representation
  7080. func (s AttachedPolicy) GoString() string {
  7081. return s.String()
  7082. }
  7083. type ChangePasswordInput struct {
  7084. _ struct{} `type:"structure"`
  7085. // The new password. The new password must conform to the AWS account's password
  7086. // policy, if one exists.
  7087. //
  7088. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7089. // a string of characters consisting of almost any printable ASCII character
  7090. // from the space (\u0020) through the end of the ASCII character range (\u00FF).
  7091. // You can also include the tab (\u0009), line feed (\u000A), and carriage return
  7092. // (\u000D) characters. Although any of these characters are valid in a password,
  7093. // note that many tools, such as the AWS Management Console, might restrict
  7094. // the ability to enter certain characters because they have special meaning
  7095. // within that tool.
  7096. NewPassword *string `min:"1" type:"string" required:"true"`
  7097. // The IAM user's current password.
  7098. OldPassword *string `min:"1" type:"string" required:"true"`
  7099. }
  7100. // String returns the string representation
  7101. func (s ChangePasswordInput) String() string {
  7102. return awsutil.Prettify(s)
  7103. }
  7104. // GoString returns the string representation
  7105. func (s ChangePasswordInput) GoString() string {
  7106. return s.String()
  7107. }
  7108. // Validate inspects the fields of the type to determine if they are valid.
  7109. func (s *ChangePasswordInput) Validate() error {
  7110. invalidParams := request.ErrInvalidParams{Context: "ChangePasswordInput"}
  7111. if s.NewPassword == nil {
  7112. invalidParams.Add(request.NewErrParamRequired("NewPassword"))
  7113. }
  7114. if s.NewPassword != nil && len(*s.NewPassword) < 1 {
  7115. invalidParams.Add(request.NewErrParamMinLen("NewPassword", 1))
  7116. }
  7117. if s.OldPassword == nil {
  7118. invalidParams.Add(request.NewErrParamRequired("OldPassword"))
  7119. }
  7120. if s.OldPassword != nil && len(*s.OldPassword) < 1 {
  7121. invalidParams.Add(request.NewErrParamMinLen("OldPassword", 1))
  7122. }
  7123. if invalidParams.Len() > 0 {
  7124. return invalidParams
  7125. }
  7126. return nil
  7127. }
  7128. type ChangePasswordOutput struct {
  7129. _ struct{} `type:"structure"`
  7130. }
  7131. // String returns the string representation
  7132. func (s ChangePasswordOutput) String() string {
  7133. return awsutil.Prettify(s)
  7134. }
  7135. // GoString returns the string representation
  7136. func (s ChangePasswordOutput) GoString() string {
  7137. return s.String()
  7138. }
  7139. // Contains information about a condition context key. It includes the name
  7140. // of the key and specifies the value (or values, if the context key supports
  7141. // multiple values) to use in the simulation. This information is used when
  7142. // evaluating the Condition elements of the input policies.
  7143. //
  7144. // This data type is used as an input parameter to SimulateCustomPolicy and
  7145. // SimulateCustomPolicy .
  7146. type ContextEntry struct {
  7147. _ struct{} `type:"structure"`
  7148. // The full name of a condition context key, including the service prefix. For
  7149. // example, aws:SourceIp or s3:VersionId.
  7150. ContextKeyName *string `min:"5" type:"string"`
  7151. // The data type of the value (or values) specified in the ContextKeyValues
  7152. // parameter.
  7153. ContextKeyType *string `type:"string" enum:"ContextKeyTypeEnum"`
  7154. // The value (or values, if the condition context key supports multiple values)
  7155. // to provide to the simulation for use when the key is referenced by a Condition
  7156. // element in an input policy.
  7157. ContextKeyValues []*string `type:"list"`
  7158. }
  7159. // String returns the string representation
  7160. func (s ContextEntry) String() string {
  7161. return awsutil.Prettify(s)
  7162. }
  7163. // GoString returns the string representation
  7164. func (s ContextEntry) GoString() string {
  7165. return s.String()
  7166. }
  7167. // Validate inspects the fields of the type to determine if they are valid.
  7168. func (s *ContextEntry) Validate() error {
  7169. invalidParams := request.ErrInvalidParams{Context: "ContextEntry"}
  7170. if s.ContextKeyName != nil && len(*s.ContextKeyName) < 5 {
  7171. invalidParams.Add(request.NewErrParamMinLen("ContextKeyName", 5))
  7172. }
  7173. if invalidParams.Len() > 0 {
  7174. return invalidParams
  7175. }
  7176. return nil
  7177. }
  7178. type CreateAccessKeyInput struct {
  7179. _ struct{} `type:"structure"`
  7180. // The name of the IAM user that the new key will belong to.
  7181. //
  7182. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7183. // a string of characters consisting of upper and lowercase alphanumeric characters
  7184. // with no spaces. You can also include any of the following characters: =,.@-
  7185. UserName *string `min:"1" type:"string"`
  7186. }
  7187. // String returns the string representation
  7188. func (s CreateAccessKeyInput) String() string {
  7189. return awsutil.Prettify(s)
  7190. }
  7191. // GoString returns the string representation
  7192. func (s CreateAccessKeyInput) GoString() string {
  7193. return s.String()
  7194. }
  7195. // Validate inspects the fields of the type to determine if they are valid.
  7196. func (s *CreateAccessKeyInput) Validate() error {
  7197. invalidParams := request.ErrInvalidParams{Context: "CreateAccessKeyInput"}
  7198. if s.UserName != nil && len(*s.UserName) < 1 {
  7199. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  7200. }
  7201. if invalidParams.Len() > 0 {
  7202. return invalidParams
  7203. }
  7204. return nil
  7205. }
  7206. // Contains the response to a successful CreateAccessKey request.
  7207. type CreateAccessKeyOutput struct {
  7208. _ struct{} `type:"structure"`
  7209. // A structure with details about the access key.
  7210. AccessKey *AccessKey `type:"structure" required:"true"`
  7211. }
  7212. // String returns the string representation
  7213. func (s CreateAccessKeyOutput) String() string {
  7214. return awsutil.Prettify(s)
  7215. }
  7216. // GoString returns the string representation
  7217. func (s CreateAccessKeyOutput) GoString() string {
  7218. return s.String()
  7219. }
  7220. type CreateAccountAliasInput struct {
  7221. _ struct{} `type:"structure"`
  7222. // The account alias to create.
  7223. //
  7224. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7225. // a string of characters consisting of lowercase letters, digits, and dashes.
  7226. // You cannot start or finish with a dash, nor can you have two dashes in a
  7227. // row.
  7228. AccountAlias *string `min:"3" type:"string" required:"true"`
  7229. }
  7230. // String returns the string representation
  7231. func (s CreateAccountAliasInput) String() string {
  7232. return awsutil.Prettify(s)
  7233. }
  7234. // GoString returns the string representation
  7235. func (s CreateAccountAliasInput) GoString() string {
  7236. return s.String()
  7237. }
  7238. // Validate inspects the fields of the type to determine if they are valid.
  7239. func (s *CreateAccountAliasInput) Validate() error {
  7240. invalidParams := request.ErrInvalidParams{Context: "CreateAccountAliasInput"}
  7241. if s.AccountAlias == nil {
  7242. invalidParams.Add(request.NewErrParamRequired("AccountAlias"))
  7243. }
  7244. if s.AccountAlias != nil && len(*s.AccountAlias) < 3 {
  7245. invalidParams.Add(request.NewErrParamMinLen("AccountAlias", 3))
  7246. }
  7247. if invalidParams.Len() > 0 {
  7248. return invalidParams
  7249. }
  7250. return nil
  7251. }
  7252. type CreateAccountAliasOutput struct {
  7253. _ struct{} `type:"structure"`
  7254. }
  7255. // String returns the string representation
  7256. func (s CreateAccountAliasOutput) String() string {
  7257. return awsutil.Prettify(s)
  7258. }
  7259. // GoString returns the string representation
  7260. func (s CreateAccountAliasOutput) GoString() string {
  7261. return s.String()
  7262. }
  7263. type CreateGroupInput struct {
  7264. _ struct{} `type:"structure"`
  7265. // The name of the group to create. Do not include the path in this value.
  7266. //
  7267. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7268. // a string of characters consisting of upper and lowercase alphanumeric characters
  7269. // with no spaces. You can also include any of the following characters: =,.@-
  7270. GroupName *string `min:"1" type:"string" required:"true"`
  7271. // The path to the group. For more information about paths, see IAM Identifiers
  7272. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  7273. // in the IAM User Guide.
  7274. //
  7275. // This parameter is optional. If it is not included, it defaults to a slash
  7276. // (/).
  7277. //
  7278. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7279. // a string of characters consisting of either a forward slash (/) by itself
  7280. // or a string that must begin and end with forward slashes, containing any
  7281. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  7282. // most punctuation characters, digits, and upper and lowercased letters.
  7283. Path *string `min:"1" type:"string"`
  7284. }
  7285. // String returns the string representation
  7286. func (s CreateGroupInput) String() string {
  7287. return awsutil.Prettify(s)
  7288. }
  7289. // GoString returns the string representation
  7290. func (s CreateGroupInput) GoString() string {
  7291. return s.String()
  7292. }
  7293. // Validate inspects the fields of the type to determine if they are valid.
  7294. func (s *CreateGroupInput) Validate() error {
  7295. invalidParams := request.ErrInvalidParams{Context: "CreateGroupInput"}
  7296. if s.GroupName == nil {
  7297. invalidParams.Add(request.NewErrParamRequired("GroupName"))
  7298. }
  7299. if s.GroupName != nil && len(*s.GroupName) < 1 {
  7300. invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  7301. }
  7302. if s.Path != nil && len(*s.Path) < 1 {
  7303. invalidParams.Add(request.NewErrParamMinLen("Path", 1))
  7304. }
  7305. if invalidParams.Len() > 0 {
  7306. return invalidParams
  7307. }
  7308. return nil
  7309. }
  7310. // Contains the response to a successful CreateGroup request.
  7311. type CreateGroupOutput struct {
  7312. _ struct{} `type:"structure"`
  7313. // A structure containing details about the new group.
  7314. Group *Group `type:"structure" required:"true"`
  7315. }
  7316. // String returns the string representation
  7317. func (s CreateGroupOutput) String() string {
  7318. return awsutil.Prettify(s)
  7319. }
  7320. // GoString returns the string representation
  7321. func (s CreateGroupOutput) GoString() string {
  7322. return s.String()
  7323. }
  7324. type CreateInstanceProfileInput struct {
  7325. _ struct{} `type:"structure"`
  7326. // The name of the instance profile to create.
  7327. //
  7328. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7329. // a string of characters consisting of upper and lowercase alphanumeric characters
  7330. // with no spaces. You can also include any of the following characters: =,.@-
  7331. InstanceProfileName *string `min:"1" type:"string" required:"true"`
  7332. // The path to the instance profile. For more information about paths, see IAM
  7333. // Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  7334. // in the IAM User Guide.
  7335. //
  7336. // This parameter is optional. If it is not included, it defaults to a slash
  7337. // (/).
  7338. //
  7339. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7340. // a string of characters consisting of either a forward slash (/) by itself
  7341. // or a string that must begin and end with forward slashes, containing any
  7342. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  7343. // most punctuation characters, digits, and upper and lowercased letters.
  7344. Path *string `min:"1" type:"string"`
  7345. }
  7346. // String returns the string representation
  7347. func (s CreateInstanceProfileInput) String() string {
  7348. return awsutil.Prettify(s)
  7349. }
  7350. // GoString returns the string representation
  7351. func (s CreateInstanceProfileInput) GoString() string {
  7352. return s.String()
  7353. }
  7354. // Validate inspects the fields of the type to determine if they are valid.
  7355. func (s *CreateInstanceProfileInput) Validate() error {
  7356. invalidParams := request.ErrInvalidParams{Context: "CreateInstanceProfileInput"}
  7357. if s.InstanceProfileName == nil {
  7358. invalidParams.Add(request.NewErrParamRequired("InstanceProfileName"))
  7359. }
  7360. if s.InstanceProfileName != nil && len(*s.InstanceProfileName) < 1 {
  7361. invalidParams.Add(request.NewErrParamMinLen("InstanceProfileName", 1))
  7362. }
  7363. if s.Path != nil && len(*s.Path) < 1 {
  7364. invalidParams.Add(request.NewErrParamMinLen("Path", 1))
  7365. }
  7366. if invalidParams.Len() > 0 {
  7367. return invalidParams
  7368. }
  7369. return nil
  7370. }
  7371. // Contains the response to a successful CreateInstanceProfile request.
  7372. type CreateInstanceProfileOutput struct {
  7373. _ struct{} `type:"structure"`
  7374. // A structure containing details about the new instance profile.
  7375. InstanceProfile *InstanceProfile `type:"structure" required:"true"`
  7376. }
  7377. // String returns the string representation
  7378. func (s CreateInstanceProfileOutput) String() string {
  7379. return awsutil.Prettify(s)
  7380. }
  7381. // GoString returns the string representation
  7382. func (s CreateInstanceProfileOutput) GoString() string {
  7383. return s.String()
  7384. }
  7385. type CreateLoginProfileInput struct {
  7386. _ struct{} `type:"structure"`
  7387. // The new password for the user.
  7388. //
  7389. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7390. // a string of characters consisting of almost any printable ASCII character
  7391. // from the space (\u0020) through the end of the ASCII character range (\u00FF).
  7392. // You can also include the tab (\u0009), line feed (\u000A), and carriage return
  7393. // (\u000D) characters. Although any of these characters are valid in a password,
  7394. // note that many tools, such as the AWS Management Console, might restrict
  7395. // the ability to enter certain characters because they have special meaning
  7396. // within that tool.
  7397. Password *string `min:"1" type:"string" required:"true"`
  7398. // Specifies whether the user is required to set a new password on next sign-in.
  7399. PasswordResetRequired *bool `type:"boolean"`
  7400. // The name of the IAM user to create a password for. The user must already
  7401. // exist.
  7402. //
  7403. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7404. // a string of characters consisting of upper and lowercase alphanumeric characters
  7405. // with no spaces. You can also include any of the following characters: =,.@-
  7406. UserName *string `min:"1" type:"string" required:"true"`
  7407. }
  7408. // String returns the string representation
  7409. func (s CreateLoginProfileInput) String() string {
  7410. return awsutil.Prettify(s)
  7411. }
  7412. // GoString returns the string representation
  7413. func (s CreateLoginProfileInput) GoString() string {
  7414. return s.String()
  7415. }
  7416. // Validate inspects the fields of the type to determine if they are valid.
  7417. func (s *CreateLoginProfileInput) Validate() error {
  7418. invalidParams := request.ErrInvalidParams{Context: "CreateLoginProfileInput"}
  7419. if s.Password == nil {
  7420. invalidParams.Add(request.NewErrParamRequired("Password"))
  7421. }
  7422. if s.Password != nil && len(*s.Password) < 1 {
  7423. invalidParams.Add(request.NewErrParamMinLen("Password", 1))
  7424. }
  7425. if s.UserName == nil {
  7426. invalidParams.Add(request.NewErrParamRequired("UserName"))
  7427. }
  7428. if s.UserName != nil && len(*s.UserName) < 1 {
  7429. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  7430. }
  7431. if invalidParams.Len() > 0 {
  7432. return invalidParams
  7433. }
  7434. return nil
  7435. }
  7436. // Contains the response to a successful CreateLoginProfile request.
  7437. type CreateLoginProfileOutput struct {
  7438. _ struct{} `type:"structure"`
  7439. // A structure containing the user name and password create date.
  7440. LoginProfile *LoginProfile `type:"structure" required:"true"`
  7441. }
  7442. // String returns the string representation
  7443. func (s CreateLoginProfileOutput) String() string {
  7444. return awsutil.Prettify(s)
  7445. }
  7446. // GoString returns the string representation
  7447. func (s CreateLoginProfileOutput) GoString() string {
  7448. return s.String()
  7449. }
  7450. type CreateOpenIDConnectProviderInput struct {
  7451. _ struct{} `type:"structure"`
  7452. // A list of client IDs (also known as audiences). When a mobile or web app
  7453. // registers with an OpenID Connect provider, they establish a value that identifies
  7454. // the application. (This is the value that's sent as the client_id parameter
  7455. // on OAuth requests.)
  7456. //
  7457. // You can register multiple client IDs with the same provider. For example,
  7458. // you might have multiple applications that use the same OIDC provider. You
  7459. // cannot register more than 100 client IDs with a single IAM OIDC provider.
  7460. //
  7461. // There is no defined format for a client ID. The CreateOpenIDConnectProviderRequest
  7462. // action accepts client IDs up to 255 characters long.
  7463. ClientIDList []*string `type:"list"`
  7464. // A list of server certificate thumbprints for the OpenID Connect (OIDC) identity
  7465. // provider's server certificate(s). Typically this list includes only one entry.
  7466. // However, IAM lets you have up to five thumbprints for an OIDC provider. This
  7467. // lets you maintain multiple thumbprints if the identity provider is rotating
  7468. // certificates.
  7469. //
  7470. // The server certificate thumbprint is the hex-encoded SHA-1 hash value of
  7471. // the X.509 certificate used by the domain where the OpenID Connect provider
  7472. // makes its keys available. It is always a 40-character string.
  7473. //
  7474. // You must provide at least one thumbprint when creating an IAM OIDC provider.
  7475. // For example, if the OIDC provider is server.example.com and the provider
  7476. // stores its keys at "https://keys.server.example.com/openid-connect", the
  7477. // thumbprint string would be the hex-encoded SHA-1 hash value of the certificate
  7478. // used by https://keys.server.example.com.
  7479. //
  7480. // For more information about obtaining the OIDC provider's thumbprint, see
  7481. // Obtaining the Thumbprint for an OpenID Connect Provider (http://docs.aws.amazon.com/IAM/latest/UserGuide/identity-providers-oidc-obtain-thumbprint.html)
  7482. // in the IAM User Guide.
  7483. ThumbprintList []*string `type:"list" required:"true"`
  7484. // The URL of the identity provider. The URL must begin with "https://" and
  7485. // should correspond to the iss claim in the provider's OpenID Connect ID tokens.
  7486. // Per the OIDC standard, path components are allowed but query parameters are
  7487. // not. Typically the URL consists of only a host name, like "https://server.example.org"
  7488. // or "https://example.com".
  7489. //
  7490. // You cannot register the same provider multiple times in a single AWS account.
  7491. // If you try to submit a URL that has already been used for an OpenID Connect
  7492. // provider in the AWS account, you will get an error.
  7493. Url *string `min:"1" type:"string" required:"true"`
  7494. }
  7495. // String returns the string representation
  7496. func (s CreateOpenIDConnectProviderInput) String() string {
  7497. return awsutil.Prettify(s)
  7498. }
  7499. // GoString returns the string representation
  7500. func (s CreateOpenIDConnectProviderInput) GoString() string {
  7501. return s.String()
  7502. }
  7503. // Validate inspects the fields of the type to determine if they are valid.
  7504. func (s *CreateOpenIDConnectProviderInput) Validate() error {
  7505. invalidParams := request.ErrInvalidParams{Context: "CreateOpenIDConnectProviderInput"}
  7506. if s.ThumbprintList == nil {
  7507. invalidParams.Add(request.NewErrParamRequired("ThumbprintList"))
  7508. }
  7509. if s.Url == nil {
  7510. invalidParams.Add(request.NewErrParamRequired("Url"))
  7511. }
  7512. if s.Url != nil && len(*s.Url) < 1 {
  7513. invalidParams.Add(request.NewErrParamMinLen("Url", 1))
  7514. }
  7515. if invalidParams.Len() > 0 {
  7516. return invalidParams
  7517. }
  7518. return nil
  7519. }
  7520. // Contains the response to a successful CreateOpenIDConnectProvider request.
  7521. type CreateOpenIDConnectProviderOutput struct {
  7522. _ struct{} `type:"structure"`
  7523. // The Amazon Resource Name (ARN) of the new IAM OpenID Connect provider that
  7524. // is created. For more information, see OpenIDConnectProviderListEntry.
  7525. OpenIDConnectProviderArn *string `min:"20" type:"string"`
  7526. }
  7527. // String returns the string representation
  7528. func (s CreateOpenIDConnectProviderOutput) String() string {
  7529. return awsutil.Prettify(s)
  7530. }
  7531. // GoString returns the string representation
  7532. func (s CreateOpenIDConnectProviderOutput) GoString() string {
  7533. return s.String()
  7534. }
  7535. type CreatePolicyInput struct {
  7536. _ struct{} `type:"structure"`
  7537. // A friendly description of the policy.
  7538. //
  7539. // Typically used to store information about the permissions defined in the
  7540. // policy. For example, "Grants access to production DynamoDB tables."
  7541. //
  7542. // The policy description is immutable. After a value is assigned, it cannot
  7543. // be changed.
  7544. Description *string `type:"string"`
  7545. // The path for the policy.
  7546. //
  7547. // For more information about paths, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  7548. // in the IAM User Guide.
  7549. //
  7550. // This parameter is optional. If it is not included, it defaults to a slash
  7551. // (/).
  7552. //
  7553. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7554. // a string of characters consisting of either a forward slash (/) by itself
  7555. // or a string that must begin and end with forward slashes, containing any
  7556. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  7557. // most punctuation characters, digits, and upper and lowercased letters.
  7558. Path *string `type:"string"`
  7559. // The JSON policy document that you want to use as the content for the new
  7560. // policy.
  7561. //
  7562. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7563. // a string of characters consisting of any printable ASCII character ranging
  7564. // from the space character (\u0020) through end of the ASCII character range
  7565. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  7566. // (\u000A), and carriage return (\u000D).
  7567. PolicyDocument *string `min:"1" type:"string" required:"true"`
  7568. // The friendly name of the policy.
  7569. //
  7570. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7571. // a string of characters consisting of upper and lowercase alphanumeric characters
  7572. // with no spaces. You can also include any of the following characters: =,.@-
  7573. PolicyName *string `min:"1" type:"string" required:"true"`
  7574. }
  7575. // String returns the string representation
  7576. func (s CreatePolicyInput) String() string {
  7577. return awsutil.Prettify(s)
  7578. }
  7579. // GoString returns the string representation
  7580. func (s CreatePolicyInput) GoString() string {
  7581. return s.String()
  7582. }
  7583. // Validate inspects the fields of the type to determine if they are valid.
  7584. func (s *CreatePolicyInput) Validate() error {
  7585. invalidParams := request.ErrInvalidParams{Context: "CreatePolicyInput"}
  7586. if s.PolicyDocument == nil {
  7587. invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
  7588. }
  7589. if s.PolicyDocument != nil && len(*s.PolicyDocument) < 1 {
  7590. invalidParams.Add(request.NewErrParamMinLen("PolicyDocument", 1))
  7591. }
  7592. if s.PolicyName == nil {
  7593. invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  7594. }
  7595. if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  7596. invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  7597. }
  7598. if invalidParams.Len() > 0 {
  7599. return invalidParams
  7600. }
  7601. return nil
  7602. }
  7603. // Contains the response to a successful CreatePolicy request.
  7604. type CreatePolicyOutput struct {
  7605. _ struct{} `type:"structure"`
  7606. // A structure containing details about the new policy.
  7607. Policy *Policy `type:"structure"`
  7608. }
  7609. // String returns the string representation
  7610. func (s CreatePolicyOutput) String() string {
  7611. return awsutil.Prettify(s)
  7612. }
  7613. // GoString returns the string representation
  7614. func (s CreatePolicyOutput) GoString() string {
  7615. return s.String()
  7616. }
  7617. type CreatePolicyVersionInput struct {
  7618. _ struct{} `type:"structure"`
  7619. // The Amazon Resource Name (ARN) of the IAM policy to which you want to add
  7620. // a new version.
  7621. //
  7622. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  7623. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  7624. // in the AWS General Reference.
  7625. PolicyArn *string `min:"20" type:"string" required:"true"`
  7626. // The JSON policy document that you want to use as the content for this new
  7627. // version of the policy.
  7628. //
  7629. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7630. // a string of characters consisting of any printable ASCII character ranging
  7631. // from the space character (\u0020) through end of the ASCII character range
  7632. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  7633. // (\u000A), and carriage return (\u000D).
  7634. PolicyDocument *string `min:"1" type:"string" required:"true"`
  7635. // Specifies whether to set this version as the policy's default version.
  7636. //
  7637. // When this parameter is true, the new policy version becomes the operative
  7638. // version; that is, the version that is in effect for the IAM users, groups,
  7639. // and roles that the policy is attached to.
  7640. //
  7641. // For more information about managed policy versions, see Versioning for Managed
  7642. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
  7643. // in the IAM User Guide.
  7644. SetAsDefault *bool `type:"boolean"`
  7645. }
  7646. // String returns the string representation
  7647. func (s CreatePolicyVersionInput) String() string {
  7648. return awsutil.Prettify(s)
  7649. }
  7650. // GoString returns the string representation
  7651. func (s CreatePolicyVersionInput) GoString() string {
  7652. return s.String()
  7653. }
  7654. // Validate inspects the fields of the type to determine if they are valid.
  7655. func (s *CreatePolicyVersionInput) Validate() error {
  7656. invalidParams := request.ErrInvalidParams{Context: "CreatePolicyVersionInput"}
  7657. if s.PolicyArn == nil {
  7658. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  7659. }
  7660. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  7661. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  7662. }
  7663. if s.PolicyDocument == nil {
  7664. invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
  7665. }
  7666. if s.PolicyDocument != nil && len(*s.PolicyDocument) < 1 {
  7667. invalidParams.Add(request.NewErrParamMinLen("PolicyDocument", 1))
  7668. }
  7669. if invalidParams.Len() > 0 {
  7670. return invalidParams
  7671. }
  7672. return nil
  7673. }
  7674. // Contains the response to a successful CreatePolicyVersion request.
  7675. type CreatePolicyVersionOutput struct {
  7676. _ struct{} `type:"structure"`
  7677. // A structure containing details about the new policy version.
  7678. PolicyVersion *PolicyVersion `type:"structure"`
  7679. }
  7680. // String returns the string representation
  7681. func (s CreatePolicyVersionOutput) String() string {
  7682. return awsutil.Prettify(s)
  7683. }
  7684. // GoString returns the string representation
  7685. func (s CreatePolicyVersionOutput) GoString() string {
  7686. return s.String()
  7687. }
  7688. type CreateRoleInput struct {
  7689. _ struct{} `type:"structure"`
  7690. // The trust relationship policy document that grants an entity permission to
  7691. // assume the role.
  7692. //
  7693. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7694. // a string of characters consisting of any printable ASCII character ranging
  7695. // from the space character (\u0020) through end of the ASCII character range
  7696. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  7697. // (\u000A), and carriage return (\u000D).
  7698. AssumeRolePolicyDocument *string `min:"1" type:"string" required:"true"`
  7699. // The path to the role. For more information about paths, see IAM Identifiers
  7700. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  7701. // in the IAM User Guide.
  7702. //
  7703. // This parameter is optional. If it is not included, it defaults to a slash
  7704. // (/).
  7705. //
  7706. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7707. // a string of characters consisting of either a forward slash (/) by itself
  7708. // or a string that must begin and end with forward slashes, containing any
  7709. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  7710. // most punctuation characters, digits, and upper and lowercased letters.
  7711. Path *string `min:"1" type:"string"`
  7712. // The name of the role to create.
  7713. //
  7714. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7715. // a string of characters consisting of upper and lowercase alphanumeric characters
  7716. // with no spaces. You can also include any of the following characters: =,.@-
  7717. RoleName *string `min:"1" type:"string" required:"true"`
  7718. }
  7719. // String returns the string representation
  7720. func (s CreateRoleInput) String() string {
  7721. return awsutil.Prettify(s)
  7722. }
  7723. // GoString returns the string representation
  7724. func (s CreateRoleInput) GoString() string {
  7725. return s.String()
  7726. }
  7727. // Validate inspects the fields of the type to determine if they are valid.
  7728. func (s *CreateRoleInput) Validate() error {
  7729. invalidParams := request.ErrInvalidParams{Context: "CreateRoleInput"}
  7730. if s.AssumeRolePolicyDocument == nil {
  7731. invalidParams.Add(request.NewErrParamRequired("AssumeRolePolicyDocument"))
  7732. }
  7733. if s.AssumeRolePolicyDocument != nil && len(*s.AssumeRolePolicyDocument) < 1 {
  7734. invalidParams.Add(request.NewErrParamMinLen("AssumeRolePolicyDocument", 1))
  7735. }
  7736. if s.Path != nil && len(*s.Path) < 1 {
  7737. invalidParams.Add(request.NewErrParamMinLen("Path", 1))
  7738. }
  7739. if s.RoleName == nil {
  7740. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  7741. }
  7742. if s.RoleName != nil && len(*s.RoleName) < 1 {
  7743. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  7744. }
  7745. if invalidParams.Len() > 0 {
  7746. return invalidParams
  7747. }
  7748. return nil
  7749. }
  7750. // Contains the response to a successful CreateRole request.
  7751. type CreateRoleOutput struct {
  7752. _ struct{} `type:"structure"`
  7753. // A structure containing details about the new role.
  7754. Role *Role `type:"structure" required:"true"`
  7755. }
  7756. // String returns the string representation
  7757. func (s CreateRoleOutput) String() string {
  7758. return awsutil.Prettify(s)
  7759. }
  7760. // GoString returns the string representation
  7761. func (s CreateRoleOutput) GoString() string {
  7762. return s.String()
  7763. }
  7764. type CreateSAMLProviderInput struct {
  7765. _ struct{} `type:"structure"`
  7766. // The name of the provider to create.
  7767. //
  7768. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7769. // a string of characters consisting of upper and lowercase alphanumeric characters
  7770. // with no spaces. You can also include any of the following characters: =,.@-
  7771. Name *string `min:"1" type:"string" required:"true"`
  7772. // An XML document generated by an identity provider (IdP) that supports SAML
  7773. // 2.0. The document includes the issuer's name, expiration information, and
  7774. // keys that can be used to validate the SAML authentication response (assertions)
  7775. // that are received from the IdP. You must generate the metadata document using
  7776. // the identity management software that is used as your organization's IdP.
  7777. //
  7778. // For more information, see About SAML 2.0-based Federation (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html)
  7779. // in the IAM User Guide
  7780. SAMLMetadataDocument *string `min:"1000" type:"string" required:"true"`
  7781. }
  7782. // String returns the string representation
  7783. func (s CreateSAMLProviderInput) String() string {
  7784. return awsutil.Prettify(s)
  7785. }
  7786. // GoString returns the string representation
  7787. func (s CreateSAMLProviderInput) GoString() string {
  7788. return s.String()
  7789. }
  7790. // Validate inspects the fields of the type to determine if they are valid.
  7791. func (s *CreateSAMLProviderInput) Validate() error {
  7792. invalidParams := request.ErrInvalidParams{Context: "CreateSAMLProviderInput"}
  7793. if s.Name == nil {
  7794. invalidParams.Add(request.NewErrParamRequired("Name"))
  7795. }
  7796. if s.Name != nil && len(*s.Name) < 1 {
  7797. invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  7798. }
  7799. if s.SAMLMetadataDocument == nil {
  7800. invalidParams.Add(request.NewErrParamRequired("SAMLMetadataDocument"))
  7801. }
  7802. if s.SAMLMetadataDocument != nil && len(*s.SAMLMetadataDocument) < 1000 {
  7803. invalidParams.Add(request.NewErrParamMinLen("SAMLMetadataDocument", 1000))
  7804. }
  7805. if invalidParams.Len() > 0 {
  7806. return invalidParams
  7807. }
  7808. return nil
  7809. }
  7810. // Contains the response to a successful CreateSAMLProvider request.
  7811. type CreateSAMLProviderOutput struct {
  7812. _ struct{} `type:"structure"`
  7813. // The Amazon Resource Name (ARN) of the new SAML provider resource in IAM.
  7814. SAMLProviderArn *string `min:"20" type:"string"`
  7815. }
  7816. // String returns the string representation
  7817. func (s CreateSAMLProviderOutput) String() string {
  7818. return awsutil.Prettify(s)
  7819. }
  7820. // GoString returns the string representation
  7821. func (s CreateSAMLProviderOutput) GoString() string {
  7822. return s.String()
  7823. }
  7824. type CreateUserInput struct {
  7825. _ struct{} `type:"structure"`
  7826. // The path for the user name. For more information about paths, see IAM Identifiers
  7827. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  7828. // in the IAM User Guide.
  7829. //
  7830. // This parameter is optional. If it is not included, it defaults to a slash
  7831. // (/).
  7832. //
  7833. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7834. // a string of characters consisting of either a forward slash (/) by itself
  7835. // or a string that must begin and end with forward slashes, containing any
  7836. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  7837. // most punctuation characters, digits, and upper and lowercased letters.
  7838. Path *string `min:"1" type:"string"`
  7839. // The name of the user to create.
  7840. //
  7841. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7842. // a string of characters consisting of upper and lowercase alphanumeric characters
  7843. // with no spaces. You can also include any of the following characters: =,.@-
  7844. UserName *string `min:"1" type:"string" required:"true"`
  7845. }
  7846. // String returns the string representation
  7847. func (s CreateUserInput) String() string {
  7848. return awsutil.Prettify(s)
  7849. }
  7850. // GoString returns the string representation
  7851. func (s CreateUserInput) GoString() string {
  7852. return s.String()
  7853. }
  7854. // Validate inspects the fields of the type to determine if they are valid.
  7855. func (s *CreateUserInput) Validate() error {
  7856. invalidParams := request.ErrInvalidParams{Context: "CreateUserInput"}
  7857. if s.Path != nil && len(*s.Path) < 1 {
  7858. invalidParams.Add(request.NewErrParamMinLen("Path", 1))
  7859. }
  7860. if s.UserName == nil {
  7861. invalidParams.Add(request.NewErrParamRequired("UserName"))
  7862. }
  7863. if s.UserName != nil && len(*s.UserName) < 1 {
  7864. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  7865. }
  7866. if invalidParams.Len() > 0 {
  7867. return invalidParams
  7868. }
  7869. return nil
  7870. }
  7871. // Contains the response to a successful CreateUser request.
  7872. type CreateUserOutput struct {
  7873. _ struct{} `type:"structure"`
  7874. // A structure with details about the new IAM user.
  7875. User *User `type:"structure"`
  7876. }
  7877. // String returns the string representation
  7878. func (s CreateUserOutput) String() string {
  7879. return awsutil.Prettify(s)
  7880. }
  7881. // GoString returns the string representation
  7882. func (s CreateUserOutput) GoString() string {
  7883. return s.String()
  7884. }
  7885. type CreateVirtualMFADeviceInput struct {
  7886. _ struct{} `type:"structure"`
  7887. // The path for the virtual MFA device. For more information about paths, see
  7888. // IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  7889. // in the IAM User Guide.
  7890. //
  7891. // This parameter is optional. If it is not included, it defaults to a slash
  7892. // (/).
  7893. //
  7894. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7895. // a string of characters consisting of either a forward slash (/) by itself
  7896. // or a string that must begin and end with forward slashes, containing any
  7897. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  7898. // most punctuation characters, digits, and upper and lowercased letters.
  7899. Path *string `min:"1" type:"string"`
  7900. // The name of the virtual MFA device. Use with path to uniquely identify a
  7901. // virtual MFA device.
  7902. //
  7903. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7904. // a string of characters consisting of upper and lowercase alphanumeric characters
  7905. // with no spaces. You can also include any of the following characters: =,.@-
  7906. VirtualMFADeviceName *string `min:"1" type:"string" required:"true"`
  7907. }
  7908. // String returns the string representation
  7909. func (s CreateVirtualMFADeviceInput) String() string {
  7910. return awsutil.Prettify(s)
  7911. }
  7912. // GoString returns the string representation
  7913. func (s CreateVirtualMFADeviceInput) GoString() string {
  7914. return s.String()
  7915. }
  7916. // Validate inspects the fields of the type to determine if they are valid.
  7917. func (s *CreateVirtualMFADeviceInput) Validate() error {
  7918. invalidParams := request.ErrInvalidParams{Context: "CreateVirtualMFADeviceInput"}
  7919. if s.Path != nil && len(*s.Path) < 1 {
  7920. invalidParams.Add(request.NewErrParamMinLen("Path", 1))
  7921. }
  7922. if s.VirtualMFADeviceName == nil {
  7923. invalidParams.Add(request.NewErrParamRequired("VirtualMFADeviceName"))
  7924. }
  7925. if s.VirtualMFADeviceName != nil && len(*s.VirtualMFADeviceName) < 1 {
  7926. invalidParams.Add(request.NewErrParamMinLen("VirtualMFADeviceName", 1))
  7927. }
  7928. if invalidParams.Len() > 0 {
  7929. return invalidParams
  7930. }
  7931. return nil
  7932. }
  7933. // Contains the response to a successful CreateVirtualMFADevice request.
  7934. type CreateVirtualMFADeviceOutput struct {
  7935. _ struct{} `type:"structure"`
  7936. // A structure containing details about the new virtual MFA device.
  7937. VirtualMFADevice *VirtualMFADevice `type:"structure" required:"true"`
  7938. }
  7939. // String returns the string representation
  7940. func (s CreateVirtualMFADeviceOutput) String() string {
  7941. return awsutil.Prettify(s)
  7942. }
  7943. // GoString returns the string representation
  7944. func (s CreateVirtualMFADeviceOutput) GoString() string {
  7945. return s.String()
  7946. }
  7947. type DeactivateMFADeviceInput struct {
  7948. _ struct{} `type:"structure"`
  7949. // The serial number that uniquely identifies the MFA device. For virtual MFA
  7950. // devices, the serial number is the device ARN.
  7951. //
  7952. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7953. // a string of characters consisting of upper and lowercase alphanumeric characters
  7954. // with no spaces. You can also include any of the following characters: =/:,.@-
  7955. SerialNumber *string `min:"9" type:"string" required:"true"`
  7956. // The name of the user whose MFA device you want to deactivate.
  7957. //
  7958. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  7959. // a string of characters consisting of upper and lowercase alphanumeric characters
  7960. // with no spaces. You can also include any of the following characters: =,.@-
  7961. UserName *string `min:"1" type:"string" required:"true"`
  7962. }
  7963. // String returns the string representation
  7964. func (s DeactivateMFADeviceInput) String() string {
  7965. return awsutil.Prettify(s)
  7966. }
  7967. // GoString returns the string representation
  7968. func (s DeactivateMFADeviceInput) GoString() string {
  7969. return s.String()
  7970. }
  7971. // Validate inspects the fields of the type to determine if they are valid.
  7972. func (s *DeactivateMFADeviceInput) Validate() error {
  7973. invalidParams := request.ErrInvalidParams{Context: "DeactivateMFADeviceInput"}
  7974. if s.SerialNumber == nil {
  7975. invalidParams.Add(request.NewErrParamRequired("SerialNumber"))
  7976. }
  7977. if s.SerialNumber != nil && len(*s.SerialNumber) < 9 {
  7978. invalidParams.Add(request.NewErrParamMinLen("SerialNumber", 9))
  7979. }
  7980. if s.UserName == nil {
  7981. invalidParams.Add(request.NewErrParamRequired("UserName"))
  7982. }
  7983. if s.UserName != nil && len(*s.UserName) < 1 {
  7984. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  7985. }
  7986. if invalidParams.Len() > 0 {
  7987. return invalidParams
  7988. }
  7989. return nil
  7990. }
  7991. type DeactivateMFADeviceOutput struct {
  7992. _ struct{} `type:"structure"`
  7993. }
  7994. // String returns the string representation
  7995. func (s DeactivateMFADeviceOutput) String() string {
  7996. return awsutil.Prettify(s)
  7997. }
  7998. // GoString returns the string representation
  7999. func (s DeactivateMFADeviceOutput) GoString() string {
  8000. return s.String()
  8001. }
  8002. type DeleteAccessKeyInput struct {
  8003. _ struct{} `type:"structure"`
  8004. // The access key ID for the access key ID and secret access key you want to
  8005. // delete.
  8006. //
  8007. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8008. // a string of characters that can consist of any upper or lowercased letter
  8009. // or digit.
  8010. AccessKeyId *string `min:"16" type:"string" required:"true"`
  8011. // The name of the user whose access key pair you want to delete.
  8012. //
  8013. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8014. // a string of characters consisting of upper and lowercase alphanumeric characters
  8015. // with no spaces. You can also include any of the following characters: =,.@-
  8016. UserName *string `min:"1" type:"string"`
  8017. }
  8018. // String returns the string representation
  8019. func (s DeleteAccessKeyInput) String() string {
  8020. return awsutil.Prettify(s)
  8021. }
  8022. // GoString returns the string representation
  8023. func (s DeleteAccessKeyInput) GoString() string {
  8024. return s.String()
  8025. }
  8026. // Validate inspects the fields of the type to determine if they are valid.
  8027. func (s *DeleteAccessKeyInput) Validate() error {
  8028. invalidParams := request.ErrInvalidParams{Context: "DeleteAccessKeyInput"}
  8029. if s.AccessKeyId == nil {
  8030. invalidParams.Add(request.NewErrParamRequired("AccessKeyId"))
  8031. }
  8032. if s.AccessKeyId != nil && len(*s.AccessKeyId) < 16 {
  8033. invalidParams.Add(request.NewErrParamMinLen("AccessKeyId", 16))
  8034. }
  8035. if s.UserName != nil && len(*s.UserName) < 1 {
  8036. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  8037. }
  8038. if invalidParams.Len() > 0 {
  8039. return invalidParams
  8040. }
  8041. return nil
  8042. }
  8043. type DeleteAccessKeyOutput struct {
  8044. _ struct{} `type:"structure"`
  8045. }
  8046. // String returns the string representation
  8047. func (s DeleteAccessKeyOutput) String() string {
  8048. return awsutil.Prettify(s)
  8049. }
  8050. // GoString returns the string representation
  8051. func (s DeleteAccessKeyOutput) GoString() string {
  8052. return s.String()
  8053. }
  8054. type DeleteAccountAliasInput struct {
  8055. _ struct{} `type:"structure"`
  8056. // The name of the account alias to delete.
  8057. //
  8058. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8059. // a string of characters consisting of lowercase letters, digits, and dashes.
  8060. // You cannot start or finish with a dash, nor can you have two dashes in a
  8061. // row.
  8062. AccountAlias *string `min:"3" type:"string" required:"true"`
  8063. }
  8064. // String returns the string representation
  8065. func (s DeleteAccountAliasInput) String() string {
  8066. return awsutil.Prettify(s)
  8067. }
  8068. // GoString returns the string representation
  8069. func (s DeleteAccountAliasInput) GoString() string {
  8070. return s.String()
  8071. }
  8072. // Validate inspects the fields of the type to determine if they are valid.
  8073. func (s *DeleteAccountAliasInput) Validate() error {
  8074. invalidParams := request.ErrInvalidParams{Context: "DeleteAccountAliasInput"}
  8075. if s.AccountAlias == nil {
  8076. invalidParams.Add(request.NewErrParamRequired("AccountAlias"))
  8077. }
  8078. if s.AccountAlias != nil && len(*s.AccountAlias) < 3 {
  8079. invalidParams.Add(request.NewErrParamMinLen("AccountAlias", 3))
  8080. }
  8081. if invalidParams.Len() > 0 {
  8082. return invalidParams
  8083. }
  8084. return nil
  8085. }
  8086. type DeleteAccountAliasOutput struct {
  8087. _ struct{} `type:"structure"`
  8088. }
  8089. // String returns the string representation
  8090. func (s DeleteAccountAliasOutput) String() string {
  8091. return awsutil.Prettify(s)
  8092. }
  8093. // GoString returns the string representation
  8094. func (s DeleteAccountAliasOutput) GoString() string {
  8095. return s.String()
  8096. }
  8097. type DeleteAccountPasswordPolicyInput struct {
  8098. _ struct{} `type:"structure"`
  8099. }
  8100. // String returns the string representation
  8101. func (s DeleteAccountPasswordPolicyInput) String() string {
  8102. return awsutil.Prettify(s)
  8103. }
  8104. // GoString returns the string representation
  8105. func (s DeleteAccountPasswordPolicyInput) GoString() string {
  8106. return s.String()
  8107. }
  8108. type DeleteAccountPasswordPolicyOutput struct {
  8109. _ struct{} `type:"structure"`
  8110. }
  8111. // String returns the string representation
  8112. func (s DeleteAccountPasswordPolicyOutput) String() string {
  8113. return awsutil.Prettify(s)
  8114. }
  8115. // GoString returns the string representation
  8116. func (s DeleteAccountPasswordPolicyOutput) GoString() string {
  8117. return s.String()
  8118. }
  8119. type DeleteGroupInput struct {
  8120. _ struct{} `type:"structure"`
  8121. // The name of the IAM group to delete.
  8122. //
  8123. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8124. // a string of characters consisting of upper and lowercase alphanumeric characters
  8125. // with no spaces. You can also include any of the following characters: =,.@-
  8126. GroupName *string `min:"1" type:"string" required:"true"`
  8127. }
  8128. // String returns the string representation
  8129. func (s DeleteGroupInput) String() string {
  8130. return awsutil.Prettify(s)
  8131. }
  8132. // GoString returns the string representation
  8133. func (s DeleteGroupInput) GoString() string {
  8134. return s.String()
  8135. }
  8136. // Validate inspects the fields of the type to determine if they are valid.
  8137. func (s *DeleteGroupInput) Validate() error {
  8138. invalidParams := request.ErrInvalidParams{Context: "DeleteGroupInput"}
  8139. if s.GroupName == nil {
  8140. invalidParams.Add(request.NewErrParamRequired("GroupName"))
  8141. }
  8142. if s.GroupName != nil && len(*s.GroupName) < 1 {
  8143. invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  8144. }
  8145. if invalidParams.Len() > 0 {
  8146. return invalidParams
  8147. }
  8148. return nil
  8149. }
  8150. type DeleteGroupOutput struct {
  8151. _ struct{} `type:"structure"`
  8152. }
  8153. // String returns the string representation
  8154. func (s DeleteGroupOutput) String() string {
  8155. return awsutil.Prettify(s)
  8156. }
  8157. // GoString returns the string representation
  8158. func (s DeleteGroupOutput) GoString() string {
  8159. return s.String()
  8160. }
  8161. type DeleteGroupPolicyInput struct {
  8162. _ struct{} `type:"structure"`
  8163. // The name (friendly name, not ARN) identifying the group that the policy is
  8164. // embedded in.
  8165. //
  8166. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8167. // a string of characters consisting of upper and lowercase alphanumeric characters
  8168. // with no spaces. You can also include any of the following characters: =,.@-
  8169. GroupName *string `min:"1" type:"string" required:"true"`
  8170. // The name identifying the policy document to delete.
  8171. //
  8172. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8173. // a string of characters consisting of upper and lowercase alphanumeric characters
  8174. // with no spaces. You can also include any of the following characters: =,.@-
  8175. PolicyName *string `min:"1" type:"string" required:"true"`
  8176. }
  8177. // String returns the string representation
  8178. func (s DeleteGroupPolicyInput) String() string {
  8179. return awsutil.Prettify(s)
  8180. }
  8181. // GoString returns the string representation
  8182. func (s DeleteGroupPolicyInput) GoString() string {
  8183. return s.String()
  8184. }
  8185. // Validate inspects the fields of the type to determine if they are valid.
  8186. func (s *DeleteGroupPolicyInput) Validate() error {
  8187. invalidParams := request.ErrInvalidParams{Context: "DeleteGroupPolicyInput"}
  8188. if s.GroupName == nil {
  8189. invalidParams.Add(request.NewErrParamRequired("GroupName"))
  8190. }
  8191. if s.GroupName != nil && len(*s.GroupName) < 1 {
  8192. invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  8193. }
  8194. if s.PolicyName == nil {
  8195. invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  8196. }
  8197. if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  8198. invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  8199. }
  8200. if invalidParams.Len() > 0 {
  8201. return invalidParams
  8202. }
  8203. return nil
  8204. }
  8205. type DeleteGroupPolicyOutput struct {
  8206. _ struct{} `type:"structure"`
  8207. }
  8208. // String returns the string representation
  8209. func (s DeleteGroupPolicyOutput) String() string {
  8210. return awsutil.Prettify(s)
  8211. }
  8212. // GoString returns the string representation
  8213. func (s DeleteGroupPolicyOutput) GoString() string {
  8214. return s.String()
  8215. }
  8216. type DeleteInstanceProfileInput struct {
  8217. _ struct{} `type:"structure"`
  8218. // The name of the instance profile to delete.
  8219. //
  8220. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8221. // a string of characters consisting of upper and lowercase alphanumeric characters
  8222. // with no spaces. You can also include any of the following characters: =,.@-
  8223. InstanceProfileName *string `min:"1" type:"string" required:"true"`
  8224. }
  8225. // String returns the string representation
  8226. func (s DeleteInstanceProfileInput) String() string {
  8227. return awsutil.Prettify(s)
  8228. }
  8229. // GoString returns the string representation
  8230. func (s DeleteInstanceProfileInput) GoString() string {
  8231. return s.String()
  8232. }
  8233. // Validate inspects the fields of the type to determine if they are valid.
  8234. func (s *DeleteInstanceProfileInput) Validate() error {
  8235. invalidParams := request.ErrInvalidParams{Context: "DeleteInstanceProfileInput"}
  8236. if s.InstanceProfileName == nil {
  8237. invalidParams.Add(request.NewErrParamRequired("InstanceProfileName"))
  8238. }
  8239. if s.InstanceProfileName != nil && len(*s.InstanceProfileName) < 1 {
  8240. invalidParams.Add(request.NewErrParamMinLen("InstanceProfileName", 1))
  8241. }
  8242. if invalidParams.Len() > 0 {
  8243. return invalidParams
  8244. }
  8245. return nil
  8246. }
  8247. type DeleteInstanceProfileOutput struct {
  8248. _ struct{} `type:"structure"`
  8249. }
  8250. // String returns the string representation
  8251. func (s DeleteInstanceProfileOutput) String() string {
  8252. return awsutil.Prettify(s)
  8253. }
  8254. // GoString returns the string representation
  8255. func (s DeleteInstanceProfileOutput) GoString() string {
  8256. return s.String()
  8257. }
  8258. type DeleteLoginProfileInput struct {
  8259. _ struct{} `type:"structure"`
  8260. // The name of the user whose password you want to delete.
  8261. //
  8262. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8263. // a string of characters consisting of upper and lowercase alphanumeric characters
  8264. // with no spaces. You can also include any of the following characters: =,.@-
  8265. UserName *string `min:"1" type:"string" required:"true"`
  8266. }
  8267. // String returns the string representation
  8268. func (s DeleteLoginProfileInput) String() string {
  8269. return awsutil.Prettify(s)
  8270. }
  8271. // GoString returns the string representation
  8272. func (s DeleteLoginProfileInput) GoString() string {
  8273. return s.String()
  8274. }
  8275. // Validate inspects the fields of the type to determine if they are valid.
  8276. func (s *DeleteLoginProfileInput) Validate() error {
  8277. invalidParams := request.ErrInvalidParams{Context: "DeleteLoginProfileInput"}
  8278. if s.UserName == nil {
  8279. invalidParams.Add(request.NewErrParamRequired("UserName"))
  8280. }
  8281. if s.UserName != nil && len(*s.UserName) < 1 {
  8282. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  8283. }
  8284. if invalidParams.Len() > 0 {
  8285. return invalidParams
  8286. }
  8287. return nil
  8288. }
  8289. type DeleteLoginProfileOutput struct {
  8290. _ struct{} `type:"structure"`
  8291. }
  8292. // String returns the string representation
  8293. func (s DeleteLoginProfileOutput) String() string {
  8294. return awsutil.Prettify(s)
  8295. }
  8296. // GoString returns the string representation
  8297. func (s DeleteLoginProfileOutput) GoString() string {
  8298. return s.String()
  8299. }
  8300. type DeleteOpenIDConnectProviderInput struct {
  8301. _ struct{} `type:"structure"`
  8302. // The Amazon Resource Name (ARN) of the IAM OpenID Connect provider resource
  8303. // object to delete. You can get a list of OpenID Connect provider resource
  8304. // ARNs by using the ListOpenIDConnectProviders action.
  8305. OpenIDConnectProviderArn *string `min:"20" type:"string" required:"true"`
  8306. }
  8307. // String returns the string representation
  8308. func (s DeleteOpenIDConnectProviderInput) String() string {
  8309. return awsutil.Prettify(s)
  8310. }
  8311. // GoString returns the string representation
  8312. func (s DeleteOpenIDConnectProviderInput) GoString() string {
  8313. return s.String()
  8314. }
  8315. // Validate inspects the fields of the type to determine if they are valid.
  8316. func (s *DeleteOpenIDConnectProviderInput) Validate() error {
  8317. invalidParams := request.ErrInvalidParams{Context: "DeleteOpenIDConnectProviderInput"}
  8318. if s.OpenIDConnectProviderArn == nil {
  8319. invalidParams.Add(request.NewErrParamRequired("OpenIDConnectProviderArn"))
  8320. }
  8321. if s.OpenIDConnectProviderArn != nil && len(*s.OpenIDConnectProviderArn) < 20 {
  8322. invalidParams.Add(request.NewErrParamMinLen("OpenIDConnectProviderArn", 20))
  8323. }
  8324. if invalidParams.Len() > 0 {
  8325. return invalidParams
  8326. }
  8327. return nil
  8328. }
  8329. type DeleteOpenIDConnectProviderOutput struct {
  8330. _ struct{} `type:"structure"`
  8331. }
  8332. // String returns the string representation
  8333. func (s DeleteOpenIDConnectProviderOutput) String() string {
  8334. return awsutil.Prettify(s)
  8335. }
  8336. // GoString returns the string representation
  8337. func (s DeleteOpenIDConnectProviderOutput) GoString() string {
  8338. return s.String()
  8339. }
  8340. type DeletePolicyInput struct {
  8341. _ struct{} `type:"structure"`
  8342. // The Amazon Resource Name (ARN) of the IAM policy you want to delete.
  8343. //
  8344. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  8345. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  8346. // in the AWS General Reference.
  8347. PolicyArn *string `min:"20" type:"string" required:"true"`
  8348. }
  8349. // String returns the string representation
  8350. func (s DeletePolicyInput) String() string {
  8351. return awsutil.Prettify(s)
  8352. }
  8353. // GoString returns the string representation
  8354. func (s DeletePolicyInput) GoString() string {
  8355. return s.String()
  8356. }
  8357. // Validate inspects the fields of the type to determine if they are valid.
  8358. func (s *DeletePolicyInput) Validate() error {
  8359. invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
  8360. if s.PolicyArn == nil {
  8361. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  8362. }
  8363. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  8364. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  8365. }
  8366. if invalidParams.Len() > 0 {
  8367. return invalidParams
  8368. }
  8369. return nil
  8370. }
  8371. type DeletePolicyOutput struct {
  8372. _ struct{} `type:"structure"`
  8373. }
  8374. // String returns the string representation
  8375. func (s DeletePolicyOutput) String() string {
  8376. return awsutil.Prettify(s)
  8377. }
  8378. // GoString returns the string representation
  8379. func (s DeletePolicyOutput) GoString() string {
  8380. return s.String()
  8381. }
  8382. type DeletePolicyVersionInput struct {
  8383. _ struct{} `type:"structure"`
  8384. // The Amazon Resource Name (ARN) of the IAM policy from which you want to delete
  8385. // a version.
  8386. //
  8387. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  8388. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  8389. // in the AWS General Reference.
  8390. PolicyArn *string `min:"20" type:"string" required:"true"`
  8391. // The policy version to delete.
  8392. //
  8393. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8394. // a string of characters that consists of the lowercase letter 'v' followed
  8395. // by one or two digits, and optionally followed by a period '.' and a string
  8396. // of letters and digits.
  8397. //
  8398. // For more information about managed policy versions, see Versioning for Managed
  8399. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
  8400. // in the IAM User Guide.
  8401. VersionId *string `type:"string" required:"true"`
  8402. }
  8403. // String returns the string representation
  8404. func (s DeletePolicyVersionInput) String() string {
  8405. return awsutil.Prettify(s)
  8406. }
  8407. // GoString returns the string representation
  8408. func (s DeletePolicyVersionInput) GoString() string {
  8409. return s.String()
  8410. }
  8411. // Validate inspects the fields of the type to determine if they are valid.
  8412. func (s *DeletePolicyVersionInput) Validate() error {
  8413. invalidParams := request.ErrInvalidParams{Context: "DeletePolicyVersionInput"}
  8414. if s.PolicyArn == nil {
  8415. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  8416. }
  8417. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  8418. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  8419. }
  8420. if s.VersionId == nil {
  8421. invalidParams.Add(request.NewErrParamRequired("VersionId"))
  8422. }
  8423. if invalidParams.Len() > 0 {
  8424. return invalidParams
  8425. }
  8426. return nil
  8427. }
  8428. type DeletePolicyVersionOutput struct {
  8429. _ struct{} `type:"structure"`
  8430. }
  8431. // String returns the string representation
  8432. func (s DeletePolicyVersionOutput) String() string {
  8433. return awsutil.Prettify(s)
  8434. }
  8435. // GoString returns the string representation
  8436. func (s DeletePolicyVersionOutput) GoString() string {
  8437. return s.String()
  8438. }
  8439. type DeleteRoleInput struct {
  8440. _ struct{} `type:"structure"`
  8441. // The name of the role to delete.
  8442. //
  8443. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8444. // a string of characters consisting of upper and lowercase alphanumeric characters
  8445. // with no spaces. You can also include any of the following characters: =,.@-
  8446. RoleName *string `min:"1" type:"string" required:"true"`
  8447. }
  8448. // String returns the string representation
  8449. func (s DeleteRoleInput) String() string {
  8450. return awsutil.Prettify(s)
  8451. }
  8452. // GoString returns the string representation
  8453. func (s DeleteRoleInput) GoString() string {
  8454. return s.String()
  8455. }
  8456. // Validate inspects the fields of the type to determine if they are valid.
  8457. func (s *DeleteRoleInput) Validate() error {
  8458. invalidParams := request.ErrInvalidParams{Context: "DeleteRoleInput"}
  8459. if s.RoleName == nil {
  8460. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  8461. }
  8462. if s.RoleName != nil && len(*s.RoleName) < 1 {
  8463. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  8464. }
  8465. if invalidParams.Len() > 0 {
  8466. return invalidParams
  8467. }
  8468. return nil
  8469. }
  8470. type DeleteRoleOutput struct {
  8471. _ struct{} `type:"structure"`
  8472. }
  8473. // String returns the string representation
  8474. func (s DeleteRoleOutput) String() string {
  8475. return awsutil.Prettify(s)
  8476. }
  8477. // GoString returns the string representation
  8478. func (s DeleteRoleOutput) GoString() string {
  8479. return s.String()
  8480. }
  8481. type DeleteRolePolicyInput struct {
  8482. _ struct{} `type:"structure"`
  8483. // The name of the inline policy to delete from the specified IAM role.
  8484. //
  8485. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8486. // a string of characters consisting of upper and lowercase alphanumeric characters
  8487. // with no spaces. You can also include any of the following characters: =,.@-
  8488. PolicyName *string `min:"1" type:"string" required:"true"`
  8489. // The name (friendly name, not ARN) identifying the role that the policy is
  8490. // embedded in.
  8491. //
  8492. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8493. // a string of characters consisting of upper and lowercase alphanumeric characters
  8494. // with no spaces. You can also include any of the following characters: =,.@-
  8495. RoleName *string `min:"1" type:"string" required:"true"`
  8496. }
  8497. // String returns the string representation
  8498. func (s DeleteRolePolicyInput) String() string {
  8499. return awsutil.Prettify(s)
  8500. }
  8501. // GoString returns the string representation
  8502. func (s DeleteRolePolicyInput) GoString() string {
  8503. return s.String()
  8504. }
  8505. // Validate inspects the fields of the type to determine if they are valid.
  8506. func (s *DeleteRolePolicyInput) Validate() error {
  8507. invalidParams := request.ErrInvalidParams{Context: "DeleteRolePolicyInput"}
  8508. if s.PolicyName == nil {
  8509. invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  8510. }
  8511. if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  8512. invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  8513. }
  8514. if s.RoleName == nil {
  8515. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  8516. }
  8517. if s.RoleName != nil && len(*s.RoleName) < 1 {
  8518. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  8519. }
  8520. if invalidParams.Len() > 0 {
  8521. return invalidParams
  8522. }
  8523. return nil
  8524. }
  8525. type DeleteRolePolicyOutput struct {
  8526. _ struct{} `type:"structure"`
  8527. }
  8528. // String returns the string representation
  8529. func (s DeleteRolePolicyOutput) String() string {
  8530. return awsutil.Prettify(s)
  8531. }
  8532. // GoString returns the string representation
  8533. func (s DeleteRolePolicyOutput) GoString() string {
  8534. return s.String()
  8535. }
  8536. type DeleteSAMLProviderInput struct {
  8537. _ struct{} `type:"structure"`
  8538. // The Amazon Resource Name (ARN) of the SAML provider to delete.
  8539. SAMLProviderArn *string `min:"20" type:"string" required:"true"`
  8540. }
  8541. // String returns the string representation
  8542. func (s DeleteSAMLProviderInput) String() string {
  8543. return awsutil.Prettify(s)
  8544. }
  8545. // GoString returns the string representation
  8546. func (s DeleteSAMLProviderInput) GoString() string {
  8547. return s.String()
  8548. }
  8549. // Validate inspects the fields of the type to determine if they are valid.
  8550. func (s *DeleteSAMLProviderInput) Validate() error {
  8551. invalidParams := request.ErrInvalidParams{Context: "DeleteSAMLProviderInput"}
  8552. if s.SAMLProviderArn == nil {
  8553. invalidParams.Add(request.NewErrParamRequired("SAMLProviderArn"))
  8554. }
  8555. if s.SAMLProviderArn != nil && len(*s.SAMLProviderArn) < 20 {
  8556. invalidParams.Add(request.NewErrParamMinLen("SAMLProviderArn", 20))
  8557. }
  8558. if invalidParams.Len() > 0 {
  8559. return invalidParams
  8560. }
  8561. return nil
  8562. }
  8563. type DeleteSAMLProviderOutput struct {
  8564. _ struct{} `type:"structure"`
  8565. }
  8566. // String returns the string representation
  8567. func (s DeleteSAMLProviderOutput) String() string {
  8568. return awsutil.Prettify(s)
  8569. }
  8570. // GoString returns the string representation
  8571. func (s DeleteSAMLProviderOutput) GoString() string {
  8572. return s.String()
  8573. }
  8574. type DeleteSSHPublicKeyInput struct {
  8575. _ struct{} `type:"structure"`
  8576. // The unique identifier for the SSH public key.
  8577. //
  8578. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8579. // a string of characters that can consist of any upper or lowercased letter
  8580. // or digit.
  8581. SSHPublicKeyId *string `min:"20" type:"string" required:"true"`
  8582. // The name of the IAM user associated with the SSH public key.
  8583. //
  8584. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8585. // a string of characters consisting of upper and lowercase alphanumeric characters
  8586. // with no spaces. You can also include any of the following characters: =,.@-
  8587. UserName *string `min:"1" type:"string" required:"true"`
  8588. }
  8589. // String returns the string representation
  8590. func (s DeleteSSHPublicKeyInput) String() string {
  8591. return awsutil.Prettify(s)
  8592. }
  8593. // GoString returns the string representation
  8594. func (s DeleteSSHPublicKeyInput) GoString() string {
  8595. return s.String()
  8596. }
  8597. // Validate inspects the fields of the type to determine if they are valid.
  8598. func (s *DeleteSSHPublicKeyInput) Validate() error {
  8599. invalidParams := request.ErrInvalidParams{Context: "DeleteSSHPublicKeyInput"}
  8600. if s.SSHPublicKeyId == nil {
  8601. invalidParams.Add(request.NewErrParamRequired("SSHPublicKeyId"))
  8602. }
  8603. if s.SSHPublicKeyId != nil && len(*s.SSHPublicKeyId) < 20 {
  8604. invalidParams.Add(request.NewErrParamMinLen("SSHPublicKeyId", 20))
  8605. }
  8606. if s.UserName == nil {
  8607. invalidParams.Add(request.NewErrParamRequired("UserName"))
  8608. }
  8609. if s.UserName != nil && len(*s.UserName) < 1 {
  8610. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  8611. }
  8612. if invalidParams.Len() > 0 {
  8613. return invalidParams
  8614. }
  8615. return nil
  8616. }
  8617. type DeleteSSHPublicKeyOutput struct {
  8618. _ struct{} `type:"structure"`
  8619. }
  8620. // String returns the string representation
  8621. func (s DeleteSSHPublicKeyOutput) String() string {
  8622. return awsutil.Prettify(s)
  8623. }
  8624. // GoString returns the string representation
  8625. func (s DeleteSSHPublicKeyOutput) GoString() string {
  8626. return s.String()
  8627. }
  8628. type DeleteServerCertificateInput struct {
  8629. _ struct{} `type:"structure"`
  8630. // The name of the server certificate you want to delete.
  8631. //
  8632. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8633. // a string of characters consisting of upper and lowercase alphanumeric characters
  8634. // with no spaces. You can also include any of the following characters: =,.@-
  8635. ServerCertificateName *string `min:"1" type:"string" required:"true"`
  8636. }
  8637. // String returns the string representation
  8638. func (s DeleteServerCertificateInput) String() string {
  8639. return awsutil.Prettify(s)
  8640. }
  8641. // GoString returns the string representation
  8642. func (s DeleteServerCertificateInput) GoString() string {
  8643. return s.String()
  8644. }
  8645. // Validate inspects the fields of the type to determine if they are valid.
  8646. func (s *DeleteServerCertificateInput) Validate() error {
  8647. invalidParams := request.ErrInvalidParams{Context: "DeleteServerCertificateInput"}
  8648. if s.ServerCertificateName == nil {
  8649. invalidParams.Add(request.NewErrParamRequired("ServerCertificateName"))
  8650. }
  8651. if s.ServerCertificateName != nil && len(*s.ServerCertificateName) < 1 {
  8652. invalidParams.Add(request.NewErrParamMinLen("ServerCertificateName", 1))
  8653. }
  8654. if invalidParams.Len() > 0 {
  8655. return invalidParams
  8656. }
  8657. return nil
  8658. }
  8659. type DeleteServerCertificateOutput struct {
  8660. _ struct{} `type:"structure"`
  8661. }
  8662. // String returns the string representation
  8663. func (s DeleteServerCertificateOutput) String() string {
  8664. return awsutil.Prettify(s)
  8665. }
  8666. // GoString returns the string representation
  8667. func (s DeleteServerCertificateOutput) GoString() string {
  8668. return s.String()
  8669. }
  8670. type DeleteSigningCertificateInput struct {
  8671. _ struct{} `type:"structure"`
  8672. // The ID of the signing certificate to delete.
  8673. //
  8674. // The format of this parameter, as described by its regex (http://wikipedia.org/wiki/regex)
  8675. // pattern, is a string of characters that can be upper- or lower-cased letters
  8676. // or digits.
  8677. CertificateId *string `min:"24" type:"string" required:"true"`
  8678. // The name of the user the signing certificate belongs to.
  8679. //
  8680. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8681. // a string of characters consisting of upper and lowercase alphanumeric characters
  8682. // with no spaces. You can also include any of the following characters: =,.@-
  8683. UserName *string `min:"1" type:"string"`
  8684. }
  8685. // String returns the string representation
  8686. func (s DeleteSigningCertificateInput) String() string {
  8687. return awsutil.Prettify(s)
  8688. }
  8689. // GoString returns the string representation
  8690. func (s DeleteSigningCertificateInput) GoString() string {
  8691. return s.String()
  8692. }
  8693. // Validate inspects the fields of the type to determine if they are valid.
  8694. func (s *DeleteSigningCertificateInput) Validate() error {
  8695. invalidParams := request.ErrInvalidParams{Context: "DeleteSigningCertificateInput"}
  8696. if s.CertificateId == nil {
  8697. invalidParams.Add(request.NewErrParamRequired("CertificateId"))
  8698. }
  8699. if s.CertificateId != nil && len(*s.CertificateId) < 24 {
  8700. invalidParams.Add(request.NewErrParamMinLen("CertificateId", 24))
  8701. }
  8702. if s.UserName != nil && len(*s.UserName) < 1 {
  8703. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  8704. }
  8705. if invalidParams.Len() > 0 {
  8706. return invalidParams
  8707. }
  8708. return nil
  8709. }
  8710. type DeleteSigningCertificateOutput struct {
  8711. _ struct{} `type:"structure"`
  8712. }
  8713. // String returns the string representation
  8714. func (s DeleteSigningCertificateOutput) String() string {
  8715. return awsutil.Prettify(s)
  8716. }
  8717. // GoString returns the string representation
  8718. func (s DeleteSigningCertificateOutput) GoString() string {
  8719. return s.String()
  8720. }
  8721. type DeleteUserInput struct {
  8722. _ struct{} `type:"structure"`
  8723. // The name of the user to delete.
  8724. //
  8725. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8726. // a string of characters consisting of upper and lowercase alphanumeric characters
  8727. // with no spaces. You can also include any of the following characters: =,.@-
  8728. UserName *string `min:"1" type:"string" required:"true"`
  8729. }
  8730. // String returns the string representation
  8731. func (s DeleteUserInput) String() string {
  8732. return awsutil.Prettify(s)
  8733. }
  8734. // GoString returns the string representation
  8735. func (s DeleteUserInput) GoString() string {
  8736. return s.String()
  8737. }
  8738. // Validate inspects the fields of the type to determine if they are valid.
  8739. func (s *DeleteUserInput) Validate() error {
  8740. invalidParams := request.ErrInvalidParams{Context: "DeleteUserInput"}
  8741. if s.UserName == nil {
  8742. invalidParams.Add(request.NewErrParamRequired("UserName"))
  8743. }
  8744. if s.UserName != nil && len(*s.UserName) < 1 {
  8745. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  8746. }
  8747. if invalidParams.Len() > 0 {
  8748. return invalidParams
  8749. }
  8750. return nil
  8751. }
  8752. type DeleteUserOutput struct {
  8753. _ struct{} `type:"structure"`
  8754. }
  8755. // String returns the string representation
  8756. func (s DeleteUserOutput) String() string {
  8757. return awsutil.Prettify(s)
  8758. }
  8759. // GoString returns the string representation
  8760. func (s DeleteUserOutput) GoString() string {
  8761. return s.String()
  8762. }
  8763. type DeleteUserPolicyInput struct {
  8764. _ struct{} `type:"structure"`
  8765. // The name identifying the policy document to delete.
  8766. //
  8767. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8768. // a string of characters consisting of upper and lowercase alphanumeric characters
  8769. // with no spaces. You can also include any of the following characters: =,.@-
  8770. PolicyName *string `min:"1" type:"string" required:"true"`
  8771. // The name (friendly name, not ARN) identifying the user that the policy is
  8772. // embedded in.
  8773. //
  8774. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8775. // a string of characters consisting of upper and lowercase alphanumeric characters
  8776. // with no spaces. You can also include any of the following characters: =,.@-
  8777. UserName *string `min:"1" type:"string" required:"true"`
  8778. }
  8779. // String returns the string representation
  8780. func (s DeleteUserPolicyInput) String() string {
  8781. return awsutil.Prettify(s)
  8782. }
  8783. // GoString returns the string representation
  8784. func (s DeleteUserPolicyInput) GoString() string {
  8785. return s.String()
  8786. }
  8787. // Validate inspects the fields of the type to determine if they are valid.
  8788. func (s *DeleteUserPolicyInput) Validate() error {
  8789. invalidParams := request.ErrInvalidParams{Context: "DeleteUserPolicyInput"}
  8790. if s.PolicyName == nil {
  8791. invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  8792. }
  8793. if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  8794. invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  8795. }
  8796. if s.UserName == nil {
  8797. invalidParams.Add(request.NewErrParamRequired("UserName"))
  8798. }
  8799. if s.UserName != nil && len(*s.UserName) < 1 {
  8800. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  8801. }
  8802. if invalidParams.Len() > 0 {
  8803. return invalidParams
  8804. }
  8805. return nil
  8806. }
  8807. type DeleteUserPolicyOutput struct {
  8808. _ struct{} `type:"structure"`
  8809. }
  8810. // String returns the string representation
  8811. func (s DeleteUserPolicyOutput) String() string {
  8812. return awsutil.Prettify(s)
  8813. }
  8814. // GoString returns the string representation
  8815. func (s DeleteUserPolicyOutput) GoString() string {
  8816. return s.String()
  8817. }
  8818. type DeleteVirtualMFADeviceInput struct {
  8819. _ struct{} `type:"structure"`
  8820. // The serial number that uniquely identifies the MFA device. For virtual MFA
  8821. // devices, the serial number is the same as the ARN.
  8822. //
  8823. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8824. // a string of characters consisting of upper and lowercase alphanumeric characters
  8825. // with no spaces. You can also include any of the following characters: =/:,.@-
  8826. SerialNumber *string `min:"9" type:"string" required:"true"`
  8827. }
  8828. // String returns the string representation
  8829. func (s DeleteVirtualMFADeviceInput) String() string {
  8830. return awsutil.Prettify(s)
  8831. }
  8832. // GoString returns the string representation
  8833. func (s DeleteVirtualMFADeviceInput) GoString() string {
  8834. return s.String()
  8835. }
  8836. // Validate inspects the fields of the type to determine if they are valid.
  8837. func (s *DeleteVirtualMFADeviceInput) Validate() error {
  8838. invalidParams := request.ErrInvalidParams{Context: "DeleteVirtualMFADeviceInput"}
  8839. if s.SerialNumber == nil {
  8840. invalidParams.Add(request.NewErrParamRequired("SerialNumber"))
  8841. }
  8842. if s.SerialNumber != nil && len(*s.SerialNumber) < 9 {
  8843. invalidParams.Add(request.NewErrParamMinLen("SerialNumber", 9))
  8844. }
  8845. if invalidParams.Len() > 0 {
  8846. return invalidParams
  8847. }
  8848. return nil
  8849. }
  8850. type DeleteVirtualMFADeviceOutput struct {
  8851. _ struct{} `type:"structure"`
  8852. }
  8853. // String returns the string representation
  8854. func (s DeleteVirtualMFADeviceOutput) String() string {
  8855. return awsutil.Prettify(s)
  8856. }
  8857. // GoString returns the string representation
  8858. func (s DeleteVirtualMFADeviceOutput) GoString() string {
  8859. return s.String()
  8860. }
  8861. type DetachGroupPolicyInput struct {
  8862. _ struct{} `type:"structure"`
  8863. // The name (friendly name, not ARN) of the IAM group to detach the policy from.
  8864. //
  8865. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8866. // a string of characters consisting of upper and lowercase alphanumeric characters
  8867. // with no spaces. You can also include any of the following characters: =,.@-
  8868. GroupName *string `min:"1" type:"string" required:"true"`
  8869. // The Amazon Resource Name (ARN) of the IAM policy you want to detach.
  8870. //
  8871. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  8872. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  8873. // in the AWS General Reference.
  8874. PolicyArn *string `min:"20" type:"string" required:"true"`
  8875. }
  8876. // String returns the string representation
  8877. func (s DetachGroupPolicyInput) String() string {
  8878. return awsutil.Prettify(s)
  8879. }
  8880. // GoString returns the string representation
  8881. func (s DetachGroupPolicyInput) GoString() string {
  8882. return s.String()
  8883. }
  8884. // Validate inspects the fields of the type to determine if they are valid.
  8885. func (s *DetachGroupPolicyInput) Validate() error {
  8886. invalidParams := request.ErrInvalidParams{Context: "DetachGroupPolicyInput"}
  8887. if s.GroupName == nil {
  8888. invalidParams.Add(request.NewErrParamRequired("GroupName"))
  8889. }
  8890. if s.GroupName != nil && len(*s.GroupName) < 1 {
  8891. invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  8892. }
  8893. if s.PolicyArn == nil {
  8894. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  8895. }
  8896. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  8897. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  8898. }
  8899. if invalidParams.Len() > 0 {
  8900. return invalidParams
  8901. }
  8902. return nil
  8903. }
  8904. type DetachGroupPolicyOutput struct {
  8905. _ struct{} `type:"structure"`
  8906. }
  8907. // String returns the string representation
  8908. func (s DetachGroupPolicyOutput) String() string {
  8909. return awsutil.Prettify(s)
  8910. }
  8911. // GoString returns the string representation
  8912. func (s DetachGroupPolicyOutput) GoString() string {
  8913. return s.String()
  8914. }
  8915. type DetachRolePolicyInput struct {
  8916. _ struct{} `type:"structure"`
  8917. // The Amazon Resource Name (ARN) of the IAM policy you want to detach.
  8918. //
  8919. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  8920. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  8921. // in the AWS General Reference.
  8922. PolicyArn *string `min:"20" type:"string" required:"true"`
  8923. // The name (friendly name, not ARN) of the IAM role to detach the policy from.
  8924. //
  8925. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8926. // a string of characters consisting of upper and lowercase alphanumeric characters
  8927. // with no spaces. You can also include any of the following characters: =,.@-
  8928. RoleName *string `min:"1" type:"string" required:"true"`
  8929. }
  8930. // String returns the string representation
  8931. func (s DetachRolePolicyInput) String() string {
  8932. return awsutil.Prettify(s)
  8933. }
  8934. // GoString returns the string representation
  8935. func (s DetachRolePolicyInput) GoString() string {
  8936. return s.String()
  8937. }
  8938. // Validate inspects the fields of the type to determine if they are valid.
  8939. func (s *DetachRolePolicyInput) Validate() error {
  8940. invalidParams := request.ErrInvalidParams{Context: "DetachRolePolicyInput"}
  8941. if s.PolicyArn == nil {
  8942. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  8943. }
  8944. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  8945. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  8946. }
  8947. if s.RoleName == nil {
  8948. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  8949. }
  8950. if s.RoleName != nil && len(*s.RoleName) < 1 {
  8951. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  8952. }
  8953. if invalidParams.Len() > 0 {
  8954. return invalidParams
  8955. }
  8956. return nil
  8957. }
  8958. type DetachRolePolicyOutput struct {
  8959. _ struct{} `type:"structure"`
  8960. }
  8961. // String returns the string representation
  8962. func (s DetachRolePolicyOutput) String() string {
  8963. return awsutil.Prettify(s)
  8964. }
  8965. // GoString returns the string representation
  8966. func (s DetachRolePolicyOutput) GoString() string {
  8967. return s.String()
  8968. }
  8969. type DetachUserPolicyInput struct {
  8970. _ struct{} `type:"structure"`
  8971. // The Amazon Resource Name (ARN) of the IAM policy you want to detach.
  8972. //
  8973. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  8974. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  8975. // in the AWS General Reference.
  8976. PolicyArn *string `min:"20" type:"string" required:"true"`
  8977. // The name (friendly name, not ARN) of the IAM user to detach the policy from.
  8978. //
  8979. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  8980. // a string of characters consisting of upper and lowercase alphanumeric characters
  8981. // with no spaces. You can also include any of the following characters: =,.@-
  8982. UserName *string `min:"1" type:"string" required:"true"`
  8983. }
  8984. // String returns the string representation
  8985. func (s DetachUserPolicyInput) String() string {
  8986. return awsutil.Prettify(s)
  8987. }
  8988. // GoString returns the string representation
  8989. func (s DetachUserPolicyInput) GoString() string {
  8990. return s.String()
  8991. }
  8992. // Validate inspects the fields of the type to determine if they are valid.
  8993. func (s *DetachUserPolicyInput) Validate() error {
  8994. invalidParams := request.ErrInvalidParams{Context: "DetachUserPolicyInput"}
  8995. if s.PolicyArn == nil {
  8996. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  8997. }
  8998. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  8999. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  9000. }
  9001. if s.UserName == nil {
  9002. invalidParams.Add(request.NewErrParamRequired("UserName"))
  9003. }
  9004. if s.UserName != nil && len(*s.UserName) < 1 {
  9005. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  9006. }
  9007. if invalidParams.Len() > 0 {
  9008. return invalidParams
  9009. }
  9010. return nil
  9011. }
  9012. type DetachUserPolicyOutput struct {
  9013. _ struct{} `type:"structure"`
  9014. }
  9015. // String returns the string representation
  9016. func (s DetachUserPolicyOutput) String() string {
  9017. return awsutil.Prettify(s)
  9018. }
  9019. // GoString returns the string representation
  9020. func (s DetachUserPolicyOutput) GoString() string {
  9021. return s.String()
  9022. }
  9023. type EnableMFADeviceInput struct {
  9024. _ struct{} `type:"structure"`
  9025. // An authentication code emitted by the device.
  9026. //
  9027. // The format for this parameter is a string of 6 digits.
  9028. AuthenticationCode1 *string `min:"6" type:"string" required:"true"`
  9029. // A subsequent authentication code emitted by the device.
  9030. //
  9031. // The format for this parameter is a string of 6 digits.
  9032. AuthenticationCode2 *string `min:"6" type:"string" required:"true"`
  9033. // The serial number that uniquely identifies the MFA device. For virtual MFA
  9034. // devices, the serial number is the device ARN.
  9035. //
  9036. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9037. // a string of characters consisting of upper and lowercase alphanumeric characters
  9038. // with no spaces. You can also include any of the following characters: =/:,.@-
  9039. SerialNumber *string `min:"9" type:"string" required:"true"`
  9040. // The name of the IAM user for whom you want to enable the MFA device.
  9041. //
  9042. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9043. // a string of characters consisting of upper and lowercase alphanumeric characters
  9044. // with no spaces. You can also include any of the following characters: =,.@-
  9045. UserName *string `min:"1" type:"string" required:"true"`
  9046. }
  9047. // String returns the string representation
  9048. func (s EnableMFADeviceInput) String() string {
  9049. return awsutil.Prettify(s)
  9050. }
  9051. // GoString returns the string representation
  9052. func (s EnableMFADeviceInput) GoString() string {
  9053. return s.String()
  9054. }
  9055. // Validate inspects the fields of the type to determine if they are valid.
  9056. func (s *EnableMFADeviceInput) Validate() error {
  9057. invalidParams := request.ErrInvalidParams{Context: "EnableMFADeviceInput"}
  9058. if s.AuthenticationCode1 == nil {
  9059. invalidParams.Add(request.NewErrParamRequired("AuthenticationCode1"))
  9060. }
  9061. if s.AuthenticationCode1 != nil && len(*s.AuthenticationCode1) < 6 {
  9062. invalidParams.Add(request.NewErrParamMinLen("AuthenticationCode1", 6))
  9063. }
  9064. if s.AuthenticationCode2 == nil {
  9065. invalidParams.Add(request.NewErrParamRequired("AuthenticationCode2"))
  9066. }
  9067. if s.AuthenticationCode2 != nil && len(*s.AuthenticationCode2) < 6 {
  9068. invalidParams.Add(request.NewErrParamMinLen("AuthenticationCode2", 6))
  9069. }
  9070. if s.SerialNumber == nil {
  9071. invalidParams.Add(request.NewErrParamRequired("SerialNumber"))
  9072. }
  9073. if s.SerialNumber != nil && len(*s.SerialNumber) < 9 {
  9074. invalidParams.Add(request.NewErrParamMinLen("SerialNumber", 9))
  9075. }
  9076. if s.UserName == nil {
  9077. invalidParams.Add(request.NewErrParamRequired("UserName"))
  9078. }
  9079. if s.UserName != nil && len(*s.UserName) < 1 {
  9080. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  9081. }
  9082. if invalidParams.Len() > 0 {
  9083. return invalidParams
  9084. }
  9085. return nil
  9086. }
  9087. type EnableMFADeviceOutput struct {
  9088. _ struct{} `type:"structure"`
  9089. }
  9090. // String returns the string representation
  9091. func (s EnableMFADeviceOutput) String() string {
  9092. return awsutil.Prettify(s)
  9093. }
  9094. // GoString returns the string representation
  9095. func (s EnableMFADeviceOutput) GoString() string {
  9096. return s.String()
  9097. }
  9098. // Contains the results of a simulation.
  9099. //
  9100. // This data type is used by the return parameter of SimulateCustomPolicy
  9101. // and SimulatePrincipalPolicy .
  9102. type EvaluationResult struct {
  9103. _ struct{} `type:"structure"`
  9104. // The name of the API action tested on the indicated resource.
  9105. EvalActionName *string `min:"3" type:"string" required:"true"`
  9106. // The result of the simulation.
  9107. EvalDecision *string `type:"string" required:"true" enum:"PolicyEvaluationDecisionType"`
  9108. // Additional details about the results of the evaluation decision. When there
  9109. // are both IAM policies and resource policies, this parameter explains how
  9110. // each set of policies contributes to the final evaluation decision. When simulating
  9111. // cross-account access to a resource, both the resource-based policy and the
  9112. // caller's IAM policy must grant access. See How IAM Roles Differ from Resource-based
  9113. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html)
  9114. EvalDecisionDetails map[string]*string `type:"map"`
  9115. // The ARN of the resource that the indicated API action was tested on.
  9116. EvalResourceName *string `min:"1" type:"string"`
  9117. // A list of the statements in the input policies that determine the result
  9118. // for this scenario. Remember that even if multiple statements allow the action
  9119. // on the resource, if only one statement denies that action, then the explicit
  9120. // deny overrides any allow, and the deny statement is the only entry included
  9121. // in the result.
  9122. MatchedStatements []*Statement `type:"list"`
  9123. // A list of context keys that are required by the included input policies but
  9124. // that were not provided by one of the input parameters. This list is used
  9125. // when the resource in a simulation is "*", either explicitly, or when the
  9126. // ResourceArns parameter blank. If you include a list of resources, then any
  9127. // missing context values are instead included under the ResourceSpecificResults
  9128. // section. To discover the context keys used by a set of policies, you can
  9129. // call GetContextKeysForCustomPolicy or GetContextKeysForPrincipalPolicy.
  9130. MissingContextValues []*string `type:"list"`
  9131. // The individual results of the simulation of the API action specified in EvalActionName
  9132. // on each resource.
  9133. ResourceSpecificResults []*ResourceSpecificResult `type:"list"`
  9134. }
  9135. // String returns the string representation
  9136. func (s EvaluationResult) String() string {
  9137. return awsutil.Prettify(s)
  9138. }
  9139. // GoString returns the string representation
  9140. func (s EvaluationResult) GoString() string {
  9141. return s.String()
  9142. }
  9143. type GenerateCredentialReportInput struct {
  9144. _ struct{} `type:"structure"`
  9145. }
  9146. // String returns the string representation
  9147. func (s GenerateCredentialReportInput) String() string {
  9148. return awsutil.Prettify(s)
  9149. }
  9150. // GoString returns the string representation
  9151. func (s GenerateCredentialReportInput) GoString() string {
  9152. return s.String()
  9153. }
  9154. // Contains the response to a successful GenerateCredentialReport request.
  9155. type GenerateCredentialReportOutput struct {
  9156. _ struct{} `type:"structure"`
  9157. // Information about the credential report.
  9158. Description *string `type:"string"`
  9159. // Information about the state of the credential report.
  9160. State *string `type:"string" enum:"ReportStateType"`
  9161. }
  9162. // String returns the string representation
  9163. func (s GenerateCredentialReportOutput) String() string {
  9164. return awsutil.Prettify(s)
  9165. }
  9166. // GoString returns the string representation
  9167. func (s GenerateCredentialReportOutput) GoString() string {
  9168. return s.String()
  9169. }
  9170. type GetAccessKeyLastUsedInput struct {
  9171. _ struct{} `type:"structure"`
  9172. // The identifier of an access key.
  9173. //
  9174. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9175. // a string of characters that can consist of any upper or lowercased letter
  9176. // or digit.
  9177. AccessKeyId *string `min:"16" type:"string" required:"true"`
  9178. }
  9179. // String returns the string representation
  9180. func (s GetAccessKeyLastUsedInput) String() string {
  9181. return awsutil.Prettify(s)
  9182. }
  9183. // GoString returns the string representation
  9184. func (s GetAccessKeyLastUsedInput) GoString() string {
  9185. return s.String()
  9186. }
  9187. // Validate inspects the fields of the type to determine if they are valid.
  9188. func (s *GetAccessKeyLastUsedInput) Validate() error {
  9189. invalidParams := request.ErrInvalidParams{Context: "GetAccessKeyLastUsedInput"}
  9190. if s.AccessKeyId == nil {
  9191. invalidParams.Add(request.NewErrParamRequired("AccessKeyId"))
  9192. }
  9193. if s.AccessKeyId != nil && len(*s.AccessKeyId) < 16 {
  9194. invalidParams.Add(request.NewErrParamMinLen("AccessKeyId", 16))
  9195. }
  9196. if invalidParams.Len() > 0 {
  9197. return invalidParams
  9198. }
  9199. return nil
  9200. }
  9201. // Contains the response to a successful GetAccessKeyLastUsed request. It is
  9202. // also returned as a member of the AccessKeyMetaData structure returned by
  9203. // the ListAccessKeys action.
  9204. type GetAccessKeyLastUsedOutput struct {
  9205. _ struct{} `type:"structure"`
  9206. // Contains information about the last time the access key was used.
  9207. AccessKeyLastUsed *AccessKeyLastUsed `type:"structure"`
  9208. // The name of the AWS IAM user that owns this access key.
  9209. UserName *string `min:"1" type:"string"`
  9210. }
  9211. // String returns the string representation
  9212. func (s GetAccessKeyLastUsedOutput) String() string {
  9213. return awsutil.Prettify(s)
  9214. }
  9215. // GoString returns the string representation
  9216. func (s GetAccessKeyLastUsedOutput) GoString() string {
  9217. return s.String()
  9218. }
  9219. type GetAccountAuthorizationDetailsInput struct {
  9220. _ struct{} `type:"structure"`
  9221. // A list of entity types used to filter the results. Only the entities that
  9222. // match the types you specify are included in the output. Use the value LocalManagedPolicy
  9223. // to include customer managed policies.
  9224. //
  9225. // The format for this parameter is a comma-separated (if more than one) list
  9226. // of strings. Each string value in the list must be one of the valid values
  9227. // listed below.
  9228. Filter []*string `type:"list"`
  9229. // Use this parameter only when paginating results and only after you receive
  9230. // a response indicating that the results are truncated. Set it to the value
  9231. // of the Marker element in the response that you received to indicate where
  9232. // the next call should start.
  9233. Marker *string `min:"1" type:"string"`
  9234. // Use this only when paginating results to indicate the maximum number of items
  9235. // you want in the response. If additional items exist beyond the maximum you
  9236. // specify, the IsTruncated response element is true.
  9237. //
  9238. // This parameter is optional. If you do not include it, it defaults to 100.
  9239. // Note that IAM might return fewer results, even when there are more results
  9240. // available. In that case, the IsTruncated response element returns true and
  9241. // Marker contains a value to include in the subsequent call that tells the
  9242. // service where to continue from.
  9243. MaxItems *int64 `min:"1" type:"integer"`
  9244. }
  9245. // String returns the string representation
  9246. func (s GetAccountAuthorizationDetailsInput) String() string {
  9247. return awsutil.Prettify(s)
  9248. }
  9249. // GoString returns the string representation
  9250. func (s GetAccountAuthorizationDetailsInput) GoString() string {
  9251. return s.String()
  9252. }
  9253. // Validate inspects the fields of the type to determine if they are valid.
  9254. func (s *GetAccountAuthorizationDetailsInput) Validate() error {
  9255. invalidParams := request.ErrInvalidParams{Context: "GetAccountAuthorizationDetailsInput"}
  9256. if s.Marker != nil && len(*s.Marker) < 1 {
  9257. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  9258. }
  9259. if s.MaxItems != nil && *s.MaxItems < 1 {
  9260. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  9261. }
  9262. if invalidParams.Len() > 0 {
  9263. return invalidParams
  9264. }
  9265. return nil
  9266. }
  9267. // Contains the response to a successful GetAccountAuthorizationDetails request.
  9268. type GetAccountAuthorizationDetailsOutput struct {
  9269. _ struct{} `type:"structure"`
  9270. // A list containing information about IAM groups.
  9271. GroupDetailList []*GroupDetail `type:"list"`
  9272. // A flag that indicates whether there are more items to return. If your results
  9273. // were truncated, you can make a subsequent pagination request using the Marker
  9274. // request parameter to retrieve more items. Note that IAM might return fewer
  9275. // than the MaxItems number of results even when there are more results available.
  9276. // We recommend that you check IsTruncated after every call to ensure that you
  9277. // receive all of your results.
  9278. IsTruncated *bool `type:"boolean"`
  9279. // When IsTruncated is true, this element is present and contains the value
  9280. // to use for the Marker parameter in a subsequent pagination request.
  9281. Marker *string `min:"1" type:"string"`
  9282. // A list containing information about managed policies.
  9283. Policies []*ManagedPolicyDetail `type:"list"`
  9284. // A list containing information about IAM roles.
  9285. RoleDetailList []*RoleDetail `type:"list"`
  9286. // A list containing information about IAM users.
  9287. UserDetailList []*UserDetail `type:"list"`
  9288. }
  9289. // String returns the string representation
  9290. func (s GetAccountAuthorizationDetailsOutput) String() string {
  9291. return awsutil.Prettify(s)
  9292. }
  9293. // GoString returns the string representation
  9294. func (s GetAccountAuthorizationDetailsOutput) GoString() string {
  9295. return s.String()
  9296. }
  9297. type GetAccountPasswordPolicyInput struct {
  9298. _ struct{} `type:"structure"`
  9299. }
  9300. // String returns the string representation
  9301. func (s GetAccountPasswordPolicyInput) String() string {
  9302. return awsutil.Prettify(s)
  9303. }
  9304. // GoString returns the string representation
  9305. func (s GetAccountPasswordPolicyInput) GoString() string {
  9306. return s.String()
  9307. }
  9308. // Contains the response to a successful GetAccountPasswordPolicy request.
  9309. type GetAccountPasswordPolicyOutput struct {
  9310. _ struct{} `type:"structure"`
  9311. // Contains information about the account password policy.
  9312. //
  9313. // This data type is used as a response element in the GetAccountPasswordPolicy
  9314. // action.
  9315. PasswordPolicy *PasswordPolicy `type:"structure" required:"true"`
  9316. }
  9317. // String returns the string representation
  9318. func (s GetAccountPasswordPolicyOutput) String() string {
  9319. return awsutil.Prettify(s)
  9320. }
  9321. // GoString returns the string representation
  9322. func (s GetAccountPasswordPolicyOutput) GoString() string {
  9323. return s.String()
  9324. }
  9325. type GetAccountSummaryInput struct {
  9326. _ struct{} `type:"structure"`
  9327. }
  9328. // String returns the string representation
  9329. func (s GetAccountSummaryInput) String() string {
  9330. return awsutil.Prettify(s)
  9331. }
  9332. // GoString returns the string representation
  9333. func (s GetAccountSummaryInput) GoString() string {
  9334. return s.String()
  9335. }
  9336. // Contains the response to a successful GetAccountSummary request.
  9337. type GetAccountSummaryOutput struct {
  9338. _ struct{} `type:"structure"`
  9339. // A set of key value pairs containing information about IAM entity usage and
  9340. // IAM quotas.
  9341. SummaryMap map[string]*int64 `type:"map"`
  9342. }
  9343. // String returns the string representation
  9344. func (s GetAccountSummaryOutput) String() string {
  9345. return awsutil.Prettify(s)
  9346. }
  9347. // GoString returns the string representation
  9348. func (s GetAccountSummaryOutput) GoString() string {
  9349. return s.String()
  9350. }
  9351. type GetContextKeysForCustomPolicyInput struct {
  9352. _ struct{} `type:"structure"`
  9353. // A list of policies for which you want the list of context keys referenced
  9354. // in those policies. Each document is specified as a string containing the
  9355. // complete, valid JSON text of an IAM policy.
  9356. //
  9357. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9358. // a string of characters consisting of any printable ASCII character ranging
  9359. // from the space character (\u0020) through end of the ASCII character range
  9360. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  9361. // (\u000A), and carriage return (\u000D).
  9362. PolicyInputList []*string `type:"list" required:"true"`
  9363. }
  9364. // String returns the string representation
  9365. func (s GetContextKeysForCustomPolicyInput) String() string {
  9366. return awsutil.Prettify(s)
  9367. }
  9368. // GoString returns the string representation
  9369. func (s GetContextKeysForCustomPolicyInput) GoString() string {
  9370. return s.String()
  9371. }
  9372. // Validate inspects the fields of the type to determine if they are valid.
  9373. func (s *GetContextKeysForCustomPolicyInput) Validate() error {
  9374. invalidParams := request.ErrInvalidParams{Context: "GetContextKeysForCustomPolicyInput"}
  9375. if s.PolicyInputList == nil {
  9376. invalidParams.Add(request.NewErrParamRequired("PolicyInputList"))
  9377. }
  9378. if invalidParams.Len() > 0 {
  9379. return invalidParams
  9380. }
  9381. return nil
  9382. }
  9383. // Contains the response to a successful GetContextKeysForPrincipalPolicy or
  9384. // GetContextKeysForCustomPolicy request.
  9385. type GetContextKeysForPolicyResponse struct {
  9386. _ struct{} `type:"structure"`
  9387. // The list of context keys that are referenced in the input policies.
  9388. ContextKeyNames []*string `type:"list"`
  9389. }
  9390. // String returns the string representation
  9391. func (s GetContextKeysForPolicyResponse) String() string {
  9392. return awsutil.Prettify(s)
  9393. }
  9394. // GoString returns the string representation
  9395. func (s GetContextKeysForPolicyResponse) GoString() string {
  9396. return s.String()
  9397. }
  9398. type GetContextKeysForPrincipalPolicyInput struct {
  9399. _ struct{} `type:"structure"`
  9400. // An optional list of additional policies for which you want the list of context
  9401. // keys that are referenced.
  9402. //
  9403. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9404. // a string of characters consisting of any printable ASCII character ranging
  9405. // from the space character (\u0020) through end of the ASCII character range
  9406. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  9407. // (\u000A), and carriage return (\u000D).
  9408. PolicyInputList []*string `type:"list"`
  9409. // The ARN of a user, group, or role whose policies contain the context keys
  9410. // that you want listed. If you specify a user, the list includes context keys
  9411. // that are found in all policies attached to the user as well as to all groups
  9412. // that the user is a member of. If you pick a group or a role, then it includes
  9413. // only those context keys that are found in policies attached to that entity.
  9414. // Note that all parameters are shown in unencoded form here for clarity, but
  9415. // must be URL encoded to be included as a part of a real HTML request.
  9416. //
  9417. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  9418. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  9419. // in the AWS General Reference.
  9420. PolicySourceArn *string `min:"20" type:"string" required:"true"`
  9421. }
  9422. // String returns the string representation
  9423. func (s GetContextKeysForPrincipalPolicyInput) String() string {
  9424. return awsutil.Prettify(s)
  9425. }
  9426. // GoString returns the string representation
  9427. func (s GetContextKeysForPrincipalPolicyInput) GoString() string {
  9428. return s.String()
  9429. }
  9430. // Validate inspects the fields of the type to determine if they are valid.
  9431. func (s *GetContextKeysForPrincipalPolicyInput) Validate() error {
  9432. invalidParams := request.ErrInvalidParams{Context: "GetContextKeysForPrincipalPolicyInput"}
  9433. if s.PolicySourceArn == nil {
  9434. invalidParams.Add(request.NewErrParamRequired("PolicySourceArn"))
  9435. }
  9436. if s.PolicySourceArn != nil && len(*s.PolicySourceArn) < 20 {
  9437. invalidParams.Add(request.NewErrParamMinLen("PolicySourceArn", 20))
  9438. }
  9439. if invalidParams.Len() > 0 {
  9440. return invalidParams
  9441. }
  9442. return nil
  9443. }
  9444. type GetCredentialReportInput struct {
  9445. _ struct{} `type:"structure"`
  9446. }
  9447. // String returns the string representation
  9448. func (s GetCredentialReportInput) String() string {
  9449. return awsutil.Prettify(s)
  9450. }
  9451. // GoString returns the string representation
  9452. func (s GetCredentialReportInput) GoString() string {
  9453. return s.String()
  9454. }
  9455. // Contains the response to a successful GetCredentialReport request.
  9456. type GetCredentialReportOutput struct {
  9457. _ struct{} `type:"structure"`
  9458. // Contains the credential report. The report is Base64-encoded.
  9459. //
  9460. // Content is automatically base64 encoded/decoded by the SDK.
  9461. Content []byte `type:"blob"`
  9462. // The date and time when the credential report was created, in ISO 8601 date-time
  9463. // format (http://www.iso.org/iso/iso8601).
  9464. GeneratedTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  9465. // The format (MIME type) of the credential report.
  9466. ReportFormat *string `type:"string" enum:"ReportFormatType"`
  9467. }
  9468. // String returns the string representation
  9469. func (s GetCredentialReportOutput) String() string {
  9470. return awsutil.Prettify(s)
  9471. }
  9472. // GoString returns the string representation
  9473. func (s GetCredentialReportOutput) GoString() string {
  9474. return s.String()
  9475. }
  9476. type GetGroupInput struct {
  9477. _ struct{} `type:"structure"`
  9478. // The name of the group.
  9479. //
  9480. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9481. // a string of characters consisting of upper and lowercase alphanumeric characters
  9482. // with no spaces. You can also include any of the following characters: =,.@-
  9483. GroupName *string `min:"1" type:"string" required:"true"`
  9484. // Use this parameter only when paginating results and only after you receive
  9485. // a response indicating that the results are truncated. Set it to the value
  9486. // of the Marker element in the response that you received to indicate where
  9487. // the next call should start.
  9488. Marker *string `min:"1" type:"string"`
  9489. // Use this only when paginating results to indicate the maximum number of items
  9490. // you want in the response. If additional items exist beyond the maximum you
  9491. // specify, the IsTruncated response element is true.
  9492. //
  9493. // This parameter is optional. If you do not include it, it defaults to 100.
  9494. // Note that IAM might return fewer results, even when there are more results
  9495. // available. In that case, the IsTruncated response element returns true and
  9496. // Marker contains a value to include in the subsequent call that tells the
  9497. // service where to continue from.
  9498. MaxItems *int64 `min:"1" type:"integer"`
  9499. }
  9500. // String returns the string representation
  9501. func (s GetGroupInput) String() string {
  9502. return awsutil.Prettify(s)
  9503. }
  9504. // GoString returns the string representation
  9505. func (s GetGroupInput) GoString() string {
  9506. return s.String()
  9507. }
  9508. // Validate inspects the fields of the type to determine if they are valid.
  9509. func (s *GetGroupInput) Validate() error {
  9510. invalidParams := request.ErrInvalidParams{Context: "GetGroupInput"}
  9511. if s.GroupName == nil {
  9512. invalidParams.Add(request.NewErrParamRequired("GroupName"))
  9513. }
  9514. if s.GroupName != nil && len(*s.GroupName) < 1 {
  9515. invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  9516. }
  9517. if s.Marker != nil && len(*s.Marker) < 1 {
  9518. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  9519. }
  9520. if s.MaxItems != nil && *s.MaxItems < 1 {
  9521. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  9522. }
  9523. if invalidParams.Len() > 0 {
  9524. return invalidParams
  9525. }
  9526. return nil
  9527. }
  9528. // Contains the response to a successful GetGroup request.
  9529. type GetGroupOutput struct {
  9530. _ struct{} `type:"structure"`
  9531. // A structure that contains details about the group.
  9532. Group *Group `type:"structure" required:"true"`
  9533. // A flag that indicates whether there are more items to return. If your results
  9534. // were truncated, you can make a subsequent pagination request using the Marker
  9535. // request parameter to retrieve more items. Note that IAM might return fewer
  9536. // than the MaxItems number of results even when there are more results available.
  9537. // We recommend that you check IsTruncated after every call to ensure that you
  9538. // receive all of your results.
  9539. IsTruncated *bool `type:"boolean"`
  9540. // When IsTruncated is true, this element is present and contains the value
  9541. // to use for the Marker parameter in a subsequent pagination request.
  9542. Marker *string `min:"1" type:"string"`
  9543. // A list of users in the group.
  9544. Users []*User `type:"list" required:"true"`
  9545. }
  9546. // String returns the string representation
  9547. func (s GetGroupOutput) String() string {
  9548. return awsutil.Prettify(s)
  9549. }
  9550. // GoString returns the string representation
  9551. func (s GetGroupOutput) GoString() string {
  9552. return s.String()
  9553. }
  9554. type GetGroupPolicyInput struct {
  9555. _ struct{} `type:"structure"`
  9556. // The name of the group the policy is associated with.
  9557. //
  9558. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9559. // a string of characters consisting of upper and lowercase alphanumeric characters
  9560. // with no spaces. You can also include any of the following characters: =,.@-
  9561. GroupName *string `min:"1" type:"string" required:"true"`
  9562. // The name of the policy document to get.
  9563. //
  9564. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9565. // a string of characters consisting of upper and lowercase alphanumeric characters
  9566. // with no spaces. You can also include any of the following characters: =,.@-
  9567. PolicyName *string `min:"1" type:"string" required:"true"`
  9568. }
  9569. // String returns the string representation
  9570. func (s GetGroupPolicyInput) String() string {
  9571. return awsutil.Prettify(s)
  9572. }
  9573. // GoString returns the string representation
  9574. func (s GetGroupPolicyInput) GoString() string {
  9575. return s.String()
  9576. }
  9577. // Validate inspects the fields of the type to determine if they are valid.
  9578. func (s *GetGroupPolicyInput) Validate() error {
  9579. invalidParams := request.ErrInvalidParams{Context: "GetGroupPolicyInput"}
  9580. if s.GroupName == nil {
  9581. invalidParams.Add(request.NewErrParamRequired("GroupName"))
  9582. }
  9583. if s.GroupName != nil && len(*s.GroupName) < 1 {
  9584. invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  9585. }
  9586. if s.PolicyName == nil {
  9587. invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  9588. }
  9589. if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  9590. invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  9591. }
  9592. if invalidParams.Len() > 0 {
  9593. return invalidParams
  9594. }
  9595. return nil
  9596. }
  9597. // Contains the response to a successful GetGroupPolicy request.
  9598. type GetGroupPolicyOutput struct {
  9599. _ struct{} `type:"structure"`
  9600. // The group the policy is associated with.
  9601. GroupName *string `min:"1" type:"string" required:"true"`
  9602. // The policy document.
  9603. PolicyDocument *string `min:"1" type:"string" required:"true"`
  9604. // The name of the policy.
  9605. PolicyName *string `min:"1" type:"string" required:"true"`
  9606. }
  9607. // String returns the string representation
  9608. func (s GetGroupPolicyOutput) String() string {
  9609. return awsutil.Prettify(s)
  9610. }
  9611. // GoString returns the string representation
  9612. func (s GetGroupPolicyOutput) GoString() string {
  9613. return s.String()
  9614. }
  9615. type GetInstanceProfileInput struct {
  9616. _ struct{} `type:"structure"`
  9617. // The name of the instance profile to get information about.
  9618. //
  9619. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9620. // a string of characters consisting of upper and lowercase alphanumeric characters
  9621. // with no spaces. You can also include any of the following characters: =,.@-
  9622. InstanceProfileName *string `min:"1" type:"string" required:"true"`
  9623. }
  9624. // String returns the string representation
  9625. func (s GetInstanceProfileInput) String() string {
  9626. return awsutil.Prettify(s)
  9627. }
  9628. // GoString returns the string representation
  9629. func (s GetInstanceProfileInput) GoString() string {
  9630. return s.String()
  9631. }
  9632. // Validate inspects the fields of the type to determine if they are valid.
  9633. func (s *GetInstanceProfileInput) Validate() error {
  9634. invalidParams := request.ErrInvalidParams{Context: "GetInstanceProfileInput"}
  9635. if s.InstanceProfileName == nil {
  9636. invalidParams.Add(request.NewErrParamRequired("InstanceProfileName"))
  9637. }
  9638. if s.InstanceProfileName != nil && len(*s.InstanceProfileName) < 1 {
  9639. invalidParams.Add(request.NewErrParamMinLen("InstanceProfileName", 1))
  9640. }
  9641. if invalidParams.Len() > 0 {
  9642. return invalidParams
  9643. }
  9644. return nil
  9645. }
  9646. // Contains the response to a successful GetInstanceProfile request.
  9647. type GetInstanceProfileOutput struct {
  9648. _ struct{} `type:"structure"`
  9649. // A structure containing details about the instance profile.
  9650. InstanceProfile *InstanceProfile `type:"structure" required:"true"`
  9651. }
  9652. // String returns the string representation
  9653. func (s GetInstanceProfileOutput) String() string {
  9654. return awsutil.Prettify(s)
  9655. }
  9656. // GoString returns the string representation
  9657. func (s GetInstanceProfileOutput) GoString() string {
  9658. return s.String()
  9659. }
  9660. type GetLoginProfileInput struct {
  9661. _ struct{} `type:"structure"`
  9662. // The name of the user whose login profile you want to retrieve.
  9663. //
  9664. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9665. // a string of characters consisting of upper and lowercase alphanumeric characters
  9666. // with no spaces. You can also include any of the following characters: =,.@-
  9667. UserName *string `min:"1" type:"string" required:"true"`
  9668. }
  9669. // String returns the string representation
  9670. func (s GetLoginProfileInput) String() string {
  9671. return awsutil.Prettify(s)
  9672. }
  9673. // GoString returns the string representation
  9674. func (s GetLoginProfileInput) GoString() string {
  9675. return s.String()
  9676. }
  9677. // Validate inspects the fields of the type to determine if they are valid.
  9678. func (s *GetLoginProfileInput) Validate() error {
  9679. invalidParams := request.ErrInvalidParams{Context: "GetLoginProfileInput"}
  9680. if s.UserName == nil {
  9681. invalidParams.Add(request.NewErrParamRequired("UserName"))
  9682. }
  9683. if s.UserName != nil && len(*s.UserName) < 1 {
  9684. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  9685. }
  9686. if invalidParams.Len() > 0 {
  9687. return invalidParams
  9688. }
  9689. return nil
  9690. }
  9691. // Contains the response to a successful GetLoginProfile request.
  9692. type GetLoginProfileOutput struct {
  9693. _ struct{} `type:"structure"`
  9694. // A structure containing the user name and password create date for the user.
  9695. LoginProfile *LoginProfile `type:"structure" required:"true"`
  9696. }
  9697. // String returns the string representation
  9698. func (s GetLoginProfileOutput) String() string {
  9699. return awsutil.Prettify(s)
  9700. }
  9701. // GoString returns the string representation
  9702. func (s GetLoginProfileOutput) GoString() string {
  9703. return s.String()
  9704. }
  9705. type GetOpenIDConnectProviderInput struct {
  9706. _ struct{} `type:"structure"`
  9707. // The Amazon Resource Name (ARN) of the OIDC provider resource object in IAM
  9708. // to get information for. You can get a list of OIDC provider resource ARNs
  9709. // by using the ListOpenIDConnectProviders action.
  9710. //
  9711. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  9712. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  9713. // in the AWS General Reference.
  9714. OpenIDConnectProviderArn *string `min:"20" type:"string" required:"true"`
  9715. }
  9716. // String returns the string representation
  9717. func (s GetOpenIDConnectProviderInput) String() string {
  9718. return awsutil.Prettify(s)
  9719. }
  9720. // GoString returns the string representation
  9721. func (s GetOpenIDConnectProviderInput) GoString() string {
  9722. return s.String()
  9723. }
  9724. // Validate inspects the fields of the type to determine if they are valid.
  9725. func (s *GetOpenIDConnectProviderInput) Validate() error {
  9726. invalidParams := request.ErrInvalidParams{Context: "GetOpenIDConnectProviderInput"}
  9727. if s.OpenIDConnectProviderArn == nil {
  9728. invalidParams.Add(request.NewErrParamRequired("OpenIDConnectProviderArn"))
  9729. }
  9730. if s.OpenIDConnectProviderArn != nil && len(*s.OpenIDConnectProviderArn) < 20 {
  9731. invalidParams.Add(request.NewErrParamMinLen("OpenIDConnectProviderArn", 20))
  9732. }
  9733. if invalidParams.Len() > 0 {
  9734. return invalidParams
  9735. }
  9736. return nil
  9737. }
  9738. // Contains the response to a successful GetOpenIDConnectProvider request.
  9739. type GetOpenIDConnectProviderOutput struct {
  9740. _ struct{} `type:"structure"`
  9741. // A list of client IDs (also known as audiences) that are associated with the
  9742. // specified IAM OIDC provider resource object. For more information, see CreateOpenIDConnectProvider.
  9743. ClientIDList []*string `type:"list"`
  9744. // The date and time when the IAM OIDC provider resource object was created
  9745. // in the AWS account.
  9746. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  9747. // A list of certificate thumbprints that are associated with the specified
  9748. // IAM OIDC provider resource object. For more information, see CreateOpenIDConnectProvider.
  9749. ThumbprintList []*string `type:"list"`
  9750. // The URL that the IAM OIDC provider resource object is associated with. For
  9751. // more information, see CreateOpenIDConnectProvider.
  9752. Url *string `min:"1" type:"string"`
  9753. }
  9754. // String returns the string representation
  9755. func (s GetOpenIDConnectProviderOutput) String() string {
  9756. return awsutil.Prettify(s)
  9757. }
  9758. // GoString returns the string representation
  9759. func (s GetOpenIDConnectProviderOutput) GoString() string {
  9760. return s.String()
  9761. }
  9762. type GetPolicyInput struct {
  9763. _ struct{} `type:"structure"`
  9764. // The Amazon Resource Name (ARN) of the managed policy that you want information
  9765. // about.
  9766. //
  9767. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  9768. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  9769. // in the AWS General Reference.
  9770. PolicyArn *string `min:"20" type:"string" required:"true"`
  9771. }
  9772. // String returns the string representation
  9773. func (s GetPolicyInput) String() string {
  9774. return awsutil.Prettify(s)
  9775. }
  9776. // GoString returns the string representation
  9777. func (s GetPolicyInput) GoString() string {
  9778. return s.String()
  9779. }
  9780. // Validate inspects the fields of the type to determine if they are valid.
  9781. func (s *GetPolicyInput) Validate() error {
  9782. invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
  9783. if s.PolicyArn == nil {
  9784. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  9785. }
  9786. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  9787. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  9788. }
  9789. if invalidParams.Len() > 0 {
  9790. return invalidParams
  9791. }
  9792. return nil
  9793. }
  9794. // Contains the response to a successful GetPolicy request.
  9795. type GetPolicyOutput struct {
  9796. _ struct{} `type:"structure"`
  9797. // A structure containing details about the policy.
  9798. Policy *Policy `type:"structure"`
  9799. }
  9800. // String returns the string representation
  9801. func (s GetPolicyOutput) String() string {
  9802. return awsutil.Prettify(s)
  9803. }
  9804. // GoString returns the string representation
  9805. func (s GetPolicyOutput) GoString() string {
  9806. return s.String()
  9807. }
  9808. type GetPolicyVersionInput struct {
  9809. _ struct{} `type:"structure"`
  9810. // The Amazon Resource Name (ARN) of the managed policy that you want information
  9811. // about.
  9812. //
  9813. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  9814. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  9815. // in the AWS General Reference.
  9816. PolicyArn *string `min:"20" type:"string" required:"true"`
  9817. // Identifies the policy version to retrieve.
  9818. //
  9819. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9820. // a string of characters that consists of the lowercase letter 'v' followed
  9821. // by one or two digits, and optionally followed by a period '.' and a string
  9822. // of letters and digits.
  9823. VersionId *string `type:"string" required:"true"`
  9824. }
  9825. // String returns the string representation
  9826. func (s GetPolicyVersionInput) String() string {
  9827. return awsutil.Prettify(s)
  9828. }
  9829. // GoString returns the string representation
  9830. func (s GetPolicyVersionInput) GoString() string {
  9831. return s.String()
  9832. }
  9833. // Validate inspects the fields of the type to determine if they are valid.
  9834. func (s *GetPolicyVersionInput) Validate() error {
  9835. invalidParams := request.ErrInvalidParams{Context: "GetPolicyVersionInput"}
  9836. if s.PolicyArn == nil {
  9837. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  9838. }
  9839. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  9840. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  9841. }
  9842. if s.VersionId == nil {
  9843. invalidParams.Add(request.NewErrParamRequired("VersionId"))
  9844. }
  9845. if invalidParams.Len() > 0 {
  9846. return invalidParams
  9847. }
  9848. return nil
  9849. }
  9850. // Contains the response to a successful GetPolicyVersion request.
  9851. type GetPolicyVersionOutput struct {
  9852. _ struct{} `type:"structure"`
  9853. // A structure containing details about the policy version.
  9854. PolicyVersion *PolicyVersion `type:"structure"`
  9855. }
  9856. // String returns the string representation
  9857. func (s GetPolicyVersionOutput) String() string {
  9858. return awsutil.Prettify(s)
  9859. }
  9860. // GoString returns the string representation
  9861. func (s GetPolicyVersionOutput) GoString() string {
  9862. return s.String()
  9863. }
  9864. type GetRoleInput struct {
  9865. _ struct{} `type:"structure"`
  9866. // The name of the IAM role to get information about.
  9867. //
  9868. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9869. // a string of characters consisting of upper and lowercase alphanumeric characters
  9870. // with no spaces. You can also include any of the following characters: =,.@-
  9871. RoleName *string `min:"1" type:"string" required:"true"`
  9872. }
  9873. // String returns the string representation
  9874. func (s GetRoleInput) String() string {
  9875. return awsutil.Prettify(s)
  9876. }
  9877. // GoString returns the string representation
  9878. func (s GetRoleInput) GoString() string {
  9879. return s.String()
  9880. }
  9881. // Validate inspects the fields of the type to determine if they are valid.
  9882. func (s *GetRoleInput) Validate() error {
  9883. invalidParams := request.ErrInvalidParams{Context: "GetRoleInput"}
  9884. if s.RoleName == nil {
  9885. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  9886. }
  9887. if s.RoleName != nil && len(*s.RoleName) < 1 {
  9888. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  9889. }
  9890. if invalidParams.Len() > 0 {
  9891. return invalidParams
  9892. }
  9893. return nil
  9894. }
  9895. // Contains the response to a successful GetRole request.
  9896. type GetRoleOutput struct {
  9897. _ struct{} `type:"structure"`
  9898. // A structure containing details about the IAM role.
  9899. Role *Role `type:"structure" required:"true"`
  9900. }
  9901. // String returns the string representation
  9902. func (s GetRoleOutput) String() string {
  9903. return awsutil.Prettify(s)
  9904. }
  9905. // GoString returns the string representation
  9906. func (s GetRoleOutput) GoString() string {
  9907. return s.String()
  9908. }
  9909. type GetRolePolicyInput struct {
  9910. _ struct{} `type:"structure"`
  9911. // The name of the policy document to get.
  9912. //
  9913. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9914. // a string of characters consisting of upper and lowercase alphanumeric characters
  9915. // with no spaces. You can also include any of the following characters: =,.@-
  9916. PolicyName *string `min:"1" type:"string" required:"true"`
  9917. // The name of the role associated with the policy.
  9918. //
  9919. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  9920. // a string of characters consisting of upper and lowercase alphanumeric characters
  9921. // with no spaces. You can also include any of the following characters: =,.@-
  9922. RoleName *string `min:"1" type:"string" required:"true"`
  9923. }
  9924. // String returns the string representation
  9925. func (s GetRolePolicyInput) String() string {
  9926. return awsutil.Prettify(s)
  9927. }
  9928. // GoString returns the string representation
  9929. func (s GetRolePolicyInput) GoString() string {
  9930. return s.String()
  9931. }
  9932. // Validate inspects the fields of the type to determine if they are valid.
  9933. func (s *GetRolePolicyInput) Validate() error {
  9934. invalidParams := request.ErrInvalidParams{Context: "GetRolePolicyInput"}
  9935. if s.PolicyName == nil {
  9936. invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  9937. }
  9938. if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  9939. invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  9940. }
  9941. if s.RoleName == nil {
  9942. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  9943. }
  9944. if s.RoleName != nil && len(*s.RoleName) < 1 {
  9945. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  9946. }
  9947. if invalidParams.Len() > 0 {
  9948. return invalidParams
  9949. }
  9950. return nil
  9951. }
  9952. // Contains the response to a successful GetRolePolicy request.
  9953. type GetRolePolicyOutput struct {
  9954. _ struct{} `type:"structure"`
  9955. // The policy document.
  9956. PolicyDocument *string `min:"1" type:"string" required:"true"`
  9957. // The name of the policy.
  9958. PolicyName *string `min:"1" type:"string" required:"true"`
  9959. // The role the policy is associated with.
  9960. RoleName *string `min:"1" type:"string" required:"true"`
  9961. }
  9962. // String returns the string representation
  9963. func (s GetRolePolicyOutput) String() string {
  9964. return awsutil.Prettify(s)
  9965. }
  9966. // GoString returns the string representation
  9967. func (s GetRolePolicyOutput) GoString() string {
  9968. return s.String()
  9969. }
  9970. type GetSAMLProviderInput struct {
  9971. _ struct{} `type:"structure"`
  9972. // The Amazon Resource Name (ARN) of the SAML provider resource object in IAM
  9973. // to get information about.
  9974. //
  9975. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  9976. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  9977. // in the AWS General Reference.
  9978. SAMLProviderArn *string `min:"20" type:"string" required:"true"`
  9979. }
  9980. // String returns the string representation
  9981. func (s GetSAMLProviderInput) String() string {
  9982. return awsutil.Prettify(s)
  9983. }
  9984. // GoString returns the string representation
  9985. func (s GetSAMLProviderInput) GoString() string {
  9986. return s.String()
  9987. }
  9988. // Validate inspects the fields of the type to determine if they are valid.
  9989. func (s *GetSAMLProviderInput) Validate() error {
  9990. invalidParams := request.ErrInvalidParams{Context: "GetSAMLProviderInput"}
  9991. if s.SAMLProviderArn == nil {
  9992. invalidParams.Add(request.NewErrParamRequired("SAMLProviderArn"))
  9993. }
  9994. if s.SAMLProviderArn != nil && len(*s.SAMLProviderArn) < 20 {
  9995. invalidParams.Add(request.NewErrParamMinLen("SAMLProviderArn", 20))
  9996. }
  9997. if invalidParams.Len() > 0 {
  9998. return invalidParams
  9999. }
  10000. return nil
  10001. }
  10002. // Contains the response to a successful GetSAMLProvider request.
  10003. type GetSAMLProviderOutput struct {
  10004. _ struct{} `type:"structure"`
  10005. // The date and time when the SAML provider was created.
  10006. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  10007. // The XML metadata document that includes information about an identity provider.
  10008. SAMLMetadataDocument *string `min:"1000" type:"string"`
  10009. // The expiration date and time for the SAML provider.
  10010. ValidUntil *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  10011. }
  10012. // String returns the string representation
  10013. func (s GetSAMLProviderOutput) String() string {
  10014. return awsutil.Prettify(s)
  10015. }
  10016. // GoString returns the string representation
  10017. func (s GetSAMLProviderOutput) GoString() string {
  10018. return s.String()
  10019. }
  10020. type GetSSHPublicKeyInput struct {
  10021. _ struct{} `type:"structure"`
  10022. // Specifies the public key encoding format to use in the response. To retrieve
  10023. // the public key in ssh-rsa format, use SSH. To retrieve the public key in
  10024. // PEM format, use PEM.
  10025. Encoding *string `type:"string" required:"true" enum:"encodingType"`
  10026. // The unique identifier for the SSH public key.
  10027. //
  10028. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10029. // a string of characters that can consist of any upper or lowercased letter
  10030. // or digit.
  10031. SSHPublicKeyId *string `min:"20" type:"string" required:"true"`
  10032. // The name of the IAM user associated with the SSH public key.
  10033. //
  10034. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10035. // a string of characters consisting of upper and lowercase alphanumeric characters
  10036. // with no spaces. You can also include any of the following characters: =,.@-
  10037. UserName *string `min:"1" type:"string" required:"true"`
  10038. }
  10039. // String returns the string representation
  10040. func (s GetSSHPublicKeyInput) String() string {
  10041. return awsutil.Prettify(s)
  10042. }
  10043. // GoString returns the string representation
  10044. func (s GetSSHPublicKeyInput) GoString() string {
  10045. return s.String()
  10046. }
  10047. // Validate inspects the fields of the type to determine if they are valid.
  10048. func (s *GetSSHPublicKeyInput) Validate() error {
  10049. invalidParams := request.ErrInvalidParams{Context: "GetSSHPublicKeyInput"}
  10050. if s.Encoding == nil {
  10051. invalidParams.Add(request.NewErrParamRequired("Encoding"))
  10052. }
  10053. if s.SSHPublicKeyId == nil {
  10054. invalidParams.Add(request.NewErrParamRequired("SSHPublicKeyId"))
  10055. }
  10056. if s.SSHPublicKeyId != nil && len(*s.SSHPublicKeyId) < 20 {
  10057. invalidParams.Add(request.NewErrParamMinLen("SSHPublicKeyId", 20))
  10058. }
  10059. if s.UserName == nil {
  10060. invalidParams.Add(request.NewErrParamRequired("UserName"))
  10061. }
  10062. if s.UserName != nil && len(*s.UserName) < 1 {
  10063. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  10064. }
  10065. if invalidParams.Len() > 0 {
  10066. return invalidParams
  10067. }
  10068. return nil
  10069. }
  10070. // Contains the response to a successful GetSSHPublicKey request.
  10071. type GetSSHPublicKeyOutput struct {
  10072. _ struct{} `type:"structure"`
  10073. // A structure containing details about the SSH public key.
  10074. SSHPublicKey *SSHPublicKey `type:"structure"`
  10075. }
  10076. // String returns the string representation
  10077. func (s GetSSHPublicKeyOutput) String() string {
  10078. return awsutil.Prettify(s)
  10079. }
  10080. // GoString returns the string representation
  10081. func (s GetSSHPublicKeyOutput) GoString() string {
  10082. return s.String()
  10083. }
  10084. type GetServerCertificateInput struct {
  10085. _ struct{} `type:"structure"`
  10086. // The name of the server certificate you want to retrieve information about.
  10087. //
  10088. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10089. // a string of characters consisting of upper and lowercase alphanumeric characters
  10090. // with no spaces. You can also include any of the following characters: =,.@-
  10091. ServerCertificateName *string `min:"1" type:"string" required:"true"`
  10092. }
  10093. // String returns the string representation
  10094. func (s GetServerCertificateInput) String() string {
  10095. return awsutil.Prettify(s)
  10096. }
  10097. // GoString returns the string representation
  10098. func (s GetServerCertificateInput) GoString() string {
  10099. return s.String()
  10100. }
  10101. // Validate inspects the fields of the type to determine if they are valid.
  10102. func (s *GetServerCertificateInput) Validate() error {
  10103. invalidParams := request.ErrInvalidParams{Context: "GetServerCertificateInput"}
  10104. if s.ServerCertificateName == nil {
  10105. invalidParams.Add(request.NewErrParamRequired("ServerCertificateName"))
  10106. }
  10107. if s.ServerCertificateName != nil && len(*s.ServerCertificateName) < 1 {
  10108. invalidParams.Add(request.NewErrParamMinLen("ServerCertificateName", 1))
  10109. }
  10110. if invalidParams.Len() > 0 {
  10111. return invalidParams
  10112. }
  10113. return nil
  10114. }
  10115. // Contains the response to a successful GetServerCertificate request.
  10116. type GetServerCertificateOutput struct {
  10117. _ struct{} `type:"structure"`
  10118. // A structure containing details about the server certificate.
  10119. ServerCertificate *ServerCertificate `type:"structure" required:"true"`
  10120. }
  10121. // String returns the string representation
  10122. func (s GetServerCertificateOutput) String() string {
  10123. return awsutil.Prettify(s)
  10124. }
  10125. // GoString returns the string representation
  10126. func (s GetServerCertificateOutput) GoString() string {
  10127. return s.String()
  10128. }
  10129. type GetUserInput struct {
  10130. _ struct{} `type:"structure"`
  10131. // The name of the user to get information about.
  10132. //
  10133. // This parameter is optional. If it is not included, it defaults to the user
  10134. // making the request. The regex pattern (http://wikipedia.org/wiki/regex) for
  10135. // this parameter is a string of characters consisting of upper and lowercase
  10136. // alphanumeric characters with no spaces. You can also include any of the following
  10137. // characters: =,.@-
  10138. UserName *string `min:"1" type:"string"`
  10139. }
  10140. // String returns the string representation
  10141. func (s GetUserInput) String() string {
  10142. return awsutil.Prettify(s)
  10143. }
  10144. // GoString returns the string representation
  10145. func (s GetUserInput) GoString() string {
  10146. return s.String()
  10147. }
  10148. // Validate inspects the fields of the type to determine if they are valid.
  10149. func (s *GetUserInput) Validate() error {
  10150. invalidParams := request.ErrInvalidParams{Context: "GetUserInput"}
  10151. if s.UserName != nil && len(*s.UserName) < 1 {
  10152. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  10153. }
  10154. if invalidParams.Len() > 0 {
  10155. return invalidParams
  10156. }
  10157. return nil
  10158. }
  10159. // Contains the response to a successful GetUser request.
  10160. type GetUserOutput struct {
  10161. _ struct{} `type:"structure"`
  10162. // A structure containing details about the IAM user.
  10163. User *User `type:"structure" required:"true"`
  10164. }
  10165. // String returns the string representation
  10166. func (s GetUserOutput) String() string {
  10167. return awsutil.Prettify(s)
  10168. }
  10169. // GoString returns the string representation
  10170. func (s GetUserOutput) GoString() string {
  10171. return s.String()
  10172. }
  10173. type GetUserPolicyInput struct {
  10174. _ struct{} `type:"structure"`
  10175. // The name of the policy document to get.
  10176. //
  10177. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10178. // a string of characters consisting of upper and lowercase alphanumeric characters
  10179. // with no spaces. You can also include any of the following characters: =,.@-
  10180. PolicyName *string `min:"1" type:"string" required:"true"`
  10181. // The name of the user who the policy is associated with.
  10182. //
  10183. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10184. // a string of characters consisting of upper and lowercase alphanumeric characters
  10185. // with no spaces. You can also include any of the following characters: =,.@-
  10186. UserName *string `min:"1" type:"string" required:"true"`
  10187. }
  10188. // String returns the string representation
  10189. func (s GetUserPolicyInput) String() string {
  10190. return awsutil.Prettify(s)
  10191. }
  10192. // GoString returns the string representation
  10193. func (s GetUserPolicyInput) GoString() string {
  10194. return s.String()
  10195. }
  10196. // Validate inspects the fields of the type to determine if they are valid.
  10197. func (s *GetUserPolicyInput) Validate() error {
  10198. invalidParams := request.ErrInvalidParams{Context: "GetUserPolicyInput"}
  10199. if s.PolicyName == nil {
  10200. invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  10201. }
  10202. if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  10203. invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  10204. }
  10205. if s.UserName == nil {
  10206. invalidParams.Add(request.NewErrParamRequired("UserName"))
  10207. }
  10208. if s.UserName != nil && len(*s.UserName) < 1 {
  10209. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  10210. }
  10211. if invalidParams.Len() > 0 {
  10212. return invalidParams
  10213. }
  10214. return nil
  10215. }
  10216. // Contains the response to a successful GetUserPolicy request.
  10217. type GetUserPolicyOutput struct {
  10218. _ struct{} `type:"structure"`
  10219. // The policy document.
  10220. PolicyDocument *string `min:"1" type:"string" required:"true"`
  10221. // The name of the policy.
  10222. PolicyName *string `min:"1" type:"string" required:"true"`
  10223. // The user the policy is associated with.
  10224. UserName *string `min:"1" type:"string" required:"true"`
  10225. }
  10226. // String returns the string representation
  10227. func (s GetUserPolicyOutput) String() string {
  10228. return awsutil.Prettify(s)
  10229. }
  10230. // GoString returns the string representation
  10231. func (s GetUserPolicyOutput) GoString() string {
  10232. return s.String()
  10233. }
  10234. // Contains information about an IAM group entity.
  10235. //
  10236. // This data type is used as a response element in the following actions:
  10237. //
  10238. // CreateGroup
  10239. //
  10240. // GetGroup
  10241. //
  10242. // ListGroups
  10243. type Group struct {
  10244. _ struct{} `type:"structure"`
  10245. // The Amazon Resource Name (ARN) specifying the group. For more information
  10246. // about ARNs and how to use them in policies, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  10247. // in the Using IAM guide.
  10248. Arn *string `min:"20" type:"string" required:"true"`
  10249. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  10250. // when the group was created.
  10251. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
  10252. // The stable and unique string identifying the group. For more information
  10253. // about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  10254. // in the Using IAM guide.
  10255. GroupId *string `min:"16" type:"string" required:"true"`
  10256. // The friendly name that identifies the group.
  10257. GroupName *string `min:"1" type:"string" required:"true"`
  10258. // The path to the group. For more information about paths, see IAM Identifiers
  10259. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  10260. // in the Using IAM guide.
  10261. Path *string `min:"1" type:"string" required:"true"`
  10262. }
  10263. // String returns the string representation
  10264. func (s Group) String() string {
  10265. return awsutil.Prettify(s)
  10266. }
  10267. // GoString returns the string representation
  10268. func (s Group) GoString() string {
  10269. return s.String()
  10270. }
  10271. // Contains information about an IAM group, including all of the group's policies.
  10272. //
  10273. // This data type is used as a response element in the GetAccountAuthorizationDetails
  10274. // action.
  10275. type GroupDetail struct {
  10276. _ struct{} `type:"structure"`
  10277. // The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
  10278. //
  10279. // For more information about ARNs, go to Amazon Resource Names (ARNs) and
  10280. // AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  10281. // in the AWS General Reference.
  10282. Arn *string `min:"20" type:"string"`
  10283. // A list of the managed policies attached to the group.
  10284. AttachedManagedPolicies []*AttachedPolicy `type:"list"`
  10285. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  10286. // when the group was created.
  10287. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  10288. // The stable and unique string identifying the group. For more information
  10289. // about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  10290. // in the Using IAM guide.
  10291. GroupId *string `min:"16" type:"string"`
  10292. // The friendly name that identifies the group.
  10293. GroupName *string `min:"1" type:"string"`
  10294. // A list of the inline policies embedded in the group.
  10295. GroupPolicyList []*PolicyDetail `type:"list"`
  10296. // The path to the group. For more information about paths, see IAM Identifiers
  10297. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  10298. // in the Using IAM guide.
  10299. Path *string `min:"1" type:"string"`
  10300. }
  10301. // String returns the string representation
  10302. func (s GroupDetail) String() string {
  10303. return awsutil.Prettify(s)
  10304. }
  10305. // GoString returns the string representation
  10306. func (s GroupDetail) GoString() string {
  10307. return s.String()
  10308. }
  10309. // Contains information about an instance profile.
  10310. //
  10311. // This data type is used as a response element in the following actions:
  10312. //
  10313. // CreateInstanceProfile
  10314. //
  10315. // GetInstanceProfile
  10316. //
  10317. // ListInstanceProfiles
  10318. //
  10319. // ListInstanceProfilesForRole
  10320. type InstanceProfile struct {
  10321. _ struct{} `type:"structure"`
  10322. // The Amazon Resource Name (ARN) specifying the instance profile. For more
  10323. // information about ARNs and how to use them in policies, see IAM Identifiers
  10324. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  10325. // in the Using IAM guide.
  10326. Arn *string `min:"20" type:"string" required:"true"`
  10327. // The date when the instance profile was created.
  10328. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
  10329. // The stable and unique string identifying the instance profile. For more information
  10330. // about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  10331. // in the Using IAM guide.
  10332. InstanceProfileId *string `min:"16" type:"string" required:"true"`
  10333. // The name identifying the instance profile.
  10334. InstanceProfileName *string `min:"1" type:"string" required:"true"`
  10335. // The path to the instance profile. For more information about paths, see IAM
  10336. // Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  10337. // in the Using IAM guide.
  10338. Path *string `min:"1" type:"string" required:"true"`
  10339. // The role associated with the instance profile.
  10340. Roles []*Role `type:"list" required:"true"`
  10341. }
  10342. // String returns the string representation
  10343. func (s InstanceProfile) String() string {
  10344. return awsutil.Prettify(s)
  10345. }
  10346. // GoString returns the string representation
  10347. func (s InstanceProfile) GoString() string {
  10348. return s.String()
  10349. }
  10350. type ListAccessKeysInput struct {
  10351. _ struct{} `type:"structure"`
  10352. // Use this parameter only when paginating results and only after you receive
  10353. // a response indicating that the results are truncated. Set it to the value
  10354. // of the Marker element in the response that you received to indicate where
  10355. // the next call should start.
  10356. Marker *string `min:"1" type:"string"`
  10357. // Use this only when paginating results to indicate the maximum number of items
  10358. // you want in the response. If additional items exist beyond the maximum you
  10359. // specify, the IsTruncated response element is true.
  10360. //
  10361. // This parameter is optional. If you do not include it, it defaults to 100.
  10362. // Note that IAM might return fewer results, even when there are more results
  10363. // available. In that case, the IsTruncated response element returns true and
  10364. // Marker contains a value to include in the subsequent call that tells the
  10365. // service where to continue from.
  10366. MaxItems *int64 `min:"1" type:"integer"`
  10367. // The name of the user.
  10368. //
  10369. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10370. // a string of characters consisting of upper and lowercase alphanumeric characters
  10371. // with no spaces. You can also include any of the following characters: =,.@-
  10372. UserName *string `min:"1" type:"string"`
  10373. }
  10374. // String returns the string representation
  10375. func (s ListAccessKeysInput) String() string {
  10376. return awsutil.Prettify(s)
  10377. }
  10378. // GoString returns the string representation
  10379. func (s ListAccessKeysInput) GoString() string {
  10380. return s.String()
  10381. }
  10382. // Validate inspects the fields of the type to determine if they are valid.
  10383. func (s *ListAccessKeysInput) Validate() error {
  10384. invalidParams := request.ErrInvalidParams{Context: "ListAccessKeysInput"}
  10385. if s.Marker != nil && len(*s.Marker) < 1 {
  10386. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  10387. }
  10388. if s.MaxItems != nil && *s.MaxItems < 1 {
  10389. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  10390. }
  10391. if s.UserName != nil && len(*s.UserName) < 1 {
  10392. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  10393. }
  10394. if invalidParams.Len() > 0 {
  10395. return invalidParams
  10396. }
  10397. return nil
  10398. }
  10399. // Contains the response to a successful ListAccessKeys request.
  10400. type ListAccessKeysOutput struct {
  10401. _ struct{} `type:"structure"`
  10402. // A list of objects containing metadata about the access keys.
  10403. AccessKeyMetadata []*AccessKeyMetadata `type:"list" required:"true"`
  10404. // A flag that indicates whether there are more items to return. If your results
  10405. // were truncated, you can make a subsequent pagination request using the Marker
  10406. // request parameter to retrieve more items. Note that IAM might return fewer
  10407. // than the MaxItems number of results even when there are more results available.
  10408. // We recommend that you check IsTruncated after every call to ensure that you
  10409. // receive all of your results.
  10410. IsTruncated *bool `type:"boolean"`
  10411. // When IsTruncated is true, this element is present and contains the value
  10412. // to use for the Marker parameter in a subsequent pagination request.
  10413. Marker *string `min:"1" type:"string"`
  10414. }
  10415. // String returns the string representation
  10416. func (s ListAccessKeysOutput) String() string {
  10417. return awsutil.Prettify(s)
  10418. }
  10419. // GoString returns the string representation
  10420. func (s ListAccessKeysOutput) GoString() string {
  10421. return s.String()
  10422. }
  10423. type ListAccountAliasesInput struct {
  10424. _ struct{} `type:"structure"`
  10425. // Use this parameter only when paginating results and only after you receive
  10426. // a response indicating that the results are truncated. Set it to the value
  10427. // of the Marker element in the response that you received to indicate where
  10428. // the next call should start.
  10429. Marker *string `min:"1" type:"string"`
  10430. // Use this only when paginating results to indicate the maximum number of items
  10431. // you want in the response. If additional items exist beyond the maximum you
  10432. // specify, the IsTruncated response element is true.
  10433. //
  10434. // This parameter is optional. If you do not include it, it defaults to 100.
  10435. // Note that IAM might return fewer results, even when there are more results
  10436. // available. In that case, the IsTruncated response element returns true and
  10437. // Marker contains a value to include in the subsequent call that tells the
  10438. // service where to continue from.
  10439. MaxItems *int64 `min:"1" type:"integer"`
  10440. }
  10441. // String returns the string representation
  10442. func (s ListAccountAliasesInput) String() string {
  10443. return awsutil.Prettify(s)
  10444. }
  10445. // GoString returns the string representation
  10446. func (s ListAccountAliasesInput) GoString() string {
  10447. return s.String()
  10448. }
  10449. // Validate inspects the fields of the type to determine if they are valid.
  10450. func (s *ListAccountAliasesInput) Validate() error {
  10451. invalidParams := request.ErrInvalidParams{Context: "ListAccountAliasesInput"}
  10452. if s.Marker != nil && len(*s.Marker) < 1 {
  10453. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  10454. }
  10455. if s.MaxItems != nil && *s.MaxItems < 1 {
  10456. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  10457. }
  10458. if invalidParams.Len() > 0 {
  10459. return invalidParams
  10460. }
  10461. return nil
  10462. }
  10463. // Contains the response to a successful ListAccountAliases request.
  10464. type ListAccountAliasesOutput struct {
  10465. _ struct{} `type:"structure"`
  10466. // A list of aliases associated with the account. AWS supports only one alias
  10467. // per account.
  10468. AccountAliases []*string `type:"list" required:"true"`
  10469. // A flag that indicates whether there are more items to return. If your results
  10470. // were truncated, you can make a subsequent pagination request using the Marker
  10471. // request parameter to retrieve more items. Note that IAM might return fewer
  10472. // than the MaxItems number of results even when there are more results available.
  10473. // We recommend that you check IsTruncated after every call to ensure that you
  10474. // receive all of your results.
  10475. IsTruncated *bool `type:"boolean"`
  10476. // When IsTruncated is true, this element is present and contains the value
  10477. // to use for the Marker parameter in a subsequent pagination request.
  10478. Marker *string `min:"1" type:"string"`
  10479. }
  10480. // String returns the string representation
  10481. func (s ListAccountAliasesOutput) String() string {
  10482. return awsutil.Prettify(s)
  10483. }
  10484. // GoString returns the string representation
  10485. func (s ListAccountAliasesOutput) GoString() string {
  10486. return s.String()
  10487. }
  10488. type ListAttachedGroupPoliciesInput struct {
  10489. _ struct{} `type:"structure"`
  10490. // The name (friendly name, not ARN) of the group to list attached policies
  10491. // for.
  10492. //
  10493. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10494. // a string of characters consisting of upper and lowercase alphanumeric characters
  10495. // with no spaces. You can also include any of the following characters: =,.@-
  10496. GroupName *string `min:"1" type:"string" required:"true"`
  10497. // Use this parameter only when paginating results and only after you receive
  10498. // a response indicating that the results are truncated. Set it to the value
  10499. // of the Marker element in the response that you received to indicate where
  10500. // the next call should start.
  10501. Marker *string `min:"1" type:"string"`
  10502. // Use this only when paginating results to indicate the maximum number of items
  10503. // you want in the response. If additional items exist beyond the maximum you
  10504. // specify, the IsTruncated response element is true.
  10505. //
  10506. // This parameter is optional. If you do not include it, it defaults to 100.
  10507. // Note that IAM might return fewer results, even when there are more results
  10508. // available. In that case, the IsTruncated response element returns true and
  10509. // Marker contains a value to include in the subsequent call that tells the
  10510. // service where to continue from.
  10511. MaxItems *int64 `min:"1" type:"integer"`
  10512. // The path prefix for filtering the results. This parameter is optional. If
  10513. // it is not included, it defaults to a slash (/), listing all policies.
  10514. //
  10515. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10516. // a string of characters consisting of either a forward slash (/) by itself
  10517. // or a string that must begin and end with forward slashes, containing any
  10518. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  10519. // most punctuation characters, digits, and upper and lowercased letters.
  10520. PathPrefix *string `type:"string"`
  10521. }
  10522. // String returns the string representation
  10523. func (s ListAttachedGroupPoliciesInput) String() string {
  10524. return awsutil.Prettify(s)
  10525. }
  10526. // GoString returns the string representation
  10527. func (s ListAttachedGroupPoliciesInput) GoString() string {
  10528. return s.String()
  10529. }
  10530. // Validate inspects the fields of the type to determine if they are valid.
  10531. func (s *ListAttachedGroupPoliciesInput) Validate() error {
  10532. invalidParams := request.ErrInvalidParams{Context: "ListAttachedGroupPoliciesInput"}
  10533. if s.GroupName == nil {
  10534. invalidParams.Add(request.NewErrParamRequired("GroupName"))
  10535. }
  10536. if s.GroupName != nil && len(*s.GroupName) < 1 {
  10537. invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  10538. }
  10539. if s.Marker != nil && len(*s.Marker) < 1 {
  10540. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  10541. }
  10542. if s.MaxItems != nil && *s.MaxItems < 1 {
  10543. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  10544. }
  10545. if invalidParams.Len() > 0 {
  10546. return invalidParams
  10547. }
  10548. return nil
  10549. }
  10550. // Contains the response to a successful ListAttachedGroupPolicies request.
  10551. type ListAttachedGroupPoliciesOutput struct {
  10552. _ struct{} `type:"structure"`
  10553. // A list of the attached policies.
  10554. AttachedPolicies []*AttachedPolicy `type:"list"`
  10555. // A flag that indicates whether there are more items to return. If your results
  10556. // were truncated, you can make a subsequent pagination request using the Marker
  10557. // request parameter to retrieve more items. Note that IAM might return fewer
  10558. // than the MaxItems number of results even when there are more results available.
  10559. // We recommend that you check IsTruncated after every call to ensure that you
  10560. // receive all of your results.
  10561. IsTruncated *bool `type:"boolean"`
  10562. // When IsTruncated is true, this element is present and contains the value
  10563. // to use for the Marker parameter in a subsequent pagination request.
  10564. Marker *string `min:"1" type:"string"`
  10565. }
  10566. // String returns the string representation
  10567. func (s ListAttachedGroupPoliciesOutput) String() string {
  10568. return awsutil.Prettify(s)
  10569. }
  10570. // GoString returns the string representation
  10571. func (s ListAttachedGroupPoliciesOutput) GoString() string {
  10572. return s.String()
  10573. }
  10574. type ListAttachedRolePoliciesInput struct {
  10575. _ struct{} `type:"structure"`
  10576. // Use this parameter only when paginating results and only after you receive
  10577. // a response indicating that the results are truncated. Set it to the value
  10578. // of the Marker element in the response that you received to indicate where
  10579. // the next call should start.
  10580. Marker *string `min:"1" type:"string"`
  10581. // Use this only when paginating results to indicate the maximum number of items
  10582. // you want in the response. If additional items exist beyond the maximum you
  10583. // specify, the IsTruncated response element is true.
  10584. //
  10585. // This parameter is optional. If you do not include it, it defaults to 100.
  10586. // Note that IAM might return fewer results, even when there are more results
  10587. // available. In that case, the IsTruncated response element returns true and
  10588. // Marker contains a value to include in the subsequent call that tells the
  10589. // service where to continue from.
  10590. MaxItems *int64 `min:"1" type:"integer"`
  10591. // The path prefix for filtering the results. This parameter is optional. If
  10592. // it is not included, it defaults to a slash (/), listing all policies.
  10593. //
  10594. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10595. // a string of characters consisting of either a forward slash (/) by itself
  10596. // or a string that must begin and end with forward slashes, containing any
  10597. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  10598. // most punctuation characters, digits, and upper and lowercased letters.
  10599. PathPrefix *string `type:"string"`
  10600. // The name (friendly name, not ARN) of the role to list attached policies for.
  10601. //
  10602. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10603. // a string of characters consisting of upper and lowercase alphanumeric characters
  10604. // with no spaces. You can also include any of the following characters: =,.@-
  10605. RoleName *string `min:"1" type:"string" required:"true"`
  10606. }
  10607. // String returns the string representation
  10608. func (s ListAttachedRolePoliciesInput) String() string {
  10609. return awsutil.Prettify(s)
  10610. }
  10611. // GoString returns the string representation
  10612. func (s ListAttachedRolePoliciesInput) GoString() string {
  10613. return s.String()
  10614. }
  10615. // Validate inspects the fields of the type to determine if they are valid.
  10616. func (s *ListAttachedRolePoliciesInput) Validate() error {
  10617. invalidParams := request.ErrInvalidParams{Context: "ListAttachedRolePoliciesInput"}
  10618. if s.Marker != nil && len(*s.Marker) < 1 {
  10619. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  10620. }
  10621. if s.MaxItems != nil && *s.MaxItems < 1 {
  10622. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  10623. }
  10624. if s.RoleName == nil {
  10625. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  10626. }
  10627. if s.RoleName != nil && len(*s.RoleName) < 1 {
  10628. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  10629. }
  10630. if invalidParams.Len() > 0 {
  10631. return invalidParams
  10632. }
  10633. return nil
  10634. }
  10635. // Contains the response to a successful ListAttachedRolePolicies request.
  10636. type ListAttachedRolePoliciesOutput struct {
  10637. _ struct{} `type:"structure"`
  10638. // A list of the attached policies.
  10639. AttachedPolicies []*AttachedPolicy `type:"list"`
  10640. // A flag that indicates whether there are more items to return. If your results
  10641. // were truncated, you can make a subsequent pagination request using the Marker
  10642. // request parameter to retrieve more items. Note that IAM might return fewer
  10643. // than the MaxItems number of results even when there are more results available.
  10644. // We recommend that you check IsTruncated after every call to ensure that you
  10645. // receive all of your results.
  10646. IsTruncated *bool `type:"boolean"`
  10647. // When IsTruncated is true, this element is present and contains the value
  10648. // to use for the Marker parameter in a subsequent pagination request.
  10649. Marker *string `min:"1" type:"string"`
  10650. }
  10651. // String returns the string representation
  10652. func (s ListAttachedRolePoliciesOutput) String() string {
  10653. return awsutil.Prettify(s)
  10654. }
  10655. // GoString returns the string representation
  10656. func (s ListAttachedRolePoliciesOutput) GoString() string {
  10657. return s.String()
  10658. }
  10659. type ListAttachedUserPoliciesInput struct {
  10660. _ struct{} `type:"structure"`
  10661. // Use this parameter only when paginating results and only after you receive
  10662. // a response indicating that the results are truncated. Set it to the value
  10663. // of the Marker element in the response that you received to indicate where
  10664. // the next call should start.
  10665. Marker *string `min:"1" type:"string"`
  10666. // Use this only when paginating results to indicate the maximum number of items
  10667. // you want in the response. If additional items exist beyond the maximum you
  10668. // specify, the IsTruncated response element is true.
  10669. //
  10670. // This parameter is optional. If you do not include it, it defaults to 100.
  10671. // Note that IAM might return fewer results, even when there are more results
  10672. // available. In that case, the IsTruncated response element returns true and
  10673. // Marker contains a value to include in the subsequent call that tells the
  10674. // service where to continue from.
  10675. MaxItems *int64 `min:"1" type:"integer"`
  10676. // The path prefix for filtering the results. This parameter is optional. If
  10677. // it is not included, it defaults to a slash (/), listing all policies.
  10678. //
  10679. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10680. // a string of characters consisting of either a forward slash (/) by itself
  10681. // or a string that must begin and end with forward slashes, containing any
  10682. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  10683. // most punctuation characters, digits, and upper and lowercased letters.
  10684. PathPrefix *string `type:"string"`
  10685. // The name (friendly name, not ARN) of the user to list attached policies for.
  10686. //
  10687. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10688. // a string of characters consisting of upper and lowercase alphanumeric characters
  10689. // with no spaces. You can also include any of the following characters: =,.@-
  10690. UserName *string `min:"1" type:"string" required:"true"`
  10691. }
  10692. // String returns the string representation
  10693. func (s ListAttachedUserPoliciesInput) String() string {
  10694. return awsutil.Prettify(s)
  10695. }
  10696. // GoString returns the string representation
  10697. func (s ListAttachedUserPoliciesInput) GoString() string {
  10698. return s.String()
  10699. }
  10700. // Validate inspects the fields of the type to determine if they are valid.
  10701. func (s *ListAttachedUserPoliciesInput) Validate() error {
  10702. invalidParams := request.ErrInvalidParams{Context: "ListAttachedUserPoliciesInput"}
  10703. if s.Marker != nil && len(*s.Marker) < 1 {
  10704. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  10705. }
  10706. if s.MaxItems != nil && *s.MaxItems < 1 {
  10707. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  10708. }
  10709. if s.UserName == nil {
  10710. invalidParams.Add(request.NewErrParamRequired("UserName"))
  10711. }
  10712. if s.UserName != nil && len(*s.UserName) < 1 {
  10713. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  10714. }
  10715. if invalidParams.Len() > 0 {
  10716. return invalidParams
  10717. }
  10718. return nil
  10719. }
  10720. // Contains the response to a successful ListAttachedUserPolicies request.
  10721. type ListAttachedUserPoliciesOutput struct {
  10722. _ struct{} `type:"structure"`
  10723. // A list of the attached policies.
  10724. AttachedPolicies []*AttachedPolicy `type:"list"`
  10725. // A flag that indicates whether there are more items to return. If your results
  10726. // were truncated, you can make a subsequent pagination request using the Marker
  10727. // request parameter to retrieve more items. Note that IAM might return fewer
  10728. // than the MaxItems number of results even when there are more results available.
  10729. // We recommend that you check IsTruncated after every call to ensure that you
  10730. // receive all of your results.
  10731. IsTruncated *bool `type:"boolean"`
  10732. // When IsTruncated is true, this element is present and contains the value
  10733. // to use for the Marker parameter in a subsequent pagination request.
  10734. Marker *string `min:"1" type:"string"`
  10735. }
  10736. // String returns the string representation
  10737. func (s ListAttachedUserPoliciesOutput) String() string {
  10738. return awsutil.Prettify(s)
  10739. }
  10740. // GoString returns the string representation
  10741. func (s ListAttachedUserPoliciesOutput) GoString() string {
  10742. return s.String()
  10743. }
  10744. type ListEntitiesForPolicyInput struct {
  10745. _ struct{} `type:"structure"`
  10746. // The entity type to use for filtering the results.
  10747. //
  10748. // For example, when EntityFilter is Role, only the roles that are attached
  10749. // to the specified policy are returned. This parameter is optional. If it is
  10750. // not included, all attached entities (users, groups, and roles) are returned.
  10751. // The argument for this parameter must be one of the valid values listed below.
  10752. EntityFilter *string `type:"string" enum:"EntityType"`
  10753. // Use this parameter only when paginating results and only after you receive
  10754. // a response indicating that the results are truncated. Set it to the value
  10755. // of the Marker element in the response that you received to indicate where
  10756. // the next call should start.
  10757. Marker *string `min:"1" type:"string"`
  10758. // Use this only when paginating results to indicate the maximum number of items
  10759. // you want in the response. If additional items exist beyond the maximum you
  10760. // specify, the IsTruncated response element is true.
  10761. //
  10762. // This parameter is optional. If you do not include it, it defaults to 100.
  10763. // Note that IAM might return fewer results, even when there are more results
  10764. // available. In that case, the IsTruncated response element returns true and
  10765. // Marker contains a value to include in the subsequent call that tells the
  10766. // service where to continue from.
  10767. MaxItems *int64 `min:"1" type:"integer"`
  10768. // The path prefix for filtering the results. This parameter is optional. If
  10769. // it is not included, it defaults to a slash (/), listing all entities.
  10770. //
  10771. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10772. // a string of characters consisting of either a forward slash (/) by itself
  10773. // or a string that must begin and end with forward slashes, containing any
  10774. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  10775. // most punctuation characters, digits, and upper and lowercased letters.
  10776. PathPrefix *string `min:"1" type:"string"`
  10777. // The Amazon Resource Name (ARN) of the IAM policy for which you want the versions.
  10778. //
  10779. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  10780. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  10781. // in the AWS General Reference.
  10782. PolicyArn *string `min:"20" type:"string" required:"true"`
  10783. }
  10784. // String returns the string representation
  10785. func (s ListEntitiesForPolicyInput) String() string {
  10786. return awsutil.Prettify(s)
  10787. }
  10788. // GoString returns the string representation
  10789. func (s ListEntitiesForPolicyInput) GoString() string {
  10790. return s.String()
  10791. }
  10792. // Validate inspects the fields of the type to determine if they are valid.
  10793. func (s *ListEntitiesForPolicyInput) Validate() error {
  10794. invalidParams := request.ErrInvalidParams{Context: "ListEntitiesForPolicyInput"}
  10795. if s.Marker != nil && len(*s.Marker) < 1 {
  10796. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  10797. }
  10798. if s.MaxItems != nil && *s.MaxItems < 1 {
  10799. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  10800. }
  10801. if s.PathPrefix != nil && len(*s.PathPrefix) < 1 {
  10802. invalidParams.Add(request.NewErrParamMinLen("PathPrefix", 1))
  10803. }
  10804. if s.PolicyArn == nil {
  10805. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  10806. }
  10807. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  10808. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  10809. }
  10810. if invalidParams.Len() > 0 {
  10811. return invalidParams
  10812. }
  10813. return nil
  10814. }
  10815. // Contains the response to a successful ListEntitiesForPolicy request.
  10816. type ListEntitiesForPolicyOutput struct {
  10817. _ struct{} `type:"structure"`
  10818. // A flag that indicates whether there are more items to return. If your results
  10819. // were truncated, you can make a subsequent pagination request using the Marker
  10820. // request parameter to retrieve more items. Note that IAM might return fewer
  10821. // than the MaxItems number of results even when there are more results available.
  10822. // We recommend that you check IsTruncated after every call to ensure that you
  10823. // receive all of your results.
  10824. IsTruncated *bool `type:"boolean"`
  10825. // When IsTruncated is true, this element is present and contains the value
  10826. // to use for the Marker parameter in a subsequent pagination request.
  10827. Marker *string `min:"1" type:"string"`
  10828. // A list of IAM groups that the policy is attached to.
  10829. PolicyGroups []*PolicyGroup `type:"list"`
  10830. // A list of IAM roles that the policy is attached to.
  10831. PolicyRoles []*PolicyRole `type:"list"`
  10832. // A list of IAM users that the policy is attached to.
  10833. PolicyUsers []*PolicyUser `type:"list"`
  10834. }
  10835. // String returns the string representation
  10836. func (s ListEntitiesForPolicyOutput) String() string {
  10837. return awsutil.Prettify(s)
  10838. }
  10839. // GoString returns the string representation
  10840. func (s ListEntitiesForPolicyOutput) GoString() string {
  10841. return s.String()
  10842. }
  10843. type ListGroupPoliciesInput struct {
  10844. _ struct{} `type:"structure"`
  10845. // The name of the group to list policies for.
  10846. //
  10847. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10848. // a string of characters consisting of upper and lowercase alphanumeric characters
  10849. // with no spaces. You can also include any of the following characters: =,.@-
  10850. GroupName *string `min:"1" type:"string" required:"true"`
  10851. // Use this parameter only when paginating results and only after you receive
  10852. // a response indicating that the results are truncated. Set it to the value
  10853. // of the Marker element in the response that you received to indicate where
  10854. // the next call should start.
  10855. Marker *string `min:"1" type:"string"`
  10856. // Use this only when paginating results to indicate the maximum number of items
  10857. // you want in the response. If additional items exist beyond the maximum you
  10858. // specify, the IsTruncated response element is true.
  10859. //
  10860. // This parameter is optional. If you do not include it, it defaults to 100.
  10861. // Note that IAM might return fewer results, even when there are more results
  10862. // available. In that case, the IsTruncated response element returns true and
  10863. // Marker contains a value to include in the subsequent call that tells the
  10864. // service where to continue from.
  10865. MaxItems *int64 `min:"1" type:"integer"`
  10866. }
  10867. // String returns the string representation
  10868. func (s ListGroupPoliciesInput) String() string {
  10869. return awsutil.Prettify(s)
  10870. }
  10871. // GoString returns the string representation
  10872. func (s ListGroupPoliciesInput) GoString() string {
  10873. return s.String()
  10874. }
  10875. // Validate inspects the fields of the type to determine if they are valid.
  10876. func (s *ListGroupPoliciesInput) Validate() error {
  10877. invalidParams := request.ErrInvalidParams{Context: "ListGroupPoliciesInput"}
  10878. if s.GroupName == nil {
  10879. invalidParams.Add(request.NewErrParamRequired("GroupName"))
  10880. }
  10881. if s.GroupName != nil && len(*s.GroupName) < 1 {
  10882. invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  10883. }
  10884. if s.Marker != nil && len(*s.Marker) < 1 {
  10885. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  10886. }
  10887. if s.MaxItems != nil && *s.MaxItems < 1 {
  10888. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  10889. }
  10890. if invalidParams.Len() > 0 {
  10891. return invalidParams
  10892. }
  10893. return nil
  10894. }
  10895. // Contains the response to a successful ListGroupPolicies request.
  10896. type ListGroupPoliciesOutput struct {
  10897. _ struct{} `type:"structure"`
  10898. // A flag that indicates whether there are more items to return. If your results
  10899. // were truncated, you can make a subsequent pagination request using the Marker
  10900. // request parameter to retrieve more items. Note that IAM might return fewer
  10901. // than the MaxItems number of results even when there are more results available.
  10902. // We recommend that you check IsTruncated after every call to ensure that you
  10903. // receive all of your results.
  10904. IsTruncated *bool `type:"boolean"`
  10905. // When IsTruncated is true, this element is present and contains the value
  10906. // to use for the Marker parameter in a subsequent pagination request.
  10907. Marker *string `min:"1" type:"string"`
  10908. // A list of policy names.
  10909. PolicyNames []*string `type:"list" required:"true"`
  10910. }
  10911. // String returns the string representation
  10912. func (s ListGroupPoliciesOutput) String() string {
  10913. return awsutil.Prettify(s)
  10914. }
  10915. // GoString returns the string representation
  10916. func (s ListGroupPoliciesOutput) GoString() string {
  10917. return s.String()
  10918. }
  10919. type ListGroupsForUserInput struct {
  10920. _ struct{} `type:"structure"`
  10921. // Use this parameter only when paginating results and only after you receive
  10922. // a response indicating that the results are truncated. Set it to the value
  10923. // of the Marker element in the response that you received to indicate where
  10924. // the next call should start.
  10925. Marker *string `min:"1" type:"string"`
  10926. // Use this only when paginating results to indicate the maximum number of items
  10927. // you want in the response. If additional items exist beyond the maximum you
  10928. // specify, the IsTruncated response element is true.
  10929. //
  10930. // This parameter is optional. If you do not include it, it defaults to 100.
  10931. // Note that IAM might return fewer results, even when there are more results
  10932. // available. In that case, the IsTruncated response element returns true and
  10933. // Marker contains a value to include in the subsequent call that tells the
  10934. // service where to continue from.
  10935. MaxItems *int64 `min:"1" type:"integer"`
  10936. // The name of the user to list groups for.
  10937. //
  10938. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  10939. // a string of characters consisting of upper and lowercase alphanumeric characters
  10940. // with no spaces. You can also include any of the following characters: =,.@-
  10941. UserName *string `min:"1" type:"string" required:"true"`
  10942. }
  10943. // String returns the string representation
  10944. func (s ListGroupsForUserInput) String() string {
  10945. return awsutil.Prettify(s)
  10946. }
  10947. // GoString returns the string representation
  10948. func (s ListGroupsForUserInput) GoString() string {
  10949. return s.String()
  10950. }
  10951. // Validate inspects the fields of the type to determine if they are valid.
  10952. func (s *ListGroupsForUserInput) Validate() error {
  10953. invalidParams := request.ErrInvalidParams{Context: "ListGroupsForUserInput"}
  10954. if s.Marker != nil && len(*s.Marker) < 1 {
  10955. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  10956. }
  10957. if s.MaxItems != nil && *s.MaxItems < 1 {
  10958. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  10959. }
  10960. if s.UserName == nil {
  10961. invalidParams.Add(request.NewErrParamRequired("UserName"))
  10962. }
  10963. if s.UserName != nil && len(*s.UserName) < 1 {
  10964. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  10965. }
  10966. if invalidParams.Len() > 0 {
  10967. return invalidParams
  10968. }
  10969. return nil
  10970. }
  10971. // Contains the response to a successful ListGroupsForUser request.
  10972. type ListGroupsForUserOutput struct {
  10973. _ struct{} `type:"structure"`
  10974. // A list of groups.
  10975. Groups []*Group `type:"list" required:"true"`
  10976. // A flag that indicates whether there are more items to return. If your results
  10977. // were truncated, you can make a subsequent pagination request using the Marker
  10978. // request parameter to retrieve more items. Note that IAM might return fewer
  10979. // than the MaxItems number of results even when there are more results available.
  10980. // We recommend that you check IsTruncated after every call to ensure that you
  10981. // receive all of your results.
  10982. IsTruncated *bool `type:"boolean"`
  10983. // When IsTruncated is true, this element is present and contains the value
  10984. // to use for the Marker parameter in a subsequent pagination request.
  10985. Marker *string `min:"1" type:"string"`
  10986. }
  10987. // String returns the string representation
  10988. func (s ListGroupsForUserOutput) String() string {
  10989. return awsutil.Prettify(s)
  10990. }
  10991. // GoString returns the string representation
  10992. func (s ListGroupsForUserOutput) GoString() string {
  10993. return s.String()
  10994. }
  10995. type ListGroupsInput struct {
  10996. _ struct{} `type:"structure"`
  10997. // Use this parameter only when paginating results and only after you receive
  10998. // a response indicating that the results are truncated. Set it to the value
  10999. // of the Marker element in the response that you received to indicate where
  11000. // the next call should start.
  11001. Marker *string `min:"1" type:"string"`
  11002. // Use this only when paginating results to indicate the maximum number of items
  11003. // you want in the response. If additional items exist beyond the maximum you
  11004. // specify, the IsTruncated response element is true.
  11005. //
  11006. // This parameter is optional. If you do not include it, it defaults to 100.
  11007. // Note that IAM might return fewer results, even when there are more results
  11008. // available. In that case, the IsTruncated response element returns true and
  11009. // Marker contains a value to include in the subsequent call that tells the
  11010. // service where to continue from.
  11011. MaxItems *int64 `min:"1" type:"integer"`
  11012. // The path prefix for filtering the results. For example, the prefix /division_abc/subdivision_xyz/
  11013. // gets all groups whose path starts with /division_abc/subdivision_xyz/.
  11014. //
  11015. // This parameter is optional. If it is not included, it defaults to a slash
  11016. // (/), listing all groups. The regex pattern (http://wikipedia.org/wiki/regex)
  11017. // for this parameter is a string of characters consisting of either a forward
  11018. // slash (/) by itself or a string that must begin and end with forward slashes,
  11019. // containing any ASCII character from the ! (\u0021) thru the DEL character
  11020. // (\u007F), including most punctuation characters, digits, and upper and lowercased
  11021. // letters.
  11022. PathPrefix *string `min:"1" type:"string"`
  11023. }
  11024. // String returns the string representation
  11025. func (s ListGroupsInput) String() string {
  11026. return awsutil.Prettify(s)
  11027. }
  11028. // GoString returns the string representation
  11029. func (s ListGroupsInput) GoString() string {
  11030. return s.String()
  11031. }
  11032. // Validate inspects the fields of the type to determine if they are valid.
  11033. func (s *ListGroupsInput) Validate() error {
  11034. invalidParams := request.ErrInvalidParams{Context: "ListGroupsInput"}
  11035. if s.Marker != nil && len(*s.Marker) < 1 {
  11036. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  11037. }
  11038. if s.MaxItems != nil && *s.MaxItems < 1 {
  11039. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  11040. }
  11041. if s.PathPrefix != nil && len(*s.PathPrefix) < 1 {
  11042. invalidParams.Add(request.NewErrParamMinLen("PathPrefix", 1))
  11043. }
  11044. if invalidParams.Len() > 0 {
  11045. return invalidParams
  11046. }
  11047. return nil
  11048. }
  11049. // Contains the response to a successful ListGroups request.
  11050. type ListGroupsOutput struct {
  11051. _ struct{} `type:"structure"`
  11052. // A list of groups.
  11053. Groups []*Group `type:"list" required:"true"`
  11054. // A flag that indicates whether there are more items to return. If your results
  11055. // were truncated, you can make a subsequent pagination request using the Marker
  11056. // request parameter to retrieve more items. Note that IAM might return fewer
  11057. // than the MaxItems number of results even when there are more results available.
  11058. // We recommend that you check IsTruncated after every call to ensure that you
  11059. // receive all of your results.
  11060. IsTruncated *bool `type:"boolean"`
  11061. // When IsTruncated is true, this element is present and contains the value
  11062. // to use for the Marker parameter in a subsequent pagination request.
  11063. Marker *string `min:"1" type:"string"`
  11064. }
  11065. // String returns the string representation
  11066. func (s ListGroupsOutput) String() string {
  11067. return awsutil.Prettify(s)
  11068. }
  11069. // GoString returns the string representation
  11070. func (s ListGroupsOutput) GoString() string {
  11071. return s.String()
  11072. }
  11073. type ListInstanceProfilesForRoleInput struct {
  11074. _ struct{} `type:"structure"`
  11075. // Use this parameter only when paginating results and only after you receive
  11076. // a response indicating that the results are truncated. Set it to the value
  11077. // of the Marker element in the response that you received to indicate where
  11078. // the next call should start.
  11079. Marker *string `min:"1" type:"string"`
  11080. // Use this only when paginating results to indicate the maximum number of items
  11081. // you want in the response. If additional items exist beyond the maximum you
  11082. // specify, the IsTruncated response element is true.
  11083. //
  11084. // This parameter is optional. If you do not include it, it defaults to 100.
  11085. // Note that IAM might return fewer results, even when there are more results
  11086. // available. In that case, the IsTruncated response element returns true and
  11087. // Marker contains a value to include in the subsequent call that tells the
  11088. // service where to continue from.
  11089. MaxItems *int64 `min:"1" type:"integer"`
  11090. // The name of the role to list instance profiles for.
  11091. //
  11092. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  11093. // a string of characters consisting of upper and lowercase alphanumeric characters
  11094. // with no spaces. You can also include any of the following characters: =,.@-
  11095. RoleName *string `min:"1" type:"string" required:"true"`
  11096. }
  11097. // String returns the string representation
  11098. func (s ListInstanceProfilesForRoleInput) String() string {
  11099. return awsutil.Prettify(s)
  11100. }
  11101. // GoString returns the string representation
  11102. func (s ListInstanceProfilesForRoleInput) GoString() string {
  11103. return s.String()
  11104. }
  11105. // Validate inspects the fields of the type to determine if they are valid.
  11106. func (s *ListInstanceProfilesForRoleInput) Validate() error {
  11107. invalidParams := request.ErrInvalidParams{Context: "ListInstanceProfilesForRoleInput"}
  11108. if s.Marker != nil && len(*s.Marker) < 1 {
  11109. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  11110. }
  11111. if s.MaxItems != nil && *s.MaxItems < 1 {
  11112. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  11113. }
  11114. if s.RoleName == nil {
  11115. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  11116. }
  11117. if s.RoleName != nil && len(*s.RoleName) < 1 {
  11118. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  11119. }
  11120. if invalidParams.Len() > 0 {
  11121. return invalidParams
  11122. }
  11123. return nil
  11124. }
  11125. // Contains the response to a successful ListInstanceProfilesForRole request.
  11126. type ListInstanceProfilesForRoleOutput struct {
  11127. _ struct{} `type:"structure"`
  11128. // A list of instance profiles.
  11129. InstanceProfiles []*InstanceProfile `type:"list" required:"true"`
  11130. // A flag that indicates whether there are more items to return. If your results
  11131. // were truncated, you can make a subsequent pagination request using the Marker
  11132. // request parameter to retrieve more items. Note that IAM might return fewer
  11133. // than the MaxItems number of results even when there are more results available.
  11134. // We recommend that you check IsTruncated after every call to ensure that you
  11135. // receive all of your results.
  11136. IsTruncated *bool `type:"boolean"`
  11137. // When IsTruncated is true, this element is present and contains the value
  11138. // to use for the Marker parameter in a subsequent pagination request.
  11139. Marker *string `min:"1" type:"string"`
  11140. }
  11141. // String returns the string representation
  11142. func (s ListInstanceProfilesForRoleOutput) String() string {
  11143. return awsutil.Prettify(s)
  11144. }
  11145. // GoString returns the string representation
  11146. func (s ListInstanceProfilesForRoleOutput) GoString() string {
  11147. return s.String()
  11148. }
  11149. type ListInstanceProfilesInput struct {
  11150. _ struct{} `type:"structure"`
  11151. // Use this parameter only when paginating results and only after you receive
  11152. // a response indicating that the results are truncated. Set it to the value
  11153. // of the Marker element in the response that you received to indicate where
  11154. // the next call should start.
  11155. Marker *string `min:"1" type:"string"`
  11156. // Use this only when paginating results to indicate the maximum number of items
  11157. // you want in the response. If additional items exist beyond the maximum you
  11158. // specify, the IsTruncated response element is true.
  11159. //
  11160. // This parameter is optional. If you do not include it, it defaults to 100.
  11161. // Note that IAM might return fewer results, even when there are more results
  11162. // available. In that case, the IsTruncated response element returns true and
  11163. // Marker contains a value to include in the subsequent call that tells the
  11164. // service where to continue from.
  11165. MaxItems *int64 `min:"1" type:"integer"`
  11166. // The path prefix for filtering the results. For example, the prefix /application_abc/component_xyz/
  11167. // gets all instance profiles whose path starts with /application_abc/component_xyz/.
  11168. //
  11169. // This parameter is optional. If it is not included, it defaults to a slash
  11170. // (/), listing all instance profiles. The regex pattern (http://wikipedia.org/wiki/regex)
  11171. // for this parameter is a string of characters consisting of either a forward
  11172. // slash (/) by itself or a string that must begin and end with forward slashes,
  11173. // containing any ASCII character from the ! (\u0021) thru the DEL character
  11174. // (\u007F), including most punctuation characters, digits, and upper and lowercased
  11175. // letters.
  11176. PathPrefix *string `min:"1" type:"string"`
  11177. }
  11178. // String returns the string representation
  11179. func (s ListInstanceProfilesInput) String() string {
  11180. return awsutil.Prettify(s)
  11181. }
  11182. // GoString returns the string representation
  11183. func (s ListInstanceProfilesInput) GoString() string {
  11184. return s.String()
  11185. }
  11186. // Validate inspects the fields of the type to determine if they are valid.
  11187. func (s *ListInstanceProfilesInput) Validate() error {
  11188. invalidParams := request.ErrInvalidParams{Context: "ListInstanceProfilesInput"}
  11189. if s.Marker != nil && len(*s.Marker) < 1 {
  11190. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  11191. }
  11192. if s.MaxItems != nil && *s.MaxItems < 1 {
  11193. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  11194. }
  11195. if s.PathPrefix != nil && len(*s.PathPrefix) < 1 {
  11196. invalidParams.Add(request.NewErrParamMinLen("PathPrefix", 1))
  11197. }
  11198. if invalidParams.Len() > 0 {
  11199. return invalidParams
  11200. }
  11201. return nil
  11202. }
  11203. // Contains the response to a successful ListInstanceProfiles request.
  11204. type ListInstanceProfilesOutput struct {
  11205. _ struct{} `type:"structure"`
  11206. // A list of instance profiles.
  11207. InstanceProfiles []*InstanceProfile `type:"list" required:"true"`
  11208. // A flag that indicates whether there are more items to return. If your results
  11209. // were truncated, you can make a subsequent pagination request using the Marker
  11210. // request parameter to retrieve more items. Note that IAM might return fewer
  11211. // than the MaxItems number of results even when there are more results available.
  11212. // We recommend that you check IsTruncated after every call to ensure that you
  11213. // receive all of your results.
  11214. IsTruncated *bool `type:"boolean"`
  11215. // When IsTruncated is true, this element is present and contains the value
  11216. // to use for the Marker parameter in a subsequent pagination request.
  11217. Marker *string `min:"1" type:"string"`
  11218. }
  11219. // String returns the string representation
  11220. func (s ListInstanceProfilesOutput) String() string {
  11221. return awsutil.Prettify(s)
  11222. }
  11223. // GoString returns the string representation
  11224. func (s ListInstanceProfilesOutput) GoString() string {
  11225. return s.String()
  11226. }
  11227. type ListMFADevicesInput struct {
  11228. _ struct{} `type:"structure"`
  11229. // Use this parameter only when paginating results and only after you receive
  11230. // a response indicating that the results are truncated. Set it to the value
  11231. // of the Marker element in the response that you received to indicate where
  11232. // the next call should start.
  11233. Marker *string `min:"1" type:"string"`
  11234. // Use this only when paginating results to indicate the maximum number of items
  11235. // you want in the response. If additional items exist beyond the maximum you
  11236. // specify, the IsTruncated response element is true.
  11237. //
  11238. // This parameter is optional. If you do not include it, it defaults to 100.
  11239. // Note that IAM might return fewer results, even when there are more results
  11240. // available. In that case, the IsTruncated response element returns true and
  11241. // Marker contains a value to include in the subsequent call that tells the
  11242. // service where to continue from.
  11243. MaxItems *int64 `min:"1" type:"integer"`
  11244. // The name of the user whose MFA devices you want to list.
  11245. //
  11246. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  11247. // a string of characters consisting of upper and lowercase alphanumeric characters
  11248. // with no spaces. You can also include any of the following characters: =,.@-
  11249. UserName *string `min:"1" type:"string"`
  11250. }
  11251. // String returns the string representation
  11252. func (s ListMFADevicesInput) String() string {
  11253. return awsutil.Prettify(s)
  11254. }
  11255. // GoString returns the string representation
  11256. func (s ListMFADevicesInput) GoString() string {
  11257. return s.String()
  11258. }
  11259. // Validate inspects the fields of the type to determine if they are valid.
  11260. func (s *ListMFADevicesInput) Validate() error {
  11261. invalidParams := request.ErrInvalidParams{Context: "ListMFADevicesInput"}
  11262. if s.Marker != nil && len(*s.Marker) < 1 {
  11263. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  11264. }
  11265. if s.MaxItems != nil && *s.MaxItems < 1 {
  11266. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  11267. }
  11268. if s.UserName != nil && len(*s.UserName) < 1 {
  11269. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  11270. }
  11271. if invalidParams.Len() > 0 {
  11272. return invalidParams
  11273. }
  11274. return nil
  11275. }
  11276. // Contains the response to a successful ListMFADevices request.
  11277. type ListMFADevicesOutput struct {
  11278. _ struct{} `type:"structure"`
  11279. // A flag that indicates whether there are more items to return. If your results
  11280. // were truncated, you can make a subsequent pagination request using the Marker
  11281. // request parameter to retrieve more items. Note that IAM might return fewer
  11282. // than the MaxItems number of results even when there are more results available.
  11283. // We recommend that you check IsTruncated after every call to ensure that you
  11284. // receive all of your results.
  11285. IsTruncated *bool `type:"boolean"`
  11286. // A list of MFA devices.
  11287. MFADevices []*MFADevice `type:"list" required:"true"`
  11288. // When IsTruncated is true, this element is present and contains the value
  11289. // to use for the Marker parameter in a subsequent pagination request.
  11290. Marker *string `min:"1" type:"string"`
  11291. }
  11292. // String returns the string representation
  11293. func (s ListMFADevicesOutput) String() string {
  11294. return awsutil.Prettify(s)
  11295. }
  11296. // GoString returns the string representation
  11297. func (s ListMFADevicesOutput) GoString() string {
  11298. return s.String()
  11299. }
  11300. type ListOpenIDConnectProvidersInput struct {
  11301. _ struct{} `type:"structure"`
  11302. }
  11303. // String returns the string representation
  11304. func (s ListOpenIDConnectProvidersInput) String() string {
  11305. return awsutil.Prettify(s)
  11306. }
  11307. // GoString returns the string representation
  11308. func (s ListOpenIDConnectProvidersInput) GoString() string {
  11309. return s.String()
  11310. }
  11311. // Contains the response to a successful ListOpenIDConnectProviders request.
  11312. type ListOpenIDConnectProvidersOutput struct {
  11313. _ struct{} `type:"structure"`
  11314. // The list of IAM OIDC provider resource objects defined in the AWS account.
  11315. OpenIDConnectProviderList []*OpenIDConnectProviderListEntry `type:"list"`
  11316. }
  11317. // String returns the string representation
  11318. func (s ListOpenIDConnectProvidersOutput) String() string {
  11319. return awsutil.Prettify(s)
  11320. }
  11321. // GoString returns the string representation
  11322. func (s ListOpenIDConnectProvidersOutput) GoString() string {
  11323. return s.String()
  11324. }
  11325. type ListPoliciesInput struct {
  11326. _ struct{} `type:"structure"`
  11327. // Use this parameter only when paginating results and only after you receive
  11328. // a response indicating that the results are truncated. Set it to the value
  11329. // of the Marker element in the response that you received to indicate where
  11330. // the next call should start.
  11331. Marker *string `min:"1" type:"string"`
  11332. // Use this only when paginating results to indicate the maximum number of items
  11333. // you want in the response. If additional items exist beyond the maximum you
  11334. // specify, the IsTruncated response element is true.
  11335. //
  11336. // This parameter is optional. If you do not include it, it defaults to 100.
  11337. // Note that IAM might return fewer results, even when there are more results
  11338. // available. In that case, the IsTruncated response element returns true and
  11339. // Marker contains a value to include in the subsequent call that tells the
  11340. // service where to continue from.
  11341. MaxItems *int64 `min:"1" type:"integer"`
  11342. // A flag to filter the results to only the attached policies.
  11343. //
  11344. // When OnlyAttached is true, the returned list contains only the policies
  11345. // that are attached to an IAM user, group, or role. When OnlyAttached is false,
  11346. // or when the parameter is not included, all policies are returned.
  11347. OnlyAttached *bool `type:"boolean"`
  11348. // The path prefix for filtering the results. This parameter is optional. If
  11349. // it is not included, it defaults to a slash (/), listing all policies. The
  11350. // regex pattern (http://wikipedia.org/wiki/regex) for this parameter is a string
  11351. // of characters consisting of either a forward slash (/) by itself or a string
  11352. // that must begin and end with forward slashes, containing any ASCII character
  11353. // from the ! (\u0021) thru the DEL character (\u007F), including most punctuation
  11354. // characters, digits, and upper and lowercased letters.
  11355. PathPrefix *string `type:"string"`
  11356. // The scope to use for filtering the results.
  11357. //
  11358. // To list only AWS managed policies, set Scope to AWS. To list only the customer
  11359. // managed policies in your AWS account, set Scope to Local.
  11360. //
  11361. // This parameter is optional. If it is not included, or if it is set to All,
  11362. // all policies are returned.
  11363. Scope *string `type:"string" enum:"policyScopeType"`
  11364. }
  11365. // String returns the string representation
  11366. func (s ListPoliciesInput) String() string {
  11367. return awsutil.Prettify(s)
  11368. }
  11369. // GoString returns the string representation
  11370. func (s ListPoliciesInput) GoString() string {
  11371. return s.String()
  11372. }
  11373. // Validate inspects the fields of the type to determine if they are valid.
  11374. func (s *ListPoliciesInput) Validate() error {
  11375. invalidParams := request.ErrInvalidParams{Context: "ListPoliciesInput"}
  11376. if s.Marker != nil && len(*s.Marker) < 1 {
  11377. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  11378. }
  11379. if s.MaxItems != nil && *s.MaxItems < 1 {
  11380. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  11381. }
  11382. if invalidParams.Len() > 0 {
  11383. return invalidParams
  11384. }
  11385. return nil
  11386. }
  11387. // Contains the response to a successful ListPolicies request.
  11388. type ListPoliciesOutput struct {
  11389. _ struct{} `type:"structure"`
  11390. // A flag that indicates whether there are more items to return. If your results
  11391. // were truncated, you can make a subsequent pagination request using the Marker
  11392. // request parameter to retrieve more items. Note that IAM might return fewer
  11393. // than the MaxItems number of results even when there are more results available.
  11394. // We recommend that you check IsTruncated after every call to ensure that you
  11395. // receive all of your results.
  11396. IsTruncated *bool `type:"boolean"`
  11397. // When IsTruncated is true, this element is present and contains the value
  11398. // to use for the Marker parameter in a subsequent pagination request.
  11399. Marker *string `min:"1" type:"string"`
  11400. // A list of policies.
  11401. Policies []*Policy `type:"list"`
  11402. }
  11403. // String returns the string representation
  11404. func (s ListPoliciesOutput) String() string {
  11405. return awsutil.Prettify(s)
  11406. }
  11407. // GoString returns the string representation
  11408. func (s ListPoliciesOutput) GoString() string {
  11409. return s.String()
  11410. }
  11411. type ListPolicyVersionsInput struct {
  11412. _ struct{} `type:"structure"`
  11413. // Use this parameter only when paginating results and only after you receive
  11414. // a response indicating that the results are truncated. Set it to the value
  11415. // of the Marker element in the response that you received to indicate where
  11416. // the next call should start.
  11417. Marker *string `min:"1" type:"string"`
  11418. // Use this only when paginating results to indicate the maximum number of items
  11419. // you want in the response. If additional items exist beyond the maximum you
  11420. // specify, the IsTruncated response element is true.
  11421. //
  11422. // This parameter is optional. If you do not include it, it defaults to 100.
  11423. // Note that IAM might return fewer results, even when there are more results
  11424. // available. In that case, the IsTruncated response element returns true and
  11425. // Marker contains a value to include in the subsequent call that tells the
  11426. // service where to continue from.
  11427. MaxItems *int64 `min:"1" type:"integer"`
  11428. // The Amazon Resource Name (ARN) of the IAM policy for which you want the versions.
  11429. //
  11430. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  11431. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  11432. // in the AWS General Reference.
  11433. PolicyArn *string `min:"20" type:"string" required:"true"`
  11434. }
  11435. // String returns the string representation
  11436. func (s ListPolicyVersionsInput) String() string {
  11437. return awsutil.Prettify(s)
  11438. }
  11439. // GoString returns the string representation
  11440. func (s ListPolicyVersionsInput) GoString() string {
  11441. return s.String()
  11442. }
  11443. // Validate inspects the fields of the type to determine if they are valid.
  11444. func (s *ListPolicyVersionsInput) Validate() error {
  11445. invalidParams := request.ErrInvalidParams{Context: "ListPolicyVersionsInput"}
  11446. if s.Marker != nil && len(*s.Marker) < 1 {
  11447. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  11448. }
  11449. if s.MaxItems != nil && *s.MaxItems < 1 {
  11450. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  11451. }
  11452. if s.PolicyArn == nil {
  11453. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  11454. }
  11455. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  11456. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  11457. }
  11458. if invalidParams.Len() > 0 {
  11459. return invalidParams
  11460. }
  11461. return nil
  11462. }
  11463. // Contains the response to a successful ListPolicyVersions request.
  11464. type ListPolicyVersionsOutput struct {
  11465. _ struct{} `type:"structure"`
  11466. // A flag that indicates whether there are more items to return. If your results
  11467. // were truncated, you can make a subsequent pagination request using the Marker
  11468. // request parameter to retrieve more items. Note that IAM might return fewer
  11469. // than the MaxItems number of results even when there are more results available.
  11470. // We recommend that you check IsTruncated after every call to ensure that you
  11471. // receive all of your results.
  11472. IsTruncated *bool `type:"boolean"`
  11473. // When IsTruncated is true, this element is present and contains the value
  11474. // to use for the Marker parameter in a subsequent pagination request.
  11475. Marker *string `min:"1" type:"string"`
  11476. // A list of policy versions.
  11477. //
  11478. // For more information about managed policy versions, see Versioning for Managed
  11479. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
  11480. // in the IAM User Guide.
  11481. Versions []*PolicyVersion `type:"list"`
  11482. }
  11483. // String returns the string representation
  11484. func (s ListPolicyVersionsOutput) String() string {
  11485. return awsutil.Prettify(s)
  11486. }
  11487. // GoString returns the string representation
  11488. func (s ListPolicyVersionsOutput) GoString() string {
  11489. return s.String()
  11490. }
  11491. type ListRolePoliciesInput struct {
  11492. _ struct{} `type:"structure"`
  11493. // Use this parameter only when paginating results and only after you receive
  11494. // a response indicating that the results are truncated. Set it to the value
  11495. // of the Marker element in the response that you received to indicate where
  11496. // the next call should start.
  11497. Marker *string `min:"1" type:"string"`
  11498. // Use this only when paginating results to indicate the maximum number of items
  11499. // you want in the response. If additional items exist beyond the maximum you
  11500. // specify, the IsTruncated response element is true.
  11501. //
  11502. // This parameter is optional. If you do not include it, it defaults to 100.
  11503. // Note that IAM might return fewer results, even when there are more results
  11504. // available. In that case, the IsTruncated response element returns true and
  11505. // Marker contains a value to include in the subsequent call that tells the
  11506. // service where to continue from.
  11507. MaxItems *int64 `min:"1" type:"integer"`
  11508. // The name of the role to list policies for.
  11509. //
  11510. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  11511. // a string of characters consisting of upper and lowercase alphanumeric characters
  11512. // with no spaces. You can also include any of the following characters: =,.@-
  11513. RoleName *string `min:"1" type:"string" required:"true"`
  11514. }
  11515. // String returns the string representation
  11516. func (s ListRolePoliciesInput) String() string {
  11517. return awsutil.Prettify(s)
  11518. }
  11519. // GoString returns the string representation
  11520. func (s ListRolePoliciesInput) GoString() string {
  11521. return s.String()
  11522. }
  11523. // Validate inspects the fields of the type to determine if they are valid.
  11524. func (s *ListRolePoliciesInput) Validate() error {
  11525. invalidParams := request.ErrInvalidParams{Context: "ListRolePoliciesInput"}
  11526. if s.Marker != nil && len(*s.Marker) < 1 {
  11527. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  11528. }
  11529. if s.MaxItems != nil && *s.MaxItems < 1 {
  11530. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  11531. }
  11532. if s.RoleName == nil {
  11533. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  11534. }
  11535. if s.RoleName != nil && len(*s.RoleName) < 1 {
  11536. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  11537. }
  11538. if invalidParams.Len() > 0 {
  11539. return invalidParams
  11540. }
  11541. return nil
  11542. }
  11543. // Contains the response to a successful ListRolePolicies request.
  11544. type ListRolePoliciesOutput struct {
  11545. _ struct{} `type:"structure"`
  11546. // A flag that indicates whether there are more items to return. If your results
  11547. // were truncated, you can make a subsequent pagination request using the Marker
  11548. // request parameter to retrieve more items. Note that IAM might return fewer
  11549. // than the MaxItems number of results even when there are more results available.
  11550. // We recommend that you check IsTruncated after every call to ensure that you
  11551. // receive all of your results.
  11552. IsTruncated *bool `type:"boolean"`
  11553. // When IsTruncated is true, this element is present and contains the value
  11554. // to use for the Marker parameter in a subsequent pagination request.
  11555. Marker *string `min:"1" type:"string"`
  11556. // A list of policy names.
  11557. PolicyNames []*string `type:"list" required:"true"`
  11558. }
  11559. // String returns the string representation
  11560. func (s ListRolePoliciesOutput) String() string {
  11561. return awsutil.Prettify(s)
  11562. }
  11563. // GoString returns the string representation
  11564. func (s ListRolePoliciesOutput) GoString() string {
  11565. return s.String()
  11566. }
  11567. type ListRolesInput struct {
  11568. _ struct{} `type:"structure"`
  11569. // Use this parameter only when paginating results and only after you receive
  11570. // a response indicating that the results are truncated. Set it to the value
  11571. // of the Marker element in the response that you received to indicate where
  11572. // the next call should start.
  11573. Marker *string `min:"1" type:"string"`
  11574. // Use this only when paginating results to indicate the maximum number of items
  11575. // you want in the response. If additional items exist beyond the maximum you
  11576. // specify, the IsTruncated response element is true.
  11577. //
  11578. // This parameter is optional. If you do not include it, it defaults to 100.
  11579. // Note that IAM might return fewer results, even when there are more results
  11580. // available. In that case, the IsTruncated response element returns true and
  11581. // Marker contains a value to include in the subsequent call that tells the
  11582. // service where to continue from.
  11583. MaxItems *int64 `min:"1" type:"integer"`
  11584. // The path prefix for filtering the results. For example, the prefix /application_abc/component_xyz/
  11585. // gets all roles whose path starts with /application_abc/component_xyz/.
  11586. //
  11587. // This parameter is optional. If it is not included, it defaults to a slash
  11588. // (/), listing all roles. The regex pattern (http://wikipedia.org/wiki/regex)
  11589. // for this parameter is a string of characters consisting of either a forward
  11590. // slash (/) by itself or a string that must begin and end with forward slashes,
  11591. // containing any ASCII character from the ! (\u0021) thru the DEL character
  11592. // (\u007F), including most punctuation characters, digits, and upper and lowercased
  11593. // letters.
  11594. PathPrefix *string `min:"1" type:"string"`
  11595. }
  11596. // String returns the string representation
  11597. func (s ListRolesInput) String() string {
  11598. return awsutil.Prettify(s)
  11599. }
  11600. // GoString returns the string representation
  11601. func (s ListRolesInput) GoString() string {
  11602. return s.String()
  11603. }
  11604. // Validate inspects the fields of the type to determine if they are valid.
  11605. func (s *ListRolesInput) Validate() error {
  11606. invalidParams := request.ErrInvalidParams{Context: "ListRolesInput"}
  11607. if s.Marker != nil && len(*s.Marker) < 1 {
  11608. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  11609. }
  11610. if s.MaxItems != nil && *s.MaxItems < 1 {
  11611. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  11612. }
  11613. if s.PathPrefix != nil && len(*s.PathPrefix) < 1 {
  11614. invalidParams.Add(request.NewErrParamMinLen("PathPrefix", 1))
  11615. }
  11616. if invalidParams.Len() > 0 {
  11617. return invalidParams
  11618. }
  11619. return nil
  11620. }
  11621. // Contains the response to a successful ListRoles request.
  11622. type ListRolesOutput struct {
  11623. _ struct{} `type:"structure"`
  11624. // A flag that indicates whether there are more items to return. If your results
  11625. // were truncated, you can make a subsequent pagination request using the Marker
  11626. // request parameter to retrieve more items. Note that IAM might return fewer
  11627. // than the MaxItems number of results even when there are more results available.
  11628. // We recommend that you check IsTruncated after every call to ensure that you
  11629. // receive all of your results.
  11630. IsTruncated *bool `type:"boolean"`
  11631. // When IsTruncated is true, this element is present and contains the value
  11632. // to use for the Marker parameter in a subsequent pagination request.
  11633. Marker *string `min:"1" type:"string"`
  11634. // A list of roles.
  11635. Roles []*Role `type:"list" required:"true"`
  11636. }
  11637. // String returns the string representation
  11638. func (s ListRolesOutput) String() string {
  11639. return awsutil.Prettify(s)
  11640. }
  11641. // GoString returns the string representation
  11642. func (s ListRolesOutput) GoString() string {
  11643. return s.String()
  11644. }
  11645. type ListSAMLProvidersInput struct {
  11646. _ struct{} `type:"structure"`
  11647. }
  11648. // String returns the string representation
  11649. func (s ListSAMLProvidersInput) String() string {
  11650. return awsutil.Prettify(s)
  11651. }
  11652. // GoString returns the string representation
  11653. func (s ListSAMLProvidersInput) GoString() string {
  11654. return s.String()
  11655. }
  11656. // Contains the response to a successful ListSAMLProviders request.
  11657. type ListSAMLProvidersOutput struct {
  11658. _ struct{} `type:"structure"`
  11659. // The list of SAML provider resource objects defined in IAM for this AWS account.
  11660. SAMLProviderList []*SAMLProviderListEntry `type:"list"`
  11661. }
  11662. // String returns the string representation
  11663. func (s ListSAMLProvidersOutput) String() string {
  11664. return awsutil.Prettify(s)
  11665. }
  11666. // GoString returns the string representation
  11667. func (s ListSAMLProvidersOutput) GoString() string {
  11668. return s.String()
  11669. }
  11670. type ListSSHPublicKeysInput struct {
  11671. _ struct{} `type:"structure"`
  11672. // Use this parameter only when paginating results and only after you receive
  11673. // a response indicating that the results are truncated. Set it to the value
  11674. // of the Marker element in the response that you received to indicate where
  11675. // the next call should start.
  11676. Marker *string `min:"1" type:"string"`
  11677. // Use this only when paginating results to indicate the maximum number of items
  11678. // you want in the response. If additional items exist beyond the maximum you
  11679. // specify, the IsTruncated response element is true.
  11680. //
  11681. // This parameter is optional. If you do not include it, it defaults to 100.
  11682. // Note that IAM might return fewer results, even when there are more results
  11683. // available. In that case, the IsTruncated response element returns true and
  11684. // Marker contains a value to include in the subsequent call that tells the
  11685. // service where to continue from.
  11686. MaxItems *int64 `min:"1" type:"integer"`
  11687. // The name of the IAM user to list SSH public keys for. If none is specified,
  11688. // the UserName field is determined implicitly based on the AWS access key used
  11689. // to sign the request.
  11690. //
  11691. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  11692. // a string of characters consisting of upper and lowercase alphanumeric characters
  11693. // with no spaces. You can also include any of the following characters: =,.@-
  11694. UserName *string `min:"1" type:"string"`
  11695. }
  11696. // String returns the string representation
  11697. func (s ListSSHPublicKeysInput) String() string {
  11698. return awsutil.Prettify(s)
  11699. }
  11700. // GoString returns the string representation
  11701. func (s ListSSHPublicKeysInput) GoString() string {
  11702. return s.String()
  11703. }
  11704. // Validate inspects the fields of the type to determine if they are valid.
  11705. func (s *ListSSHPublicKeysInput) Validate() error {
  11706. invalidParams := request.ErrInvalidParams{Context: "ListSSHPublicKeysInput"}
  11707. if s.Marker != nil && len(*s.Marker) < 1 {
  11708. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  11709. }
  11710. if s.MaxItems != nil && *s.MaxItems < 1 {
  11711. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  11712. }
  11713. if s.UserName != nil && len(*s.UserName) < 1 {
  11714. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  11715. }
  11716. if invalidParams.Len() > 0 {
  11717. return invalidParams
  11718. }
  11719. return nil
  11720. }
  11721. // Contains the response to a successful ListSSHPublicKeys request.
  11722. type ListSSHPublicKeysOutput struct {
  11723. _ struct{} `type:"structure"`
  11724. // A flag that indicates whether there are more items to return. If your results
  11725. // were truncated, you can make a subsequent pagination request using the Marker
  11726. // request parameter to retrieve more items. Note that IAM might return fewer
  11727. // than the MaxItems number of results even when there are more results available.
  11728. // We recommend that you check IsTruncated after every call to ensure that you
  11729. // receive all of your results.
  11730. IsTruncated *bool `type:"boolean"`
  11731. // When IsTruncated is true, this element is present and contains the value
  11732. // to use for the Marker parameter in a subsequent pagination request.
  11733. Marker *string `min:"1" type:"string"`
  11734. // A list of the SSH public keys assigned to IAM user.
  11735. SSHPublicKeys []*SSHPublicKeyMetadata `type:"list"`
  11736. }
  11737. // String returns the string representation
  11738. func (s ListSSHPublicKeysOutput) String() string {
  11739. return awsutil.Prettify(s)
  11740. }
  11741. // GoString returns the string representation
  11742. func (s ListSSHPublicKeysOutput) GoString() string {
  11743. return s.String()
  11744. }
  11745. type ListServerCertificatesInput struct {
  11746. _ struct{} `type:"structure"`
  11747. // Use this parameter only when paginating results and only after you receive
  11748. // a response indicating that the results are truncated. Set it to the value
  11749. // of the Marker element in the response that you received to indicate where
  11750. // the next call should start.
  11751. Marker *string `min:"1" type:"string"`
  11752. // Use this only when paginating results to indicate the maximum number of items
  11753. // you want in the response. If additional items exist beyond the maximum you
  11754. // specify, the IsTruncated response element is true.
  11755. //
  11756. // This parameter is optional. If you do not include it, it defaults to 100.
  11757. // Note that IAM might return fewer results, even when there are more results
  11758. // available. In that case, the IsTruncated response element returns true and
  11759. // Marker contains a value to include in the subsequent call that tells the
  11760. // service where to continue from.
  11761. MaxItems *int64 `min:"1" type:"integer"`
  11762. // The path prefix for filtering the results. For example: /company/servercerts
  11763. // would get all server certificates for which the path starts with /company/servercerts.
  11764. //
  11765. // This parameter is optional. If it is not included, it defaults to a slash
  11766. // (/), listing all server certificates. The regex pattern (http://wikipedia.org/wiki/regex)
  11767. // for this parameter is a string of characters consisting of either a forward
  11768. // slash (/) by itself or a string that must begin and end with forward slashes,
  11769. // containing any ASCII character from the ! (\u0021) thru the DEL character
  11770. // (\u007F), including most punctuation characters, digits, and upper and lowercased
  11771. // letters.
  11772. PathPrefix *string `min:"1" type:"string"`
  11773. }
  11774. // String returns the string representation
  11775. func (s ListServerCertificatesInput) String() string {
  11776. return awsutil.Prettify(s)
  11777. }
  11778. // GoString returns the string representation
  11779. func (s ListServerCertificatesInput) GoString() string {
  11780. return s.String()
  11781. }
  11782. // Validate inspects the fields of the type to determine if they are valid.
  11783. func (s *ListServerCertificatesInput) Validate() error {
  11784. invalidParams := request.ErrInvalidParams{Context: "ListServerCertificatesInput"}
  11785. if s.Marker != nil && len(*s.Marker) < 1 {
  11786. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  11787. }
  11788. if s.MaxItems != nil && *s.MaxItems < 1 {
  11789. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  11790. }
  11791. if s.PathPrefix != nil && len(*s.PathPrefix) < 1 {
  11792. invalidParams.Add(request.NewErrParamMinLen("PathPrefix", 1))
  11793. }
  11794. if invalidParams.Len() > 0 {
  11795. return invalidParams
  11796. }
  11797. return nil
  11798. }
  11799. // Contains the response to a successful ListServerCertificates request.
  11800. type ListServerCertificatesOutput struct {
  11801. _ struct{} `type:"structure"`
  11802. // A flag that indicates whether there are more items to return. If your results
  11803. // were truncated, you can make a subsequent pagination request using the Marker
  11804. // request parameter to retrieve more items. Note that IAM might return fewer
  11805. // than the MaxItems number of results even when there are more results available.
  11806. // We recommend that you check IsTruncated after every call to ensure that you
  11807. // receive all of your results.
  11808. IsTruncated *bool `type:"boolean"`
  11809. // When IsTruncated is true, this element is present and contains the value
  11810. // to use for the Marker parameter in a subsequent pagination request.
  11811. Marker *string `min:"1" type:"string"`
  11812. // A list of server certificates.
  11813. ServerCertificateMetadataList []*ServerCertificateMetadata `type:"list" required:"true"`
  11814. }
  11815. // String returns the string representation
  11816. func (s ListServerCertificatesOutput) String() string {
  11817. return awsutil.Prettify(s)
  11818. }
  11819. // GoString returns the string representation
  11820. func (s ListServerCertificatesOutput) GoString() string {
  11821. return s.String()
  11822. }
  11823. type ListSigningCertificatesInput struct {
  11824. _ struct{} `type:"structure"`
  11825. // Use this parameter only when paginating results and only after you receive
  11826. // a response indicating that the results are truncated. Set it to the value
  11827. // of the Marker element in the response that you received to indicate where
  11828. // the next call should start.
  11829. Marker *string `min:"1" type:"string"`
  11830. // Use this only when paginating results to indicate the maximum number of items
  11831. // you want in the response. If additional items exist beyond the maximum you
  11832. // specify, the IsTruncated response element is true.
  11833. //
  11834. // This parameter is optional. If you do not include it, it defaults to 100.
  11835. // Note that IAM might return fewer results, even when there are more results
  11836. // available. In that case, the IsTruncated response element returns true and
  11837. // Marker contains a value to include in the subsequent call that tells the
  11838. // service where to continue from.
  11839. MaxItems *int64 `min:"1" type:"integer"`
  11840. // The name of the IAM user whose signing certificates you want to examine.
  11841. //
  11842. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  11843. // a string of characters consisting of upper and lowercase alphanumeric characters
  11844. // with no spaces. You can also include any of the following characters: =,.@-
  11845. UserName *string `min:"1" type:"string"`
  11846. }
  11847. // String returns the string representation
  11848. func (s ListSigningCertificatesInput) String() string {
  11849. return awsutil.Prettify(s)
  11850. }
  11851. // GoString returns the string representation
  11852. func (s ListSigningCertificatesInput) GoString() string {
  11853. return s.String()
  11854. }
  11855. // Validate inspects the fields of the type to determine if they are valid.
  11856. func (s *ListSigningCertificatesInput) Validate() error {
  11857. invalidParams := request.ErrInvalidParams{Context: "ListSigningCertificatesInput"}
  11858. if s.Marker != nil && len(*s.Marker) < 1 {
  11859. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  11860. }
  11861. if s.MaxItems != nil && *s.MaxItems < 1 {
  11862. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  11863. }
  11864. if s.UserName != nil && len(*s.UserName) < 1 {
  11865. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  11866. }
  11867. if invalidParams.Len() > 0 {
  11868. return invalidParams
  11869. }
  11870. return nil
  11871. }
  11872. // Contains the response to a successful ListSigningCertificates request.
  11873. type ListSigningCertificatesOutput struct {
  11874. _ struct{} `type:"structure"`
  11875. // A list of the user's signing certificate information.
  11876. Certificates []*SigningCertificate `type:"list" required:"true"`
  11877. // A flag that indicates whether there are more items to return. If your results
  11878. // were truncated, you can make a subsequent pagination request using the Marker
  11879. // request parameter to retrieve more items. Note that IAM might return fewer
  11880. // than the MaxItems number of results even when there are more results available.
  11881. // We recommend that you check IsTruncated after every call to ensure that you
  11882. // receive all of your results.
  11883. IsTruncated *bool `type:"boolean"`
  11884. // When IsTruncated is true, this element is present and contains the value
  11885. // to use for the Marker parameter in a subsequent pagination request.
  11886. Marker *string `min:"1" type:"string"`
  11887. }
  11888. // String returns the string representation
  11889. func (s ListSigningCertificatesOutput) String() string {
  11890. return awsutil.Prettify(s)
  11891. }
  11892. // GoString returns the string representation
  11893. func (s ListSigningCertificatesOutput) GoString() string {
  11894. return s.String()
  11895. }
  11896. type ListUserPoliciesInput struct {
  11897. _ struct{} `type:"structure"`
  11898. // Use this parameter only when paginating results and only after you receive
  11899. // a response indicating that the results are truncated. Set it to the value
  11900. // of the Marker element in the response that you received to indicate where
  11901. // the next call should start.
  11902. Marker *string `min:"1" type:"string"`
  11903. // Use this only when paginating results to indicate the maximum number of items
  11904. // you want in the response. If additional items exist beyond the maximum you
  11905. // specify, the IsTruncated response element is true.
  11906. //
  11907. // This parameter is optional. If you do not include it, it defaults to 100.
  11908. // Note that IAM might return fewer results, even when there are more results
  11909. // available. In that case, the IsTruncated response element returns true and
  11910. // Marker contains a value to include in the subsequent call that tells the
  11911. // service where to continue from.
  11912. MaxItems *int64 `min:"1" type:"integer"`
  11913. // The name of the user to list policies for.
  11914. //
  11915. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  11916. // a string of characters consisting of upper and lowercase alphanumeric characters
  11917. // with no spaces. You can also include any of the following characters: =,.@-
  11918. UserName *string `min:"1" type:"string" required:"true"`
  11919. }
  11920. // String returns the string representation
  11921. func (s ListUserPoliciesInput) String() string {
  11922. return awsutil.Prettify(s)
  11923. }
  11924. // GoString returns the string representation
  11925. func (s ListUserPoliciesInput) GoString() string {
  11926. return s.String()
  11927. }
  11928. // Validate inspects the fields of the type to determine if they are valid.
  11929. func (s *ListUserPoliciesInput) Validate() error {
  11930. invalidParams := request.ErrInvalidParams{Context: "ListUserPoliciesInput"}
  11931. if s.Marker != nil && len(*s.Marker) < 1 {
  11932. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  11933. }
  11934. if s.MaxItems != nil && *s.MaxItems < 1 {
  11935. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  11936. }
  11937. if s.UserName == nil {
  11938. invalidParams.Add(request.NewErrParamRequired("UserName"))
  11939. }
  11940. if s.UserName != nil && len(*s.UserName) < 1 {
  11941. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  11942. }
  11943. if invalidParams.Len() > 0 {
  11944. return invalidParams
  11945. }
  11946. return nil
  11947. }
  11948. // Contains the response to a successful ListUserPolicies request.
  11949. type ListUserPoliciesOutput struct {
  11950. _ struct{} `type:"structure"`
  11951. // A flag that indicates whether there are more items to return. If your results
  11952. // were truncated, you can make a subsequent pagination request using the Marker
  11953. // request parameter to retrieve more items. Note that IAM might return fewer
  11954. // than the MaxItems number of results even when there are more results available.
  11955. // We recommend that you check IsTruncated after every call to ensure that you
  11956. // receive all of your results.
  11957. IsTruncated *bool `type:"boolean"`
  11958. // When IsTruncated is true, this element is present and contains the value
  11959. // to use for the Marker parameter in a subsequent pagination request.
  11960. Marker *string `min:"1" type:"string"`
  11961. // A list of policy names.
  11962. PolicyNames []*string `type:"list" required:"true"`
  11963. }
  11964. // String returns the string representation
  11965. func (s ListUserPoliciesOutput) String() string {
  11966. return awsutil.Prettify(s)
  11967. }
  11968. // GoString returns the string representation
  11969. func (s ListUserPoliciesOutput) GoString() string {
  11970. return s.String()
  11971. }
  11972. type ListUsersInput struct {
  11973. _ struct{} `type:"structure"`
  11974. // Use this parameter only when paginating results and only after you receive
  11975. // a response indicating that the results are truncated. Set it to the value
  11976. // of the Marker element in the response that you received to indicate where
  11977. // the next call should start.
  11978. Marker *string `min:"1" type:"string"`
  11979. // Use this only when paginating results to indicate the maximum number of items
  11980. // you want in the response. If additional items exist beyond the maximum you
  11981. // specify, the IsTruncated response element is true.
  11982. //
  11983. // This parameter is optional. If you do not include it, it defaults to 100.
  11984. // Note that IAM might return fewer results, even when there are more results
  11985. // available. In that case, the IsTruncated response element returns true and
  11986. // Marker contains a value to include in the subsequent call that tells the
  11987. // service where to continue from.
  11988. MaxItems *int64 `min:"1" type:"integer"`
  11989. // The path prefix for filtering the results. For example: /division_abc/subdivision_xyz/,
  11990. // which would get all user names whose path starts with /division_abc/subdivision_xyz/.
  11991. //
  11992. // This parameter is optional. If it is not included, it defaults to a slash
  11993. // (/), listing all user names. The regex pattern (http://wikipedia.org/wiki/regex)
  11994. // for this parameter is a string of characters consisting of either a forward
  11995. // slash (/) by itself or a string that must begin and end with forward slashes,
  11996. // containing any ASCII character from the ! (\u0021) thru the DEL character
  11997. // (\u007F), including most punctuation characters, digits, and upper and lowercased
  11998. // letters.
  11999. PathPrefix *string `min:"1" type:"string"`
  12000. }
  12001. // String returns the string representation
  12002. func (s ListUsersInput) String() string {
  12003. return awsutil.Prettify(s)
  12004. }
  12005. // GoString returns the string representation
  12006. func (s ListUsersInput) GoString() string {
  12007. return s.String()
  12008. }
  12009. // Validate inspects the fields of the type to determine if they are valid.
  12010. func (s *ListUsersInput) Validate() error {
  12011. invalidParams := request.ErrInvalidParams{Context: "ListUsersInput"}
  12012. if s.Marker != nil && len(*s.Marker) < 1 {
  12013. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  12014. }
  12015. if s.MaxItems != nil && *s.MaxItems < 1 {
  12016. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  12017. }
  12018. if s.PathPrefix != nil && len(*s.PathPrefix) < 1 {
  12019. invalidParams.Add(request.NewErrParamMinLen("PathPrefix", 1))
  12020. }
  12021. if invalidParams.Len() > 0 {
  12022. return invalidParams
  12023. }
  12024. return nil
  12025. }
  12026. // Contains the response to a successful ListUsers request.
  12027. type ListUsersOutput struct {
  12028. _ struct{} `type:"structure"`
  12029. // A flag that indicates whether there are more items to return. If your results
  12030. // were truncated, you can make a subsequent pagination request using the Marker
  12031. // request parameter to retrieve more items. Note that IAM might return fewer
  12032. // than the MaxItems number of results even when there are more results available.
  12033. // We recommend that you check IsTruncated after every call to ensure that you
  12034. // receive all of your results.
  12035. IsTruncated *bool `type:"boolean"`
  12036. // When IsTruncated is true, this element is present and contains the value
  12037. // to use for the Marker parameter in a subsequent pagination request.
  12038. Marker *string `min:"1" type:"string"`
  12039. // A list of users.
  12040. Users []*User `type:"list" required:"true"`
  12041. }
  12042. // String returns the string representation
  12043. func (s ListUsersOutput) String() string {
  12044. return awsutil.Prettify(s)
  12045. }
  12046. // GoString returns the string representation
  12047. func (s ListUsersOutput) GoString() string {
  12048. return s.String()
  12049. }
  12050. type ListVirtualMFADevicesInput struct {
  12051. _ struct{} `type:"structure"`
  12052. // The status (Unassigned or Assigned) of the devices to list. If you do not
  12053. // specify an AssignmentStatus, the action defaults to Any which lists both
  12054. // assigned and unassigned virtual MFA devices.
  12055. AssignmentStatus *string `type:"string" enum:"assignmentStatusType"`
  12056. // Use this parameter only when paginating results and only after you receive
  12057. // a response indicating that the results are truncated. Set it to the value
  12058. // of the Marker element in the response that you received to indicate where
  12059. // the next call should start.
  12060. Marker *string `min:"1" type:"string"`
  12061. // Use this only when paginating results to indicate the maximum number of items
  12062. // you want in the response. If additional items exist beyond the maximum you
  12063. // specify, the IsTruncated response element is true.
  12064. //
  12065. // This parameter is optional. If you do not include it, it defaults to 100.
  12066. // Note that IAM might return fewer results, even when there are more results
  12067. // available. In that case, the IsTruncated response element returns true and
  12068. // Marker contains a value to include in the subsequent call that tells the
  12069. // service where to continue from.
  12070. MaxItems *int64 `min:"1" type:"integer"`
  12071. }
  12072. // String returns the string representation
  12073. func (s ListVirtualMFADevicesInput) String() string {
  12074. return awsutil.Prettify(s)
  12075. }
  12076. // GoString returns the string representation
  12077. func (s ListVirtualMFADevicesInput) GoString() string {
  12078. return s.String()
  12079. }
  12080. // Validate inspects the fields of the type to determine if they are valid.
  12081. func (s *ListVirtualMFADevicesInput) Validate() error {
  12082. invalidParams := request.ErrInvalidParams{Context: "ListVirtualMFADevicesInput"}
  12083. if s.Marker != nil && len(*s.Marker) < 1 {
  12084. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  12085. }
  12086. if s.MaxItems != nil && *s.MaxItems < 1 {
  12087. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  12088. }
  12089. if invalidParams.Len() > 0 {
  12090. return invalidParams
  12091. }
  12092. return nil
  12093. }
  12094. // Contains the response to a successful ListVirtualMFADevices request.
  12095. type ListVirtualMFADevicesOutput struct {
  12096. _ struct{} `type:"structure"`
  12097. // A flag that indicates whether there are more items to return. If your results
  12098. // were truncated, you can make a subsequent pagination request using the Marker
  12099. // request parameter to retrieve more items. Note that IAM might return fewer
  12100. // than the MaxItems number of results even when there are more results available.
  12101. // We recommend that you check IsTruncated after every call to ensure that you
  12102. // receive all of your results.
  12103. IsTruncated *bool `type:"boolean"`
  12104. // When IsTruncated is true, this element is present and contains the value
  12105. // to use for the Marker parameter in a subsequent pagination request.
  12106. Marker *string `min:"1" type:"string"`
  12107. // The list of virtual MFA devices in the current account that match the AssignmentStatus
  12108. // value that was passed in the request.
  12109. VirtualMFADevices []*VirtualMFADevice `type:"list" required:"true"`
  12110. }
  12111. // String returns the string representation
  12112. func (s ListVirtualMFADevicesOutput) String() string {
  12113. return awsutil.Prettify(s)
  12114. }
  12115. // GoString returns the string representation
  12116. func (s ListVirtualMFADevicesOutput) GoString() string {
  12117. return s.String()
  12118. }
  12119. // Contains the user name and password create date for a user.
  12120. //
  12121. // This data type is used as a response element in the CreateLoginProfile
  12122. // and GetLoginProfile actions.
  12123. type LoginProfile struct {
  12124. _ struct{} `type:"structure"`
  12125. // The date when the password for the user was created.
  12126. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
  12127. // Specifies whether the user is required to set a new password on next sign-in.
  12128. PasswordResetRequired *bool `type:"boolean"`
  12129. // The name of the user, which can be used for signing in to the AWS Management
  12130. // Console.
  12131. UserName *string `min:"1" type:"string" required:"true"`
  12132. }
  12133. // String returns the string representation
  12134. func (s LoginProfile) String() string {
  12135. return awsutil.Prettify(s)
  12136. }
  12137. // GoString returns the string representation
  12138. func (s LoginProfile) GoString() string {
  12139. return s.String()
  12140. }
  12141. // Contains information about an MFA device.
  12142. //
  12143. // This data type is used as a response element in the ListMFADevices action.
  12144. type MFADevice struct {
  12145. _ struct{} `type:"structure"`
  12146. // The date when the MFA device was enabled for the user.
  12147. EnableDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
  12148. // The serial number that uniquely identifies the MFA device. For virtual MFA
  12149. // devices, the serial number is the device ARN.
  12150. SerialNumber *string `min:"9" type:"string" required:"true"`
  12151. // The user with whom the MFA device is associated.
  12152. UserName *string `min:"1" type:"string" required:"true"`
  12153. }
  12154. // String returns the string representation
  12155. func (s MFADevice) String() string {
  12156. return awsutil.Prettify(s)
  12157. }
  12158. // GoString returns the string representation
  12159. func (s MFADevice) GoString() string {
  12160. return s.String()
  12161. }
  12162. // Contains information about a managed policy, including the policy's ARN,
  12163. // versions, and the number of principal entities (users, groups, and roles)
  12164. // that the policy is attached to.
  12165. //
  12166. // This data type is used as a response element in the GetAccountAuthorizationDetails
  12167. // action.
  12168. //
  12169. // For more information about managed policies, see Managed Policies and Inline
  12170. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  12171. // in the Using IAM guide.
  12172. type ManagedPolicyDetail struct {
  12173. _ struct{} `type:"structure"`
  12174. // The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
  12175. //
  12176. // For more information about ARNs, go to Amazon Resource Names (ARNs) and
  12177. // AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  12178. // in the AWS General Reference.
  12179. Arn *string `min:"20" type:"string"`
  12180. // The number of principal entities (users, groups, and roles) that the policy
  12181. // is attached to.
  12182. AttachmentCount *int64 `type:"integer"`
  12183. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  12184. // when the policy was created.
  12185. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  12186. // The identifier for the version of the policy that is set as the default (operative)
  12187. // version.
  12188. //
  12189. // For more information about policy versions, see Versioning for Managed Policies
  12190. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
  12191. // in the Using IAM guide.
  12192. DefaultVersionId *string `type:"string"`
  12193. // A friendly description of the policy.
  12194. Description *string `type:"string"`
  12195. // Specifies whether the policy can be attached to an IAM user, group, or role.
  12196. IsAttachable *bool `type:"boolean"`
  12197. // The path to the policy.
  12198. //
  12199. // For more information about paths, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  12200. // in the Using IAM guide.
  12201. Path *string `type:"string"`
  12202. // The stable and unique string identifying the policy.
  12203. //
  12204. // For more information about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  12205. // in the Using IAM guide.
  12206. PolicyId *string `min:"16" type:"string"`
  12207. // The friendly name (not ARN) identifying the policy.
  12208. PolicyName *string `min:"1" type:"string"`
  12209. // A list containing information about the versions of the policy.
  12210. PolicyVersionList []*PolicyVersion `type:"list"`
  12211. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  12212. // when the policy was last updated.
  12213. //
  12214. // When a policy has only one version, this field contains the date and time
  12215. // when the policy was created. When a policy has more than one version, this
  12216. // field contains the date and time when the most recent policy version was
  12217. // created.
  12218. UpdateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  12219. }
  12220. // String returns the string representation
  12221. func (s ManagedPolicyDetail) String() string {
  12222. return awsutil.Prettify(s)
  12223. }
  12224. // GoString returns the string representation
  12225. func (s ManagedPolicyDetail) GoString() string {
  12226. return s.String()
  12227. }
  12228. // Contains the Amazon Resource Name (ARN) for an IAM OpenID Connect provider.
  12229. type OpenIDConnectProviderListEntry struct {
  12230. _ struct{} `type:"structure"`
  12231. // The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
  12232. //
  12233. // For more information about ARNs, go to Amazon Resource Names (ARNs) and
  12234. // AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  12235. // in the AWS General Reference.
  12236. Arn *string `min:"20" type:"string"`
  12237. }
  12238. // String returns the string representation
  12239. func (s OpenIDConnectProviderListEntry) String() string {
  12240. return awsutil.Prettify(s)
  12241. }
  12242. // GoString returns the string representation
  12243. func (s OpenIDConnectProviderListEntry) GoString() string {
  12244. return s.String()
  12245. }
  12246. // Contains information about the account password policy.
  12247. //
  12248. // This data type is used as a response element in the GetAccountPasswordPolicy
  12249. // action.
  12250. type PasswordPolicy struct {
  12251. _ struct{} `type:"structure"`
  12252. // Specifies whether IAM users are allowed to change their own password.
  12253. AllowUsersToChangePassword *bool `type:"boolean"`
  12254. // Indicates whether passwords in the account expire. Returns true if MaxPasswordAge
  12255. // is contains a value greater than 0. Returns false if MaxPasswordAge is 0
  12256. // or not present.
  12257. ExpirePasswords *bool `type:"boolean"`
  12258. // Specifies whether IAM users are prevented from setting a new password after
  12259. // their password has expired.
  12260. HardExpiry *bool `type:"boolean"`
  12261. // The number of days that an IAM user password is valid.
  12262. MaxPasswordAge *int64 `min:"1" type:"integer"`
  12263. // Minimum length to require for IAM user passwords.
  12264. MinimumPasswordLength *int64 `min:"6" type:"integer"`
  12265. // Specifies the number of previous passwords that IAM users are prevented from
  12266. // reusing.
  12267. PasswordReusePrevention *int64 `min:"1" type:"integer"`
  12268. // Specifies whether to require lowercase characters for IAM user passwords.
  12269. RequireLowercaseCharacters *bool `type:"boolean"`
  12270. // Specifies whether to require numbers for IAM user passwords.
  12271. RequireNumbers *bool `type:"boolean"`
  12272. // Specifies whether to require symbols for IAM user passwords.
  12273. RequireSymbols *bool `type:"boolean"`
  12274. // Specifies whether to require uppercase characters for IAM user passwords.
  12275. RequireUppercaseCharacters *bool `type:"boolean"`
  12276. }
  12277. // String returns the string representation
  12278. func (s PasswordPolicy) String() string {
  12279. return awsutil.Prettify(s)
  12280. }
  12281. // GoString returns the string representation
  12282. func (s PasswordPolicy) GoString() string {
  12283. return s.String()
  12284. }
  12285. // Contains information about a managed policy.
  12286. //
  12287. // This data type is used as a response element in the CreatePolicy, GetPolicy,
  12288. // and ListPolicies actions.
  12289. //
  12290. // For more information about managed policies, refer to Managed Policies and
  12291. // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  12292. // in the Using IAM guide.
  12293. type Policy struct {
  12294. _ struct{} `type:"structure"`
  12295. // The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
  12296. //
  12297. // For more information about ARNs, go to Amazon Resource Names (ARNs) and
  12298. // AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  12299. // in the AWS General Reference.
  12300. Arn *string `min:"20" type:"string"`
  12301. // The number of entities (users, groups, and roles) that the policy is attached
  12302. // to.
  12303. AttachmentCount *int64 `type:"integer"`
  12304. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  12305. // when the policy was created.
  12306. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  12307. // The identifier for the version of the policy that is set as the default version.
  12308. DefaultVersionId *string `type:"string"`
  12309. // A friendly description of the policy.
  12310. //
  12311. // This element is included in the response to the GetPolicy operation. It
  12312. // is not included in the response to the ListPolicies operation.
  12313. Description *string `type:"string"`
  12314. // Specifies whether the policy can be attached to an IAM user, group, or role.
  12315. IsAttachable *bool `type:"boolean"`
  12316. // The path to the policy.
  12317. //
  12318. // For more information about paths, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  12319. // in the Using IAM guide.
  12320. Path *string `type:"string"`
  12321. // The stable and unique string identifying the policy.
  12322. //
  12323. // For more information about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  12324. // in the Using IAM guide.
  12325. PolicyId *string `min:"16" type:"string"`
  12326. // The friendly name (not ARN) identifying the policy.
  12327. PolicyName *string `min:"1" type:"string"`
  12328. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  12329. // when the policy was last updated.
  12330. //
  12331. // When a policy has only one version, this field contains the date and time
  12332. // when the policy was created. When a policy has more than one version, this
  12333. // field contains the date and time when the most recent policy version was
  12334. // created.
  12335. UpdateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  12336. }
  12337. // String returns the string representation
  12338. func (s Policy) String() string {
  12339. return awsutil.Prettify(s)
  12340. }
  12341. // GoString returns the string representation
  12342. func (s Policy) GoString() string {
  12343. return s.String()
  12344. }
  12345. // Contains information about an IAM policy, including the policy document.
  12346. //
  12347. // This data type is used as a response element in the GetAccountAuthorizationDetails
  12348. // action.
  12349. type PolicyDetail struct {
  12350. _ struct{} `type:"structure"`
  12351. // The policy document.
  12352. PolicyDocument *string `min:"1" type:"string"`
  12353. // The name of the policy.
  12354. PolicyName *string `min:"1" type:"string"`
  12355. }
  12356. // String returns the string representation
  12357. func (s PolicyDetail) String() string {
  12358. return awsutil.Prettify(s)
  12359. }
  12360. // GoString returns the string representation
  12361. func (s PolicyDetail) GoString() string {
  12362. return s.String()
  12363. }
  12364. // Contains information about a group that a managed policy is attached to.
  12365. //
  12366. // This data type is used as a response element in the ListEntitiesForPolicy
  12367. // action.
  12368. //
  12369. // For more information about managed policies, refer to Managed Policies and
  12370. // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  12371. // in the Using IAM guide.
  12372. type PolicyGroup struct {
  12373. _ struct{} `type:"structure"`
  12374. // The stable and unique string identifying the group. For more information
  12375. // about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)
  12376. // in the IAM User Guide.
  12377. GroupId *string `min:"16" type:"string"`
  12378. // The name (friendly name, not ARN) identifying the group.
  12379. GroupName *string `min:"1" type:"string"`
  12380. }
  12381. // String returns the string representation
  12382. func (s PolicyGroup) String() string {
  12383. return awsutil.Prettify(s)
  12384. }
  12385. // GoString returns the string representation
  12386. func (s PolicyGroup) GoString() string {
  12387. return s.String()
  12388. }
  12389. // Contains information about a role that a managed policy is attached to.
  12390. //
  12391. // This data type is used as a response element in the ListEntitiesForPolicy
  12392. // action.
  12393. //
  12394. // For more information about managed policies, refer to Managed Policies and
  12395. // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  12396. // in the Using IAM guide.
  12397. type PolicyRole struct {
  12398. _ struct{} `type:"structure"`
  12399. // The stable and unique string identifying the role. For more information about
  12400. // IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)
  12401. // in the IAM User Guide.
  12402. RoleId *string `min:"16" type:"string"`
  12403. // The name (friendly name, not ARN) identifying the role.
  12404. RoleName *string `min:"1" type:"string"`
  12405. }
  12406. // String returns the string representation
  12407. func (s PolicyRole) String() string {
  12408. return awsutil.Prettify(s)
  12409. }
  12410. // GoString returns the string representation
  12411. func (s PolicyRole) GoString() string {
  12412. return s.String()
  12413. }
  12414. // Contains information about a user that a managed policy is attached to.
  12415. //
  12416. // This data type is used as a response element in the ListEntitiesForPolicy
  12417. // action.
  12418. //
  12419. // For more information about managed policies, refer to Managed Policies and
  12420. // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  12421. // in the Using IAM guide.
  12422. type PolicyUser struct {
  12423. _ struct{} `type:"structure"`
  12424. // The stable and unique string identifying the user. For more information about
  12425. // IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)
  12426. // in the IAM User Guide.
  12427. UserId *string `min:"16" type:"string"`
  12428. // The name (friendly name, not ARN) identifying the user.
  12429. UserName *string `min:"1" type:"string"`
  12430. }
  12431. // String returns the string representation
  12432. func (s PolicyUser) String() string {
  12433. return awsutil.Prettify(s)
  12434. }
  12435. // GoString returns the string representation
  12436. func (s PolicyUser) GoString() string {
  12437. return s.String()
  12438. }
  12439. // Contains information about a version of a managed policy.
  12440. //
  12441. // This data type is used as a response element in the CreatePolicyVersion,
  12442. // GetPolicyVersion, ListPolicyVersions, and GetAccountAuthorizationDetails
  12443. // actions.
  12444. //
  12445. // For more information about managed policies, refer to Managed Policies and
  12446. // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html)
  12447. // in the Using IAM guide.
  12448. type PolicyVersion struct {
  12449. _ struct{} `type:"structure"`
  12450. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  12451. // when the policy version was created.
  12452. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  12453. // The policy document.
  12454. //
  12455. // The policy document is returned in the response to the GetPolicyVersion
  12456. // and GetAccountAuthorizationDetails operations. It is not returned in the
  12457. // response to the CreatePolicyVersion or ListPolicyVersions operations.
  12458. Document *string `min:"1" type:"string"`
  12459. // Specifies whether the policy version is set as the policy's default version.
  12460. IsDefaultVersion *bool `type:"boolean"`
  12461. // The identifier for the policy version.
  12462. //
  12463. // Policy version identifiers always begin with v (always lowercase). When
  12464. // a policy is created, the first policy version is v1.
  12465. VersionId *string `type:"string"`
  12466. }
  12467. // String returns the string representation
  12468. func (s PolicyVersion) String() string {
  12469. return awsutil.Prettify(s)
  12470. }
  12471. // GoString returns the string representation
  12472. func (s PolicyVersion) GoString() string {
  12473. return s.String()
  12474. }
  12475. // Contains the row and column of a location of a Statement element in a policy
  12476. // document.
  12477. //
  12478. // This data type is used as a member of the Statement type.
  12479. type Position struct {
  12480. _ struct{} `type:"structure"`
  12481. // The column in the line containing the specified position in the document.
  12482. Column *int64 `type:"integer"`
  12483. // The line containing the specified position in the document.
  12484. Line *int64 `type:"integer"`
  12485. }
  12486. // String returns the string representation
  12487. func (s Position) String() string {
  12488. return awsutil.Prettify(s)
  12489. }
  12490. // GoString returns the string representation
  12491. func (s Position) GoString() string {
  12492. return s.String()
  12493. }
  12494. type PutGroupPolicyInput struct {
  12495. _ struct{} `type:"structure"`
  12496. // The name of the group to associate the policy with.
  12497. //
  12498. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12499. // a string of characters consisting of upper and lowercase alphanumeric characters
  12500. // with no spaces. You can also include any of the following characters: =,.@-
  12501. GroupName *string `min:"1" type:"string" required:"true"`
  12502. // The policy document.
  12503. //
  12504. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12505. // a string of characters consisting of any printable ASCII character ranging
  12506. // from the space character (\u0020) through end of the ASCII character range
  12507. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  12508. // (\u000A), and carriage return (\u000D).
  12509. PolicyDocument *string `min:"1" type:"string" required:"true"`
  12510. // The name of the policy document.
  12511. //
  12512. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12513. // a string of characters consisting of upper and lowercase alphanumeric characters
  12514. // with no spaces. You can also include any of the following characters: =,.@-
  12515. PolicyName *string `min:"1" type:"string" required:"true"`
  12516. }
  12517. // String returns the string representation
  12518. func (s PutGroupPolicyInput) String() string {
  12519. return awsutil.Prettify(s)
  12520. }
  12521. // GoString returns the string representation
  12522. func (s PutGroupPolicyInput) GoString() string {
  12523. return s.String()
  12524. }
  12525. // Validate inspects the fields of the type to determine if they are valid.
  12526. func (s *PutGroupPolicyInput) Validate() error {
  12527. invalidParams := request.ErrInvalidParams{Context: "PutGroupPolicyInput"}
  12528. if s.GroupName == nil {
  12529. invalidParams.Add(request.NewErrParamRequired("GroupName"))
  12530. }
  12531. if s.GroupName != nil && len(*s.GroupName) < 1 {
  12532. invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  12533. }
  12534. if s.PolicyDocument == nil {
  12535. invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
  12536. }
  12537. if s.PolicyDocument != nil && len(*s.PolicyDocument) < 1 {
  12538. invalidParams.Add(request.NewErrParamMinLen("PolicyDocument", 1))
  12539. }
  12540. if s.PolicyName == nil {
  12541. invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  12542. }
  12543. if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  12544. invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  12545. }
  12546. if invalidParams.Len() > 0 {
  12547. return invalidParams
  12548. }
  12549. return nil
  12550. }
  12551. type PutGroupPolicyOutput struct {
  12552. _ struct{} `type:"structure"`
  12553. }
  12554. // String returns the string representation
  12555. func (s PutGroupPolicyOutput) String() string {
  12556. return awsutil.Prettify(s)
  12557. }
  12558. // GoString returns the string representation
  12559. func (s PutGroupPolicyOutput) GoString() string {
  12560. return s.String()
  12561. }
  12562. type PutRolePolicyInput struct {
  12563. _ struct{} `type:"structure"`
  12564. // The policy document.
  12565. //
  12566. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12567. // a string of characters consisting of any printable ASCII character ranging
  12568. // from the space character (\u0020) through end of the ASCII character range
  12569. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  12570. // (\u000A), and carriage return (\u000D).
  12571. PolicyDocument *string `min:"1" type:"string" required:"true"`
  12572. // The name of the policy document.
  12573. //
  12574. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12575. // a string of characters consisting of upper and lowercase alphanumeric characters
  12576. // with no spaces. You can also include any of the following characters: =,.@-
  12577. PolicyName *string `min:"1" type:"string" required:"true"`
  12578. // The name of the role to associate the policy with.
  12579. //
  12580. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12581. // a string of characters consisting of upper and lowercase alphanumeric characters
  12582. // with no spaces. You can also include any of the following characters: =,.@-
  12583. RoleName *string `min:"1" type:"string" required:"true"`
  12584. }
  12585. // String returns the string representation
  12586. func (s PutRolePolicyInput) String() string {
  12587. return awsutil.Prettify(s)
  12588. }
  12589. // GoString returns the string representation
  12590. func (s PutRolePolicyInput) GoString() string {
  12591. return s.String()
  12592. }
  12593. // Validate inspects the fields of the type to determine if they are valid.
  12594. func (s *PutRolePolicyInput) Validate() error {
  12595. invalidParams := request.ErrInvalidParams{Context: "PutRolePolicyInput"}
  12596. if s.PolicyDocument == nil {
  12597. invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
  12598. }
  12599. if s.PolicyDocument != nil && len(*s.PolicyDocument) < 1 {
  12600. invalidParams.Add(request.NewErrParamMinLen("PolicyDocument", 1))
  12601. }
  12602. if s.PolicyName == nil {
  12603. invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  12604. }
  12605. if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  12606. invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  12607. }
  12608. if s.RoleName == nil {
  12609. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  12610. }
  12611. if s.RoleName != nil && len(*s.RoleName) < 1 {
  12612. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  12613. }
  12614. if invalidParams.Len() > 0 {
  12615. return invalidParams
  12616. }
  12617. return nil
  12618. }
  12619. type PutRolePolicyOutput struct {
  12620. _ struct{} `type:"structure"`
  12621. }
  12622. // String returns the string representation
  12623. func (s PutRolePolicyOutput) String() string {
  12624. return awsutil.Prettify(s)
  12625. }
  12626. // GoString returns the string representation
  12627. func (s PutRolePolicyOutput) GoString() string {
  12628. return s.String()
  12629. }
  12630. type PutUserPolicyInput struct {
  12631. _ struct{} `type:"structure"`
  12632. // The policy document.
  12633. //
  12634. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12635. // a string of characters consisting of any printable ASCII character ranging
  12636. // from the space character (\u0020) through end of the ASCII character range
  12637. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  12638. // (\u000A), and carriage return (\u000D).
  12639. PolicyDocument *string `min:"1" type:"string" required:"true"`
  12640. // The name of the policy document.
  12641. //
  12642. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12643. // a string of characters consisting of upper and lowercase alphanumeric characters
  12644. // with no spaces. You can also include any of the following characters: =,.@-
  12645. PolicyName *string `min:"1" type:"string" required:"true"`
  12646. // The name of the user to associate the policy with.
  12647. //
  12648. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12649. // a string of characters consisting of upper and lowercase alphanumeric characters
  12650. // with no spaces. You can also include any of the following characters: =,.@-
  12651. UserName *string `min:"1" type:"string" required:"true"`
  12652. }
  12653. // String returns the string representation
  12654. func (s PutUserPolicyInput) String() string {
  12655. return awsutil.Prettify(s)
  12656. }
  12657. // GoString returns the string representation
  12658. func (s PutUserPolicyInput) GoString() string {
  12659. return s.String()
  12660. }
  12661. // Validate inspects the fields of the type to determine if they are valid.
  12662. func (s *PutUserPolicyInput) Validate() error {
  12663. invalidParams := request.ErrInvalidParams{Context: "PutUserPolicyInput"}
  12664. if s.PolicyDocument == nil {
  12665. invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
  12666. }
  12667. if s.PolicyDocument != nil && len(*s.PolicyDocument) < 1 {
  12668. invalidParams.Add(request.NewErrParamMinLen("PolicyDocument", 1))
  12669. }
  12670. if s.PolicyName == nil {
  12671. invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  12672. }
  12673. if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  12674. invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  12675. }
  12676. if s.UserName == nil {
  12677. invalidParams.Add(request.NewErrParamRequired("UserName"))
  12678. }
  12679. if s.UserName != nil && len(*s.UserName) < 1 {
  12680. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  12681. }
  12682. if invalidParams.Len() > 0 {
  12683. return invalidParams
  12684. }
  12685. return nil
  12686. }
  12687. type PutUserPolicyOutput struct {
  12688. _ struct{} `type:"structure"`
  12689. }
  12690. // String returns the string representation
  12691. func (s PutUserPolicyOutput) String() string {
  12692. return awsutil.Prettify(s)
  12693. }
  12694. // GoString returns the string representation
  12695. func (s PutUserPolicyOutput) GoString() string {
  12696. return s.String()
  12697. }
  12698. type RemoveClientIDFromOpenIDConnectProviderInput struct {
  12699. _ struct{} `type:"structure"`
  12700. // The client ID (also known as audience) to remove from the IAM OIDC provider
  12701. // resource. For more information about client IDs, see CreateOpenIDConnectProvider.
  12702. ClientID *string `min:"1" type:"string" required:"true"`
  12703. // The Amazon Resource Name (ARN) of the IAM OIDC provider resource to remove
  12704. // the client ID from. You can get a list of OIDC provider ARNs by using the
  12705. // ListOpenIDConnectProviders action.
  12706. //
  12707. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  12708. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  12709. // in the AWS General Reference.
  12710. OpenIDConnectProviderArn *string `min:"20" type:"string" required:"true"`
  12711. }
  12712. // String returns the string representation
  12713. func (s RemoveClientIDFromOpenIDConnectProviderInput) String() string {
  12714. return awsutil.Prettify(s)
  12715. }
  12716. // GoString returns the string representation
  12717. func (s RemoveClientIDFromOpenIDConnectProviderInput) GoString() string {
  12718. return s.String()
  12719. }
  12720. // Validate inspects the fields of the type to determine if they are valid.
  12721. func (s *RemoveClientIDFromOpenIDConnectProviderInput) Validate() error {
  12722. invalidParams := request.ErrInvalidParams{Context: "RemoveClientIDFromOpenIDConnectProviderInput"}
  12723. if s.ClientID == nil {
  12724. invalidParams.Add(request.NewErrParamRequired("ClientID"))
  12725. }
  12726. if s.ClientID != nil && len(*s.ClientID) < 1 {
  12727. invalidParams.Add(request.NewErrParamMinLen("ClientID", 1))
  12728. }
  12729. if s.OpenIDConnectProviderArn == nil {
  12730. invalidParams.Add(request.NewErrParamRequired("OpenIDConnectProviderArn"))
  12731. }
  12732. if s.OpenIDConnectProviderArn != nil && len(*s.OpenIDConnectProviderArn) < 20 {
  12733. invalidParams.Add(request.NewErrParamMinLen("OpenIDConnectProviderArn", 20))
  12734. }
  12735. if invalidParams.Len() > 0 {
  12736. return invalidParams
  12737. }
  12738. return nil
  12739. }
  12740. type RemoveClientIDFromOpenIDConnectProviderOutput struct {
  12741. _ struct{} `type:"structure"`
  12742. }
  12743. // String returns the string representation
  12744. func (s RemoveClientIDFromOpenIDConnectProviderOutput) String() string {
  12745. return awsutil.Prettify(s)
  12746. }
  12747. // GoString returns the string representation
  12748. func (s RemoveClientIDFromOpenIDConnectProviderOutput) GoString() string {
  12749. return s.String()
  12750. }
  12751. type RemoveRoleFromInstanceProfileInput struct {
  12752. _ struct{} `type:"structure"`
  12753. // The name of the instance profile to update.
  12754. //
  12755. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12756. // a string of characters consisting of upper and lowercase alphanumeric characters
  12757. // with no spaces. You can also include any of the following characters: =,.@-
  12758. InstanceProfileName *string `min:"1" type:"string" required:"true"`
  12759. // The name of the role to remove.
  12760. //
  12761. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12762. // a string of characters consisting of upper and lowercase alphanumeric characters
  12763. // with no spaces. You can also include any of the following characters: =,.@-
  12764. RoleName *string `min:"1" type:"string" required:"true"`
  12765. }
  12766. // String returns the string representation
  12767. func (s RemoveRoleFromInstanceProfileInput) String() string {
  12768. return awsutil.Prettify(s)
  12769. }
  12770. // GoString returns the string representation
  12771. func (s RemoveRoleFromInstanceProfileInput) GoString() string {
  12772. return s.String()
  12773. }
  12774. // Validate inspects the fields of the type to determine if they are valid.
  12775. func (s *RemoveRoleFromInstanceProfileInput) Validate() error {
  12776. invalidParams := request.ErrInvalidParams{Context: "RemoveRoleFromInstanceProfileInput"}
  12777. if s.InstanceProfileName == nil {
  12778. invalidParams.Add(request.NewErrParamRequired("InstanceProfileName"))
  12779. }
  12780. if s.InstanceProfileName != nil && len(*s.InstanceProfileName) < 1 {
  12781. invalidParams.Add(request.NewErrParamMinLen("InstanceProfileName", 1))
  12782. }
  12783. if s.RoleName == nil {
  12784. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  12785. }
  12786. if s.RoleName != nil && len(*s.RoleName) < 1 {
  12787. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  12788. }
  12789. if invalidParams.Len() > 0 {
  12790. return invalidParams
  12791. }
  12792. return nil
  12793. }
  12794. type RemoveRoleFromInstanceProfileOutput struct {
  12795. _ struct{} `type:"structure"`
  12796. }
  12797. // String returns the string representation
  12798. func (s RemoveRoleFromInstanceProfileOutput) String() string {
  12799. return awsutil.Prettify(s)
  12800. }
  12801. // GoString returns the string representation
  12802. func (s RemoveRoleFromInstanceProfileOutput) GoString() string {
  12803. return s.String()
  12804. }
  12805. type RemoveUserFromGroupInput struct {
  12806. _ struct{} `type:"structure"`
  12807. // The name of the group to update.
  12808. //
  12809. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12810. // a string of characters consisting of upper and lowercase alphanumeric characters
  12811. // with no spaces. You can also include any of the following characters: =,.@-
  12812. GroupName *string `min:"1" type:"string" required:"true"`
  12813. // The name of the user to remove.
  12814. //
  12815. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12816. // a string of characters consisting of upper and lowercase alphanumeric characters
  12817. // with no spaces. You can also include any of the following characters: =,.@-
  12818. UserName *string `min:"1" type:"string" required:"true"`
  12819. }
  12820. // String returns the string representation
  12821. func (s RemoveUserFromGroupInput) String() string {
  12822. return awsutil.Prettify(s)
  12823. }
  12824. // GoString returns the string representation
  12825. func (s RemoveUserFromGroupInput) GoString() string {
  12826. return s.String()
  12827. }
  12828. // Validate inspects the fields of the type to determine if they are valid.
  12829. func (s *RemoveUserFromGroupInput) Validate() error {
  12830. invalidParams := request.ErrInvalidParams{Context: "RemoveUserFromGroupInput"}
  12831. if s.GroupName == nil {
  12832. invalidParams.Add(request.NewErrParamRequired("GroupName"))
  12833. }
  12834. if s.GroupName != nil && len(*s.GroupName) < 1 {
  12835. invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  12836. }
  12837. if s.UserName == nil {
  12838. invalidParams.Add(request.NewErrParamRequired("UserName"))
  12839. }
  12840. if s.UserName != nil && len(*s.UserName) < 1 {
  12841. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  12842. }
  12843. if invalidParams.Len() > 0 {
  12844. return invalidParams
  12845. }
  12846. return nil
  12847. }
  12848. type RemoveUserFromGroupOutput struct {
  12849. _ struct{} `type:"structure"`
  12850. }
  12851. // String returns the string representation
  12852. func (s RemoveUserFromGroupOutput) String() string {
  12853. return awsutil.Prettify(s)
  12854. }
  12855. // GoString returns the string representation
  12856. func (s RemoveUserFromGroupOutput) GoString() string {
  12857. return s.String()
  12858. }
  12859. // Contains the result of the simulation of a single API action call on a single
  12860. // resource.
  12861. //
  12862. // This data type is used by a member of the EvaluationResult data type.
  12863. type ResourceSpecificResult struct {
  12864. _ struct{} `type:"structure"`
  12865. // Additional details about the results of the evaluation decision. When there
  12866. // are both IAM policies and resource policies, this parameter explains how
  12867. // each set of policies contributes to the final evaluation decision. When simulating
  12868. // cross-account access to a resource, both the resource-based policy and the
  12869. // caller's IAM policy must grant access.
  12870. EvalDecisionDetails map[string]*string `type:"map"`
  12871. // The result of the simulation of the simulated API action on the resource
  12872. // specified in EvalResourceName.
  12873. EvalResourceDecision *string `type:"string" required:"true" enum:"PolicyEvaluationDecisionType"`
  12874. // The name of the simulated resource, in Amazon Resource Name (ARN) format.
  12875. EvalResourceName *string `min:"1" type:"string" required:"true"`
  12876. // A list of the statements in the input policies that determine the result
  12877. // for this part of the simulation. Remember that even if multiple statements
  12878. // allow the action on the resource, if any statement denies that action, then
  12879. // the explicit deny overrides any allow, and the deny statement is the only
  12880. // entry included in the result.
  12881. MatchedStatements []*Statement `type:"list"`
  12882. // A list of context keys that are required by the included input policies but
  12883. // that were not provided by one of the input parameters. This list is used
  12884. // when a list of ARNs is included in the ResourceArns parameter instead of
  12885. // "*". If you do not specify individual resources, by setting ResourceArns
  12886. // to "*" or by not including the ResourceArns parameter, then any missing context
  12887. // values are instead included under the EvaluationResults section. To discover
  12888. // the context keys used by a set of policies, you can call GetContextKeysForCustomPolicy
  12889. // or GetContextKeysForPrincipalPolicy.
  12890. MissingContextValues []*string `type:"list"`
  12891. }
  12892. // String returns the string representation
  12893. func (s ResourceSpecificResult) String() string {
  12894. return awsutil.Prettify(s)
  12895. }
  12896. // GoString returns the string representation
  12897. func (s ResourceSpecificResult) GoString() string {
  12898. return s.String()
  12899. }
  12900. type ResyncMFADeviceInput struct {
  12901. _ struct{} `type:"structure"`
  12902. // An authentication code emitted by the device.
  12903. //
  12904. // The format for this parameter is a sequence of six digits.
  12905. AuthenticationCode1 *string `min:"6" type:"string" required:"true"`
  12906. // A subsequent authentication code emitted by the device.
  12907. //
  12908. // The format for this parameter is a sequence of six digits.
  12909. AuthenticationCode2 *string `min:"6" type:"string" required:"true"`
  12910. // Serial number that uniquely identifies the MFA device.
  12911. //
  12912. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12913. // a string of characters consisting of upper and lowercase alphanumeric characters
  12914. // with no spaces. You can also include any of the following characters: =,.@-
  12915. SerialNumber *string `min:"9" type:"string" required:"true"`
  12916. // The name of the user whose MFA device you want to resynchronize.
  12917. //
  12918. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  12919. // a string of characters consisting of upper and lowercase alphanumeric characters
  12920. // with no spaces. You can also include any of the following characters: =,.@-
  12921. UserName *string `min:"1" type:"string" required:"true"`
  12922. }
  12923. // String returns the string representation
  12924. func (s ResyncMFADeviceInput) String() string {
  12925. return awsutil.Prettify(s)
  12926. }
  12927. // GoString returns the string representation
  12928. func (s ResyncMFADeviceInput) GoString() string {
  12929. return s.String()
  12930. }
  12931. // Validate inspects the fields of the type to determine if they are valid.
  12932. func (s *ResyncMFADeviceInput) Validate() error {
  12933. invalidParams := request.ErrInvalidParams{Context: "ResyncMFADeviceInput"}
  12934. if s.AuthenticationCode1 == nil {
  12935. invalidParams.Add(request.NewErrParamRequired("AuthenticationCode1"))
  12936. }
  12937. if s.AuthenticationCode1 != nil && len(*s.AuthenticationCode1) < 6 {
  12938. invalidParams.Add(request.NewErrParamMinLen("AuthenticationCode1", 6))
  12939. }
  12940. if s.AuthenticationCode2 == nil {
  12941. invalidParams.Add(request.NewErrParamRequired("AuthenticationCode2"))
  12942. }
  12943. if s.AuthenticationCode2 != nil && len(*s.AuthenticationCode2) < 6 {
  12944. invalidParams.Add(request.NewErrParamMinLen("AuthenticationCode2", 6))
  12945. }
  12946. if s.SerialNumber == nil {
  12947. invalidParams.Add(request.NewErrParamRequired("SerialNumber"))
  12948. }
  12949. if s.SerialNumber != nil && len(*s.SerialNumber) < 9 {
  12950. invalidParams.Add(request.NewErrParamMinLen("SerialNumber", 9))
  12951. }
  12952. if s.UserName == nil {
  12953. invalidParams.Add(request.NewErrParamRequired("UserName"))
  12954. }
  12955. if s.UserName != nil && len(*s.UserName) < 1 {
  12956. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  12957. }
  12958. if invalidParams.Len() > 0 {
  12959. return invalidParams
  12960. }
  12961. return nil
  12962. }
  12963. type ResyncMFADeviceOutput struct {
  12964. _ struct{} `type:"structure"`
  12965. }
  12966. // String returns the string representation
  12967. func (s ResyncMFADeviceOutput) String() string {
  12968. return awsutil.Prettify(s)
  12969. }
  12970. // GoString returns the string representation
  12971. func (s ResyncMFADeviceOutput) GoString() string {
  12972. return s.String()
  12973. }
  12974. // Contains information about an IAM role.
  12975. //
  12976. // This data type is used as a response element in the following actions:
  12977. //
  12978. // CreateRole
  12979. //
  12980. // GetRole
  12981. //
  12982. // ListRoles
  12983. type Role struct {
  12984. _ struct{} `type:"structure"`
  12985. // The Amazon Resource Name (ARN) specifying the role. For more information
  12986. // about ARNs and how to use them in policies, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  12987. // in the Using IAM guide.
  12988. Arn *string `min:"20" type:"string" required:"true"`
  12989. // The policy that grants an entity permission to assume the role.
  12990. AssumeRolePolicyDocument *string `min:"1" type:"string"`
  12991. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  12992. // when the role was created.
  12993. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
  12994. // The path to the role. For more information about paths, see IAM Identifiers
  12995. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  12996. // in the Using IAM guide.
  12997. Path *string `min:"1" type:"string" required:"true"`
  12998. // The stable and unique string identifying the role. For more information about
  12999. // IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  13000. // in the Using IAM guide.
  13001. RoleId *string `min:"16" type:"string" required:"true"`
  13002. // The friendly name that identifies the role.
  13003. RoleName *string `min:"1" type:"string" required:"true"`
  13004. }
  13005. // String returns the string representation
  13006. func (s Role) String() string {
  13007. return awsutil.Prettify(s)
  13008. }
  13009. // GoString returns the string representation
  13010. func (s Role) GoString() string {
  13011. return s.String()
  13012. }
  13013. // Contains information about an IAM role, including all of the role's policies.
  13014. //
  13015. // This data type is used as a response element in the GetAccountAuthorizationDetails
  13016. // action.
  13017. type RoleDetail struct {
  13018. _ struct{} `type:"structure"`
  13019. // The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
  13020. //
  13021. // For more information about ARNs, go to Amazon Resource Names (ARNs) and
  13022. // AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  13023. // in the AWS General Reference.
  13024. Arn *string `min:"20" type:"string"`
  13025. // The trust policy that grants permission to assume the role.
  13026. AssumeRolePolicyDocument *string `min:"1" type:"string"`
  13027. // A list of managed policies attached to the role. These policies are the role's
  13028. // access (permissions) policies.
  13029. AttachedManagedPolicies []*AttachedPolicy `type:"list"`
  13030. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  13031. // when the role was created.
  13032. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  13033. // Contains a list of instance profiles.
  13034. InstanceProfileList []*InstanceProfile `type:"list"`
  13035. // The path to the role. For more information about paths, see IAM Identifiers
  13036. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  13037. // in the Using IAM guide.
  13038. Path *string `min:"1" type:"string"`
  13039. // The stable and unique string identifying the role. For more information about
  13040. // IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  13041. // in the Using IAM guide.
  13042. RoleId *string `min:"16" type:"string"`
  13043. // The friendly name that identifies the role.
  13044. RoleName *string `min:"1" type:"string"`
  13045. // A list of inline policies embedded in the role. These policies are the role's
  13046. // access (permissions) policies.
  13047. RolePolicyList []*PolicyDetail `type:"list"`
  13048. }
  13049. // String returns the string representation
  13050. func (s RoleDetail) String() string {
  13051. return awsutil.Prettify(s)
  13052. }
  13053. // GoString returns the string representation
  13054. func (s RoleDetail) GoString() string {
  13055. return s.String()
  13056. }
  13057. // Contains the list of SAML providers for this account.
  13058. type SAMLProviderListEntry struct {
  13059. _ struct{} `type:"structure"`
  13060. // The Amazon Resource Name (ARN) of the SAML provider.
  13061. Arn *string `min:"20" type:"string"`
  13062. // The date and time when the SAML provider was created.
  13063. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  13064. // The expiration date and time for the SAML provider.
  13065. ValidUntil *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  13066. }
  13067. // String returns the string representation
  13068. func (s SAMLProviderListEntry) String() string {
  13069. return awsutil.Prettify(s)
  13070. }
  13071. // GoString returns the string representation
  13072. func (s SAMLProviderListEntry) GoString() string {
  13073. return s.String()
  13074. }
  13075. // Contains information about an SSH public key.
  13076. //
  13077. // This data type is used as a response element in the GetSSHPublicKey and
  13078. // UploadSSHPublicKey actions.
  13079. type SSHPublicKey struct {
  13080. _ struct{} `type:"structure"`
  13081. // The MD5 message digest of the SSH public key.
  13082. Fingerprint *string `min:"48" type:"string" required:"true"`
  13083. // The SSH public key.
  13084. SSHPublicKeyBody *string `min:"1" type:"string" required:"true"`
  13085. // The unique identifier for the SSH public key.
  13086. SSHPublicKeyId *string `min:"20" type:"string" required:"true"`
  13087. // The status of the SSH public key. Active means the key can be used for authentication
  13088. // with an AWS CodeCommit repository. Inactive means the key cannot be used.
  13089. Status *string `type:"string" required:"true" enum:"statusType"`
  13090. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  13091. // when the SSH public key was uploaded.
  13092. UploadDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  13093. // The name of the IAM user associated with the SSH public key.
  13094. UserName *string `min:"1" type:"string" required:"true"`
  13095. }
  13096. // String returns the string representation
  13097. func (s SSHPublicKey) String() string {
  13098. return awsutil.Prettify(s)
  13099. }
  13100. // GoString returns the string representation
  13101. func (s SSHPublicKey) GoString() string {
  13102. return s.String()
  13103. }
  13104. // Contains information about an SSH public key, without the key's body or fingerprint.
  13105. //
  13106. // This data type is used as a response element in the ListSSHPublicKeys action.
  13107. type SSHPublicKeyMetadata struct {
  13108. _ struct{} `type:"structure"`
  13109. // The unique identifier for the SSH public key.
  13110. SSHPublicKeyId *string `min:"20" type:"string" required:"true"`
  13111. // The status of the SSH public key. Active means the key can be used for authentication
  13112. // with an AWS CodeCommit repository. Inactive means the key cannot be used.
  13113. Status *string `type:"string" required:"true" enum:"statusType"`
  13114. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  13115. // when the SSH public key was uploaded.
  13116. UploadDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
  13117. // The name of the IAM user associated with the SSH public key.
  13118. UserName *string `min:"1" type:"string" required:"true"`
  13119. }
  13120. // String returns the string representation
  13121. func (s SSHPublicKeyMetadata) String() string {
  13122. return awsutil.Prettify(s)
  13123. }
  13124. // GoString returns the string representation
  13125. func (s SSHPublicKeyMetadata) GoString() string {
  13126. return s.String()
  13127. }
  13128. // Contains information about a server certificate.
  13129. //
  13130. // This data type is used as a response element in the GetServerCertificate
  13131. // action.
  13132. type ServerCertificate struct {
  13133. _ struct{} `type:"structure"`
  13134. // The contents of the public key certificate.
  13135. CertificateBody *string `min:"1" type:"string" required:"true"`
  13136. // The contents of the public key certificate chain.
  13137. CertificateChain *string `min:"1" type:"string"`
  13138. // The meta information of the server certificate, such as its name, path, ID,
  13139. // and ARN.
  13140. ServerCertificateMetadata *ServerCertificateMetadata `type:"structure" required:"true"`
  13141. }
  13142. // String returns the string representation
  13143. func (s ServerCertificate) String() string {
  13144. return awsutil.Prettify(s)
  13145. }
  13146. // GoString returns the string representation
  13147. func (s ServerCertificate) GoString() string {
  13148. return s.String()
  13149. }
  13150. // Contains information about a server certificate without its certificate body,
  13151. // certificate chain, and private key.
  13152. //
  13153. // This data type is used as a response element in the UploadServerCertificate
  13154. // and ListServerCertificates actions.
  13155. type ServerCertificateMetadata struct {
  13156. _ struct{} `type:"structure"`
  13157. // The Amazon Resource Name (ARN) specifying the server certificate. For more
  13158. // information about ARNs and how to use them in policies, see IAM Identifiers
  13159. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  13160. // in the Using IAM guide.
  13161. Arn *string `min:"20" type:"string" required:"true"`
  13162. // The date on which the certificate is set to expire.
  13163. Expiration *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  13164. // The path to the server certificate. For more information about paths, see
  13165. // IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  13166. // in the Using IAM guide.
  13167. Path *string `min:"1" type:"string" required:"true"`
  13168. // The stable and unique string identifying the server certificate. For more
  13169. // information about IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  13170. // in the Using IAM guide.
  13171. ServerCertificateId *string `min:"16" type:"string" required:"true"`
  13172. // The name that identifies the server certificate.
  13173. ServerCertificateName *string `min:"1" type:"string" required:"true"`
  13174. // The date when the server certificate was uploaded.
  13175. UploadDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  13176. }
  13177. // String returns the string representation
  13178. func (s ServerCertificateMetadata) String() string {
  13179. return awsutil.Prettify(s)
  13180. }
  13181. // GoString returns the string representation
  13182. func (s ServerCertificateMetadata) GoString() string {
  13183. return s.String()
  13184. }
  13185. type SetDefaultPolicyVersionInput struct {
  13186. _ struct{} `type:"structure"`
  13187. // The Amazon Resource Name (ARN) of the IAM policy whose default version you
  13188. // want to set.
  13189. //
  13190. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  13191. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  13192. // in the AWS General Reference.
  13193. PolicyArn *string `min:"20" type:"string" required:"true"`
  13194. // The version of the policy to set as the default (operative) version.
  13195. //
  13196. // For more information about managed policy versions, see Versioning for Managed
  13197. // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html)
  13198. // in the IAM User Guide.
  13199. VersionId *string `type:"string" required:"true"`
  13200. }
  13201. // String returns the string representation
  13202. func (s SetDefaultPolicyVersionInput) String() string {
  13203. return awsutil.Prettify(s)
  13204. }
  13205. // GoString returns the string representation
  13206. func (s SetDefaultPolicyVersionInput) GoString() string {
  13207. return s.String()
  13208. }
  13209. // Validate inspects the fields of the type to determine if they are valid.
  13210. func (s *SetDefaultPolicyVersionInput) Validate() error {
  13211. invalidParams := request.ErrInvalidParams{Context: "SetDefaultPolicyVersionInput"}
  13212. if s.PolicyArn == nil {
  13213. invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  13214. }
  13215. if s.PolicyArn != nil && len(*s.PolicyArn) < 20 {
  13216. invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 20))
  13217. }
  13218. if s.VersionId == nil {
  13219. invalidParams.Add(request.NewErrParamRequired("VersionId"))
  13220. }
  13221. if invalidParams.Len() > 0 {
  13222. return invalidParams
  13223. }
  13224. return nil
  13225. }
  13226. type SetDefaultPolicyVersionOutput struct {
  13227. _ struct{} `type:"structure"`
  13228. }
  13229. // String returns the string representation
  13230. func (s SetDefaultPolicyVersionOutput) String() string {
  13231. return awsutil.Prettify(s)
  13232. }
  13233. // GoString returns the string representation
  13234. func (s SetDefaultPolicyVersionOutput) GoString() string {
  13235. return s.String()
  13236. }
  13237. // Contains information about an X.509 signing certificate.
  13238. //
  13239. // This data type is used as a response element in the UploadSigningCertificate
  13240. // and ListSigningCertificates actions.
  13241. type SigningCertificate struct {
  13242. _ struct{} `type:"structure"`
  13243. // The contents of the signing certificate.
  13244. CertificateBody *string `min:"1" type:"string" required:"true"`
  13245. // The ID for the signing certificate.
  13246. CertificateId *string `min:"24" type:"string" required:"true"`
  13247. // The status of the signing certificate. Active means the key is valid for
  13248. // API calls, while Inactive means it is not.
  13249. Status *string `type:"string" required:"true" enum:"statusType"`
  13250. // The date when the signing certificate was uploaded.
  13251. UploadDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  13252. // The name of the user the signing certificate is associated with.
  13253. UserName *string `min:"1" type:"string" required:"true"`
  13254. }
  13255. // String returns the string representation
  13256. func (s SigningCertificate) String() string {
  13257. return awsutil.Prettify(s)
  13258. }
  13259. // GoString returns the string representation
  13260. func (s SigningCertificate) GoString() string {
  13261. return s.String()
  13262. }
  13263. type SimulateCustomPolicyInput struct {
  13264. _ struct{} `type:"structure"`
  13265. // A list of names of API actions to evaluate in the simulation. Each action
  13266. // is evaluated against each resource. Each action must include the service
  13267. // identifier, such as iam:CreateUser.
  13268. ActionNames []*string `type:"list" required:"true"`
  13269. // The ARN of the IAM user that you want to use as the simulated caller of the
  13270. // APIs. CallerArn is required if you include a ResourcePolicy so that the policy's
  13271. // Principal element has a value to use in evaluating the policy.
  13272. //
  13273. // You can specify only the ARN of an IAM user. You cannot specify the ARN
  13274. // of an assumed role, federated user, or a service principal.
  13275. CallerArn *string `min:"1" type:"string"`
  13276. // A list of context keys and corresponding values for the simulation to use.
  13277. // Whenever a context key is evaluated in one of the simulated IAM permission
  13278. // policies, the corresponding value is supplied.
  13279. ContextEntries []*ContextEntry `type:"list"`
  13280. // Use this parameter only when paginating results and only after you receive
  13281. // a response indicating that the results are truncated. Set it to the value
  13282. // of the Marker element in the response that you received to indicate where
  13283. // the next call should start.
  13284. Marker *string `min:"1" type:"string"`
  13285. // Use this only when paginating results to indicate the maximum number of items
  13286. // you want in the response. If additional items exist beyond the maximum you
  13287. // specify, the IsTruncated response element is true.
  13288. //
  13289. // This parameter is optional. If you do not include it, it defaults to 100.
  13290. // Note that IAM might return fewer results, even when there are more results
  13291. // available. In that case, the IsTruncated response element returns true and
  13292. // Marker contains a value to include in the subsequent call that tells the
  13293. // service where to continue from.
  13294. MaxItems *int64 `min:"1" type:"integer"`
  13295. // A list of policy documents to include in the simulation. Each document is
  13296. // specified as a string containing the complete, valid JSON text of an IAM
  13297. // policy. Do not include any resource-based policies in this parameter. Any
  13298. // resource-based policy must be submitted with the ResourcePolicy parameter.
  13299. // The policies cannot be "scope-down" policies, such as you could include in
  13300. // a call to GetFederationToken (http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetFederationToken.html)
  13301. // or one of the AssumeRole (http://docs.aws.amazon.com/IAM/latest/APIReference/API_AssumeRole.html)
  13302. // APIs to restrict what a user can do while using the temporary credentials.
  13303. //
  13304. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  13305. // a string of characters consisting of any printable ASCII character ranging
  13306. // from the space character (\u0020) through end of the ASCII character range
  13307. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  13308. // (\u000A), and carriage return (\u000D).
  13309. PolicyInputList []*string `type:"list" required:"true"`
  13310. // A list of ARNs of AWS resources to include in the simulation. If this parameter
  13311. // is not provided then the value defaults to * (all resources). Each API in
  13312. // the ActionNames parameter is evaluated for each resource in this list. The
  13313. // simulation determines the access result (allowed or denied) of each combination
  13314. // and reports it in the response.
  13315. //
  13316. // The simulation does not automatically retrieve policies for the specified
  13317. // resources. If you want to include a resource policy in the simulation, then
  13318. // you must include the policy as a string in the ResourcePolicy parameter.
  13319. //
  13320. // If you include a ResourcePolicy, then it must be applicable to all of the
  13321. // resources included in the simulation or you receive an invalid input error.
  13322. //
  13323. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  13324. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  13325. // in the AWS General Reference.
  13326. ResourceArns []*string `type:"list"`
  13327. // Specifies the type of simulation to run. Different APIs that support resource-based
  13328. // policies require different combinations of resources. By specifying the type
  13329. // of simulation to run, you enable the policy simulator to enforce the presence
  13330. // of the required resources to ensure reliable simulation results. If your
  13331. // simulation does not match one of the following scenarios, then you can omit
  13332. // this parameter. The following list shows each of the supported scenario values
  13333. // and the resources that you must define to run the simulation.
  13334. //
  13335. // Each of the EC2 scenarios requires that you specify instance, image, and
  13336. // security-group resources. If your scenario includes an EBS volume, then you
  13337. // must specify that volume as a resource. If the EC2 scenario includes VPC,
  13338. // then you must supply the network-interface resource. If it includes an IP
  13339. // subnet, then you must specify the subnet resource. For more information on
  13340. // the EC2 scenario options, see Supported Platforms (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)
  13341. // in the AWS EC2 User Guide.
  13342. //
  13343. // EC2-Classic-InstanceStore
  13344. //
  13345. // instance, image, security-group
  13346. //
  13347. // EC2-Classic-EBS
  13348. //
  13349. // instance, image, security-group, volume
  13350. //
  13351. // EC2-VPC-InstanceStore
  13352. //
  13353. // instance, image, security-group, network-interface
  13354. //
  13355. // EC2-VPC-InstanceStore-Subnet
  13356. //
  13357. // instance, image, security-group, network-interface, subnet
  13358. //
  13359. // EC2-VPC-EBS
  13360. //
  13361. // instance, image, security-group, network-interface, volume
  13362. //
  13363. // EC2-VPC-EBS-Subnet
  13364. //
  13365. // instance, image, security-group, network-interface, subnet, volume
  13366. ResourceHandlingOption *string `min:"1" type:"string"`
  13367. // An AWS account ID that specifies the owner of any simulated resource that
  13368. // does not identify its owner in the resource ARN, such as an S3 bucket or
  13369. // object. If ResourceOwner is specified, it is also used as the account owner
  13370. // of any ResourcePolicy included in the simulation. If the ResourceOwner parameter
  13371. // is not specified, then the owner of the resources and the resource policy
  13372. // defaults to the account of the identity provided in CallerArn. This parameter
  13373. // is required only if you specify a resource-based policy and account that
  13374. // owns the resource is different from the account that owns the simulated calling
  13375. // user CallerArn.
  13376. ResourceOwner *string `min:"1" type:"string"`
  13377. // A resource-based policy to include in the simulation provided as a string.
  13378. // Each resource in the simulation is treated as if it had this policy attached.
  13379. // You can include only one resource-based policy in a simulation.
  13380. //
  13381. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  13382. // a string of characters consisting of any printable ASCII character ranging
  13383. // from the space character (\u0020) through end of the ASCII character range
  13384. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  13385. // (\u000A), and carriage return (\u000D).
  13386. ResourcePolicy *string `min:"1" type:"string"`
  13387. }
  13388. // String returns the string representation
  13389. func (s SimulateCustomPolicyInput) String() string {
  13390. return awsutil.Prettify(s)
  13391. }
  13392. // GoString returns the string representation
  13393. func (s SimulateCustomPolicyInput) GoString() string {
  13394. return s.String()
  13395. }
  13396. // Validate inspects the fields of the type to determine if they are valid.
  13397. func (s *SimulateCustomPolicyInput) Validate() error {
  13398. invalidParams := request.ErrInvalidParams{Context: "SimulateCustomPolicyInput"}
  13399. if s.ActionNames == nil {
  13400. invalidParams.Add(request.NewErrParamRequired("ActionNames"))
  13401. }
  13402. if s.CallerArn != nil && len(*s.CallerArn) < 1 {
  13403. invalidParams.Add(request.NewErrParamMinLen("CallerArn", 1))
  13404. }
  13405. if s.Marker != nil && len(*s.Marker) < 1 {
  13406. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  13407. }
  13408. if s.MaxItems != nil && *s.MaxItems < 1 {
  13409. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  13410. }
  13411. if s.PolicyInputList == nil {
  13412. invalidParams.Add(request.NewErrParamRequired("PolicyInputList"))
  13413. }
  13414. if s.ResourceHandlingOption != nil && len(*s.ResourceHandlingOption) < 1 {
  13415. invalidParams.Add(request.NewErrParamMinLen("ResourceHandlingOption", 1))
  13416. }
  13417. if s.ResourceOwner != nil && len(*s.ResourceOwner) < 1 {
  13418. invalidParams.Add(request.NewErrParamMinLen("ResourceOwner", 1))
  13419. }
  13420. if s.ResourcePolicy != nil && len(*s.ResourcePolicy) < 1 {
  13421. invalidParams.Add(request.NewErrParamMinLen("ResourcePolicy", 1))
  13422. }
  13423. if s.ContextEntries != nil {
  13424. for i, v := range s.ContextEntries {
  13425. if v == nil {
  13426. continue
  13427. }
  13428. if err := v.Validate(); err != nil {
  13429. invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContextEntries", i), err.(request.ErrInvalidParams))
  13430. }
  13431. }
  13432. }
  13433. if invalidParams.Len() > 0 {
  13434. return invalidParams
  13435. }
  13436. return nil
  13437. }
  13438. // Contains the response to a successful SimulatePrincipalPolicy or SimulateCustomPolicy
  13439. // request.
  13440. type SimulatePolicyResponse struct {
  13441. _ struct{} `type:"structure"`
  13442. // The results of the simulation.
  13443. EvaluationResults []*EvaluationResult `type:"list"`
  13444. // A flag that indicates whether there are more items to return. If your results
  13445. // were truncated, you can make a subsequent pagination request using the Marker
  13446. // request parameter to retrieve more items. Note that IAM might return fewer
  13447. // than the MaxItems number of results even when there are more results available.
  13448. // We recommend that you check IsTruncated after every call to ensure that you
  13449. // receive all of your results.
  13450. IsTruncated *bool `type:"boolean"`
  13451. // When IsTruncated is true, this element is present and contains the value
  13452. // to use for the Marker parameter in a subsequent pagination request.
  13453. Marker *string `min:"1" type:"string"`
  13454. }
  13455. // String returns the string representation
  13456. func (s SimulatePolicyResponse) String() string {
  13457. return awsutil.Prettify(s)
  13458. }
  13459. // GoString returns the string representation
  13460. func (s SimulatePolicyResponse) GoString() string {
  13461. return s.String()
  13462. }
  13463. type SimulatePrincipalPolicyInput struct {
  13464. _ struct{} `type:"structure"`
  13465. // A list of names of API actions to evaluate in the simulation. Each action
  13466. // is evaluated for each resource. Each action must include the service identifier,
  13467. // such as iam:CreateUser.
  13468. ActionNames []*string `type:"list" required:"true"`
  13469. // The ARN of the IAM user that you want to specify as the simulated caller
  13470. // of the APIs. If you do not specify a CallerArn, it defaults to the ARN of
  13471. // the user that you specify in PolicySourceArn, if you specified a user. If
  13472. // you include both a PolicySourceArn (for example, arn:aws:iam::123456789012:user/David)
  13473. // and a CallerArn (for example, arn:aws:iam::123456789012:user/Bob), the result
  13474. // is that you simulate calling the APIs as Bob, as if Bob had David's policies.
  13475. //
  13476. // You can specify only the ARN of an IAM user. You cannot specify the ARN
  13477. // of an assumed role, federated user, or a service principal.
  13478. //
  13479. // CallerArn is required if you include a ResourcePolicy and the PolicySourceArn
  13480. // is not the ARN for an IAM user. This is required so that the resource-based
  13481. // policy's Principal element has a value to use in evaluating the policy.
  13482. //
  13483. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  13484. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  13485. // in the AWS General Reference.
  13486. CallerArn *string `min:"1" type:"string"`
  13487. // A list of context keys and corresponding values for the simulation to use.
  13488. // Whenever a context key is evaluated in one of the simulated IAM permission
  13489. // policies, the corresponding value is supplied.
  13490. ContextEntries []*ContextEntry `type:"list"`
  13491. // Use this parameter only when paginating results and only after you receive
  13492. // a response indicating that the results are truncated. Set it to the value
  13493. // of the Marker element in the response that you received to indicate where
  13494. // the next call should start.
  13495. Marker *string `min:"1" type:"string"`
  13496. // Use this only when paginating results to indicate the maximum number of items
  13497. // you want in the response. If additional items exist beyond the maximum you
  13498. // specify, the IsTruncated response element is true.
  13499. //
  13500. // This parameter is optional. If you do not include it, it defaults to 100.
  13501. // Note that IAM might return fewer results, even when there are more results
  13502. // available. In that case, the IsTruncated response element returns true and
  13503. // Marker contains a value to include in the subsequent call that tells the
  13504. // service where to continue from.
  13505. MaxItems *int64 `min:"1" type:"integer"`
  13506. // An optional list of additional policy documents to include in the simulation.
  13507. // Each document is specified as a string containing the complete, valid JSON
  13508. // text of an IAM policy.
  13509. //
  13510. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  13511. // a string of characters consisting of any printable ASCII character ranging
  13512. // from the space character (\u0020) through end of the ASCII character range
  13513. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  13514. // (\u000A), and carriage return (\u000D).
  13515. PolicyInputList []*string `type:"list"`
  13516. // The Amazon Resource Name (ARN) of a user, group, or role whose policies you
  13517. // want to include in the simulation. If you specify a user, group, or role,
  13518. // the simulation includes all policies that are associated with that entity.
  13519. // If you specify a user, the simulation also includes all policies that are
  13520. // attached to any groups the user belongs to.
  13521. //
  13522. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  13523. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  13524. // in the AWS General Reference.
  13525. PolicySourceArn *string `min:"20" type:"string" required:"true"`
  13526. // A list of ARNs of AWS resources to include in the simulation. If this parameter
  13527. // is not provided then the value defaults to * (all resources). Each API in
  13528. // the ActionNames parameter is evaluated for each resource in this list. The
  13529. // simulation determines the access result (allowed or denied) of each combination
  13530. // and reports it in the response.
  13531. //
  13532. // The simulation does not automatically retrieve policies for the specified
  13533. // resources. If you want to include a resource policy in the simulation, then
  13534. // you must include the policy as a string in the ResourcePolicy parameter.
  13535. //
  13536. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  13537. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  13538. // in the AWS General Reference.
  13539. ResourceArns []*string `type:"list"`
  13540. // Specifies the type of simulation to run. Different APIs that support resource-based
  13541. // policies require different combinations of resources. By specifying the type
  13542. // of simulation to run, you enable the policy simulator to enforce the presence
  13543. // of the required resources to ensure reliable simulation results. If your
  13544. // simulation does not match one of the following scenarios, then you can omit
  13545. // this parameter. The following list shows each of the supported scenario values
  13546. // and the resources that you must define to run the simulation.
  13547. //
  13548. // Each of the EC2 scenarios requires that you specify instance, image, and
  13549. // security-group resources. If your scenario includes an EBS volume, then you
  13550. // must specify that volume as a resource. If the EC2 scenario includes VPC,
  13551. // then you must supply the network-interface resource. If it includes an IP
  13552. // subnet, then you must specify the subnet resource. For more information on
  13553. // the EC2 scenario options, see Supported Platforms (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)
  13554. // in the AWS EC2 User Guide.
  13555. //
  13556. // EC2-Classic-InstanceStore
  13557. //
  13558. // instance, image, security-group
  13559. //
  13560. // EC2-Classic-EBS
  13561. //
  13562. // instance, image, security-group, volume
  13563. //
  13564. // EC2-VPC-InstanceStore
  13565. //
  13566. // instance, image, security-group, network-interface
  13567. //
  13568. // EC2-VPC-InstanceStore-Subnet
  13569. //
  13570. // instance, image, security-group, network-interface, subnet
  13571. //
  13572. // EC2-VPC-EBS
  13573. //
  13574. // instance, image, security-group, network-interface, volume
  13575. //
  13576. // EC2-VPC-EBS-Subnet
  13577. //
  13578. // instance, image, security-group, network-interface, subnet, volume
  13579. ResourceHandlingOption *string `min:"1" type:"string"`
  13580. // An AWS account ID that specifies the owner of any simulated resource that
  13581. // does not identify its owner in the resource ARN, such as an S3 bucket or
  13582. // object. If ResourceOwner is specified, it is also used as the account owner
  13583. // of any ResourcePolicy included in the simulation. If the ResourceOwner parameter
  13584. // is not specified, then the owner of the resources and the resource policy
  13585. // defaults to the account of the identity provided in CallerArn. This parameter
  13586. // is required only if you specify a resource-based policy and account that
  13587. // owns the resource is different from the account that owns the simulated calling
  13588. // user CallerArn.
  13589. ResourceOwner *string `min:"1" type:"string"`
  13590. // A resource-based policy to include in the simulation provided as a string.
  13591. // Each resource in the simulation is treated as if it had this policy attached.
  13592. // You can include only one resource-based policy in a simulation.
  13593. //
  13594. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  13595. // a string of characters consisting of any printable ASCII character ranging
  13596. // from the space character (\u0020) through end of the ASCII character range
  13597. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  13598. // (\u000A), and carriage return (\u000D).
  13599. ResourcePolicy *string `min:"1" type:"string"`
  13600. }
  13601. // String returns the string representation
  13602. func (s SimulatePrincipalPolicyInput) String() string {
  13603. return awsutil.Prettify(s)
  13604. }
  13605. // GoString returns the string representation
  13606. func (s SimulatePrincipalPolicyInput) GoString() string {
  13607. return s.String()
  13608. }
  13609. // Validate inspects the fields of the type to determine if they are valid.
  13610. func (s *SimulatePrincipalPolicyInput) Validate() error {
  13611. invalidParams := request.ErrInvalidParams{Context: "SimulatePrincipalPolicyInput"}
  13612. if s.ActionNames == nil {
  13613. invalidParams.Add(request.NewErrParamRequired("ActionNames"))
  13614. }
  13615. if s.CallerArn != nil && len(*s.CallerArn) < 1 {
  13616. invalidParams.Add(request.NewErrParamMinLen("CallerArn", 1))
  13617. }
  13618. if s.Marker != nil && len(*s.Marker) < 1 {
  13619. invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
  13620. }
  13621. if s.MaxItems != nil && *s.MaxItems < 1 {
  13622. invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
  13623. }
  13624. if s.PolicySourceArn == nil {
  13625. invalidParams.Add(request.NewErrParamRequired("PolicySourceArn"))
  13626. }
  13627. if s.PolicySourceArn != nil && len(*s.PolicySourceArn) < 20 {
  13628. invalidParams.Add(request.NewErrParamMinLen("PolicySourceArn", 20))
  13629. }
  13630. if s.ResourceHandlingOption != nil && len(*s.ResourceHandlingOption) < 1 {
  13631. invalidParams.Add(request.NewErrParamMinLen("ResourceHandlingOption", 1))
  13632. }
  13633. if s.ResourceOwner != nil && len(*s.ResourceOwner) < 1 {
  13634. invalidParams.Add(request.NewErrParamMinLen("ResourceOwner", 1))
  13635. }
  13636. if s.ResourcePolicy != nil && len(*s.ResourcePolicy) < 1 {
  13637. invalidParams.Add(request.NewErrParamMinLen("ResourcePolicy", 1))
  13638. }
  13639. if s.ContextEntries != nil {
  13640. for i, v := range s.ContextEntries {
  13641. if v == nil {
  13642. continue
  13643. }
  13644. if err := v.Validate(); err != nil {
  13645. invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ContextEntries", i), err.(request.ErrInvalidParams))
  13646. }
  13647. }
  13648. }
  13649. if invalidParams.Len() > 0 {
  13650. return invalidParams
  13651. }
  13652. return nil
  13653. }
  13654. // Contains a reference to a Statement element in a policy document that determines
  13655. // the result of the simulation.
  13656. //
  13657. // This data type is used by the MatchedStatements member of the EvaluationResult
  13658. // type.
  13659. type Statement struct {
  13660. _ struct{} `type:"structure"`
  13661. // The row and column of the end of a Statement in an IAM policy.
  13662. EndPosition *Position `type:"structure"`
  13663. // The identifier of the policy that was provided as an input.
  13664. SourcePolicyId *string `type:"string"`
  13665. // The type of the policy.
  13666. SourcePolicyType *string `type:"string" enum:"PolicySourceType"`
  13667. // The row and column of the beginning of the Statement in an IAM policy.
  13668. StartPosition *Position `type:"structure"`
  13669. }
  13670. // String returns the string representation
  13671. func (s Statement) String() string {
  13672. return awsutil.Prettify(s)
  13673. }
  13674. // GoString returns the string representation
  13675. func (s Statement) GoString() string {
  13676. return s.String()
  13677. }
  13678. type UpdateAccessKeyInput struct {
  13679. _ struct{} `type:"structure"`
  13680. // The access key ID of the secret access key you want to update.
  13681. //
  13682. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  13683. // a string of characters that can consist of any upper or lowercased letter
  13684. // or digit.
  13685. AccessKeyId *string `min:"16" type:"string" required:"true"`
  13686. // The status you want to assign to the secret access key. Active means the
  13687. // key can be used for API calls to AWS, while Inactive means the key cannot
  13688. // be used.
  13689. Status *string `type:"string" required:"true" enum:"statusType"`
  13690. // The name of the user whose key you want to update.
  13691. //
  13692. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  13693. // a string of characters consisting of upper and lowercase alphanumeric characters
  13694. // with no spaces. You can also include any of the following characters: =,.@-
  13695. UserName *string `min:"1" type:"string"`
  13696. }
  13697. // String returns the string representation
  13698. func (s UpdateAccessKeyInput) String() string {
  13699. return awsutil.Prettify(s)
  13700. }
  13701. // GoString returns the string representation
  13702. func (s UpdateAccessKeyInput) GoString() string {
  13703. return s.String()
  13704. }
  13705. // Validate inspects the fields of the type to determine if they are valid.
  13706. func (s *UpdateAccessKeyInput) Validate() error {
  13707. invalidParams := request.ErrInvalidParams{Context: "UpdateAccessKeyInput"}
  13708. if s.AccessKeyId == nil {
  13709. invalidParams.Add(request.NewErrParamRequired("AccessKeyId"))
  13710. }
  13711. if s.AccessKeyId != nil && len(*s.AccessKeyId) < 16 {
  13712. invalidParams.Add(request.NewErrParamMinLen("AccessKeyId", 16))
  13713. }
  13714. if s.Status == nil {
  13715. invalidParams.Add(request.NewErrParamRequired("Status"))
  13716. }
  13717. if s.UserName != nil && len(*s.UserName) < 1 {
  13718. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  13719. }
  13720. if invalidParams.Len() > 0 {
  13721. return invalidParams
  13722. }
  13723. return nil
  13724. }
  13725. type UpdateAccessKeyOutput struct {
  13726. _ struct{} `type:"structure"`
  13727. }
  13728. // String returns the string representation
  13729. func (s UpdateAccessKeyOutput) String() string {
  13730. return awsutil.Prettify(s)
  13731. }
  13732. // GoString returns the string representation
  13733. func (s UpdateAccessKeyOutput) GoString() string {
  13734. return s.String()
  13735. }
  13736. type UpdateAccountPasswordPolicyInput struct {
  13737. _ struct{} `type:"structure"`
  13738. // Allows all IAM users in your account to use the AWS Management Console to
  13739. // change their own passwords. For more information, see Letting IAM Users Change
  13740. // Their Own Passwords (http://docs.aws.amazon.com/IAM/latest/UserGuide/HowToPwdIAMUser.html)
  13741. // in the IAM User Guide.
  13742. //
  13743. // Default value: false
  13744. AllowUsersToChangePassword *bool `type:"boolean"`
  13745. // Prevents IAM users from setting a new password after their password has expired.
  13746. //
  13747. // Default value: false
  13748. HardExpiry *bool `type:"boolean"`
  13749. // The number of days that an IAM user password is valid. The default value
  13750. // of 0 means IAM user passwords never expire.
  13751. //
  13752. // Default value: 0
  13753. MaxPasswordAge *int64 `min:"1" type:"integer"`
  13754. // The minimum number of characters allowed in an IAM user password.
  13755. //
  13756. // Default value: 6
  13757. MinimumPasswordLength *int64 `min:"6" type:"integer"`
  13758. // Specifies the number of previous passwords that IAM users are prevented from
  13759. // reusing. The default value of 0 means IAM users are not prevented from reusing
  13760. // previous passwords.
  13761. //
  13762. // Default value: 0
  13763. PasswordReusePrevention *int64 `min:"1" type:"integer"`
  13764. // Specifies whether IAM user passwords must contain at least one lowercase
  13765. // character from the ISO basic Latin alphabet (a to z).
  13766. //
  13767. // Default value: false
  13768. RequireLowercaseCharacters *bool `type:"boolean"`
  13769. // Specifies whether IAM user passwords must contain at least one numeric character
  13770. // (0 to 9).
  13771. //
  13772. // Default value: false
  13773. RequireNumbers *bool `type:"boolean"`
  13774. // Specifies whether IAM user passwords must contain at least one of the following
  13775. // non-alphanumeric characters:
  13776. //
  13777. // ! @ # $ % ^ &amp; * ( ) _ + - = [ ] { } | '
  13778. //
  13779. // Default value: false
  13780. RequireSymbols *bool `type:"boolean"`
  13781. // Specifies whether IAM user passwords must contain at least one uppercase
  13782. // character from the ISO basic Latin alphabet (A to Z).
  13783. //
  13784. // Default value: false
  13785. RequireUppercaseCharacters *bool `type:"boolean"`
  13786. }
  13787. // String returns the string representation
  13788. func (s UpdateAccountPasswordPolicyInput) String() string {
  13789. return awsutil.Prettify(s)
  13790. }
  13791. // GoString returns the string representation
  13792. func (s UpdateAccountPasswordPolicyInput) GoString() string {
  13793. return s.String()
  13794. }
  13795. // Validate inspects the fields of the type to determine if they are valid.
  13796. func (s *UpdateAccountPasswordPolicyInput) Validate() error {
  13797. invalidParams := request.ErrInvalidParams{Context: "UpdateAccountPasswordPolicyInput"}
  13798. if s.MaxPasswordAge != nil && *s.MaxPasswordAge < 1 {
  13799. invalidParams.Add(request.NewErrParamMinValue("MaxPasswordAge", 1))
  13800. }
  13801. if s.MinimumPasswordLength != nil && *s.MinimumPasswordLength < 6 {
  13802. invalidParams.Add(request.NewErrParamMinValue("MinimumPasswordLength", 6))
  13803. }
  13804. if s.PasswordReusePrevention != nil && *s.PasswordReusePrevention < 1 {
  13805. invalidParams.Add(request.NewErrParamMinValue("PasswordReusePrevention", 1))
  13806. }
  13807. if invalidParams.Len() > 0 {
  13808. return invalidParams
  13809. }
  13810. return nil
  13811. }
  13812. type UpdateAccountPasswordPolicyOutput struct {
  13813. _ struct{} `type:"structure"`
  13814. }
  13815. // String returns the string representation
  13816. func (s UpdateAccountPasswordPolicyOutput) String() string {
  13817. return awsutil.Prettify(s)
  13818. }
  13819. // GoString returns the string representation
  13820. func (s UpdateAccountPasswordPolicyOutput) GoString() string {
  13821. return s.String()
  13822. }
  13823. type UpdateAssumeRolePolicyInput struct {
  13824. _ struct{} `type:"structure"`
  13825. // The policy that grants an entity permission to assume the role.
  13826. //
  13827. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  13828. // a string of characters consisting of any printable ASCII character ranging
  13829. // from the space character (\u0020) through end of the ASCII character range
  13830. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  13831. // (\u000A), and carriage return (\u000D).
  13832. PolicyDocument *string `min:"1" type:"string" required:"true"`
  13833. // The name of the role to update with the new policy.
  13834. //
  13835. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  13836. // a string of characters consisting of upper and lowercase alphanumeric characters
  13837. // with no spaces. You can also include any of the following characters: =,.@-
  13838. RoleName *string `min:"1" type:"string" required:"true"`
  13839. }
  13840. // String returns the string representation
  13841. func (s UpdateAssumeRolePolicyInput) String() string {
  13842. return awsutil.Prettify(s)
  13843. }
  13844. // GoString returns the string representation
  13845. func (s UpdateAssumeRolePolicyInput) GoString() string {
  13846. return s.String()
  13847. }
  13848. // Validate inspects the fields of the type to determine if they are valid.
  13849. func (s *UpdateAssumeRolePolicyInput) Validate() error {
  13850. invalidParams := request.ErrInvalidParams{Context: "UpdateAssumeRolePolicyInput"}
  13851. if s.PolicyDocument == nil {
  13852. invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
  13853. }
  13854. if s.PolicyDocument != nil && len(*s.PolicyDocument) < 1 {
  13855. invalidParams.Add(request.NewErrParamMinLen("PolicyDocument", 1))
  13856. }
  13857. if s.RoleName == nil {
  13858. invalidParams.Add(request.NewErrParamRequired("RoleName"))
  13859. }
  13860. if s.RoleName != nil && len(*s.RoleName) < 1 {
  13861. invalidParams.Add(request.NewErrParamMinLen("RoleName", 1))
  13862. }
  13863. if invalidParams.Len() > 0 {
  13864. return invalidParams
  13865. }
  13866. return nil
  13867. }
  13868. type UpdateAssumeRolePolicyOutput struct {
  13869. _ struct{} `type:"structure"`
  13870. }
  13871. // String returns the string representation
  13872. func (s UpdateAssumeRolePolicyOutput) String() string {
  13873. return awsutil.Prettify(s)
  13874. }
  13875. // GoString returns the string representation
  13876. func (s UpdateAssumeRolePolicyOutput) GoString() string {
  13877. return s.String()
  13878. }
  13879. type UpdateGroupInput struct {
  13880. _ struct{} `type:"structure"`
  13881. // Name of the IAM group to update. If you're changing the name of the group,
  13882. // this is the original name.
  13883. //
  13884. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  13885. // a string of characters consisting of upper and lowercase alphanumeric characters
  13886. // with no spaces. You can also include any of the following characters: =,.@-
  13887. GroupName *string `min:"1" type:"string" required:"true"`
  13888. // New name for the IAM group. Only include this if changing the group's name.
  13889. //
  13890. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  13891. // a string of characters consisting of upper and lowercase alphanumeric characters
  13892. // with no spaces. You can also include any of the following characters: =,.@-
  13893. NewGroupName *string `min:"1" type:"string"`
  13894. // New path for the IAM group. Only include this if changing the group's path.
  13895. //
  13896. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  13897. // a string of characters consisting of either a forward slash (/) by itself
  13898. // or a string that must begin and end with forward slashes, containing any
  13899. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  13900. // most punctuation characters, digits, and upper and lowercased letters.
  13901. NewPath *string `min:"1" type:"string"`
  13902. }
  13903. // String returns the string representation
  13904. func (s UpdateGroupInput) String() string {
  13905. return awsutil.Prettify(s)
  13906. }
  13907. // GoString returns the string representation
  13908. func (s UpdateGroupInput) GoString() string {
  13909. return s.String()
  13910. }
  13911. // Validate inspects the fields of the type to determine if they are valid.
  13912. func (s *UpdateGroupInput) Validate() error {
  13913. invalidParams := request.ErrInvalidParams{Context: "UpdateGroupInput"}
  13914. if s.GroupName == nil {
  13915. invalidParams.Add(request.NewErrParamRequired("GroupName"))
  13916. }
  13917. if s.GroupName != nil && len(*s.GroupName) < 1 {
  13918. invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  13919. }
  13920. if s.NewGroupName != nil && len(*s.NewGroupName) < 1 {
  13921. invalidParams.Add(request.NewErrParamMinLen("NewGroupName", 1))
  13922. }
  13923. if s.NewPath != nil && len(*s.NewPath) < 1 {
  13924. invalidParams.Add(request.NewErrParamMinLen("NewPath", 1))
  13925. }
  13926. if invalidParams.Len() > 0 {
  13927. return invalidParams
  13928. }
  13929. return nil
  13930. }
  13931. type UpdateGroupOutput struct {
  13932. _ struct{} `type:"structure"`
  13933. }
  13934. // String returns the string representation
  13935. func (s UpdateGroupOutput) String() string {
  13936. return awsutil.Prettify(s)
  13937. }
  13938. // GoString returns the string representation
  13939. func (s UpdateGroupOutput) GoString() string {
  13940. return s.String()
  13941. }
  13942. type UpdateLoginProfileInput struct {
  13943. _ struct{} `type:"structure"`
  13944. // The new password for the specified IAM user.
  13945. //
  13946. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  13947. // a string of characters consisting of any printable ASCII character ranging
  13948. // from the space character (\u0020) through end of the ASCII character range
  13949. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  13950. // (\u000A), and carriage return (\u000D). However, the format can be further
  13951. // restricted by the account administrator by setting a password policy on the
  13952. // AWS account. For more information, see UpdateAccountPasswordPolicy.
  13953. Password *string `min:"1" type:"string"`
  13954. // Allows this new password to be used only once by requiring the specified
  13955. // IAM user to set a new password on next sign-in.
  13956. PasswordResetRequired *bool `type:"boolean"`
  13957. // The name of the user whose password you want to update.
  13958. //
  13959. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  13960. // a string of characters consisting of upper and lowercase alphanumeric characters
  13961. // with no spaces. You can also include any of the following characters: =,.@-
  13962. UserName *string `min:"1" type:"string" required:"true"`
  13963. }
  13964. // String returns the string representation
  13965. func (s UpdateLoginProfileInput) String() string {
  13966. return awsutil.Prettify(s)
  13967. }
  13968. // GoString returns the string representation
  13969. func (s UpdateLoginProfileInput) GoString() string {
  13970. return s.String()
  13971. }
  13972. // Validate inspects the fields of the type to determine if they are valid.
  13973. func (s *UpdateLoginProfileInput) Validate() error {
  13974. invalidParams := request.ErrInvalidParams{Context: "UpdateLoginProfileInput"}
  13975. if s.Password != nil && len(*s.Password) < 1 {
  13976. invalidParams.Add(request.NewErrParamMinLen("Password", 1))
  13977. }
  13978. if s.UserName == nil {
  13979. invalidParams.Add(request.NewErrParamRequired("UserName"))
  13980. }
  13981. if s.UserName != nil && len(*s.UserName) < 1 {
  13982. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  13983. }
  13984. if invalidParams.Len() > 0 {
  13985. return invalidParams
  13986. }
  13987. return nil
  13988. }
  13989. type UpdateLoginProfileOutput struct {
  13990. _ struct{} `type:"structure"`
  13991. }
  13992. // String returns the string representation
  13993. func (s UpdateLoginProfileOutput) String() string {
  13994. return awsutil.Prettify(s)
  13995. }
  13996. // GoString returns the string representation
  13997. func (s UpdateLoginProfileOutput) GoString() string {
  13998. return s.String()
  13999. }
  14000. type UpdateOpenIDConnectProviderThumbprintInput struct {
  14001. _ struct{} `type:"structure"`
  14002. // The Amazon Resource Name (ARN) of the IAM OIDC provider resource object for
  14003. // which you want to update the thumbprint. You can get a list of OIDC provider
  14004. // ARNs by using the ListOpenIDConnectProviders action.
  14005. //
  14006. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  14007. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  14008. // in the AWS General Reference.
  14009. OpenIDConnectProviderArn *string `min:"20" type:"string" required:"true"`
  14010. // A list of certificate thumbprints that are associated with the specified
  14011. // IAM OpenID Connect provider. For more information, see CreateOpenIDConnectProvider.
  14012. ThumbprintList []*string `type:"list" required:"true"`
  14013. }
  14014. // String returns the string representation
  14015. func (s UpdateOpenIDConnectProviderThumbprintInput) String() string {
  14016. return awsutil.Prettify(s)
  14017. }
  14018. // GoString returns the string representation
  14019. func (s UpdateOpenIDConnectProviderThumbprintInput) GoString() string {
  14020. return s.String()
  14021. }
  14022. // Validate inspects the fields of the type to determine if they are valid.
  14023. func (s *UpdateOpenIDConnectProviderThumbprintInput) Validate() error {
  14024. invalidParams := request.ErrInvalidParams{Context: "UpdateOpenIDConnectProviderThumbprintInput"}
  14025. if s.OpenIDConnectProviderArn == nil {
  14026. invalidParams.Add(request.NewErrParamRequired("OpenIDConnectProviderArn"))
  14027. }
  14028. if s.OpenIDConnectProviderArn != nil && len(*s.OpenIDConnectProviderArn) < 20 {
  14029. invalidParams.Add(request.NewErrParamMinLen("OpenIDConnectProviderArn", 20))
  14030. }
  14031. if s.ThumbprintList == nil {
  14032. invalidParams.Add(request.NewErrParamRequired("ThumbprintList"))
  14033. }
  14034. if invalidParams.Len() > 0 {
  14035. return invalidParams
  14036. }
  14037. return nil
  14038. }
  14039. type UpdateOpenIDConnectProviderThumbprintOutput struct {
  14040. _ struct{} `type:"structure"`
  14041. }
  14042. // String returns the string representation
  14043. func (s UpdateOpenIDConnectProviderThumbprintOutput) String() string {
  14044. return awsutil.Prettify(s)
  14045. }
  14046. // GoString returns the string representation
  14047. func (s UpdateOpenIDConnectProviderThumbprintOutput) GoString() string {
  14048. return s.String()
  14049. }
  14050. type UpdateSAMLProviderInput struct {
  14051. _ struct{} `type:"structure"`
  14052. // An XML document generated by an identity provider (IdP) that supports SAML
  14053. // 2.0. The document includes the issuer's name, expiration information, and
  14054. // keys that can be used to validate the SAML authentication response (assertions)
  14055. // that are received from the IdP. You must generate the metadata document using
  14056. // the identity management software that is used as your organization's IdP.
  14057. SAMLMetadataDocument *string `min:"1000" type:"string" required:"true"`
  14058. // The Amazon Resource Name (ARN) of the SAML provider to update.
  14059. //
  14060. // For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  14061. // Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  14062. // in the AWS General Reference.
  14063. SAMLProviderArn *string `min:"20" type:"string" required:"true"`
  14064. }
  14065. // String returns the string representation
  14066. func (s UpdateSAMLProviderInput) String() string {
  14067. return awsutil.Prettify(s)
  14068. }
  14069. // GoString returns the string representation
  14070. func (s UpdateSAMLProviderInput) GoString() string {
  14071. return s.String()
  14072. }
  14073. // Validate inspects the fields of the type to determine if they are valid.
  14074. func (s *UpdateSAMLProviderInput) Validate() error {
  14075. invalidParams := request.ErrInvalidParams{Context: "UpdateSAMLProviderInput"}
  14076. if s.SAMLMetadataDocument == nil {
  14077. invalidParams.Add(request.NewErrParamRequired("SAMLMetadataDocument"))
  14078. }
  14079. if s.SAMLMetadataDocument != nil && len(*s.SAMLMetadataDocument) < 1000 {
  14080. invalidParams.Add(request.NewErrParamMinLen("SAMLMetadataDocument", 1000))
  14081. }
  14082. if s.SAMLProviderArn == nil {
  14083. invalidParams.Add(request.NewErrParamRequired("SAMLProviderArn"))
  14084. }
  14085. if s.SAMLProviderArn != nil && len(*s.SAMLProviderArn) < 20 {
  14086. invalidParams.Add(request.NewErrParamMinLen("SAMLProviderArn", 20))
  14087. }
  14088. if invalidParams.Len() > 0 {
  14089. return invalidParams
  14090. }
  14091. return nil
  14092. }
  14093. // Contains the response to a successful UpdateSAMLProvider request.
  14094. type UpdateSAMLProviderOutput struct {
  14095. _ struct{} `type:"structure"`
  14096. // The Amazon Resource Name (ARN) of the SAML provider that was updated.
  14097. SAMLProviderArn *string `min:"20" type:"string"`
  14098. }
  14099. // String returns the string representation
  14100. func (s UpdateSAMLProviderOutput) String() string {
  14101. return awsutil.Prettify(s)
  14102. }
  14103. // GoString returns the string representation
  14104. func (s UpdateSAMLProviderOutput) GoString() string {
  14105. return s.String()
  14106. }
  14107. type UpdateSSHPublicKeyInput struct {
  14108. _ struct{} `type:"structure"`
  14109. // The unique identifier for the SSH public key.
  14110. //
  14111. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14112. // a string of characters that can consist of any upper or lowercased letter
  14113. // or digit.
  14114. SSHPublicKeyId *string `min:"20" type:"string" required:"true"`
  14115. // The status to assign to the SSH public key. Active means the key can be used
  14116. // for authentication with an AWS CodeCommit repository. Inactive means the
  14117. // key cannot be used.
  14118. Status *string `type:"string" required:"true" enum:"statusType"`
  14119. // The name of the IAM user associated with the SSH public key.
  14120. //
  14121. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14122. // a string of characters consisting of upper and lowercase alphanumeric characters
  14123. // with no spaces. You can also include any of the following characters: =,.@-
  14124. UserName *string `min:"1" type:"string" required:"true"`
  14125. }
  14126. // String returns the string representation
  14127. func (s UpdateSSHPublicKeyInput) String() string {
  14128. return awsutil.Prettify(s)
  14129. }
  14130. // GoString returns the string representation
  14131. func (s UpdateSSHPublicKeyInput) GoString() string {
  14132. return s.String()
  14133. }
  14134. // Validate inspects the fields of the type to determine if they are valid.
  14135. func (s *UpdateSSHPublicKeyInput) Validate() error {
  14136. invalidParams := request.ErrInvalidParams{Context: "UpdateSSHPublicKeyInput"}
  14137. if s.SSHPublicKeyId == nil {
  14138. invalidParams.Add(request.NewErrParamRequired("SSHPublicKeyId"))
  14139. }
  14140. if s.SSHPublicKeyId != nil && len(*s.SSHPublicKeyId) < 20 {
  14141. invalidParams.Add(request.NewErrParamMinLen("SSHPublicKeyId", 20))
  14142. }
  14143. if s.Status == nil {
  14144. invalidParams.Add(request.NewErrParamRequired("Status"))
  14145. }
  14146. if s.UserName == nil {
  14147. invalidParams.Add(request.NewErrParamRequired("UserName"))
  14148. }
  14149. if s.UserName != nil && len(*s.UserName) < 1 {
  14150. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  14151. }
  14152. if invalidParams.Len() > 0 {
  14153. return invalidParams
  14154. }
  14155. return nil
  14156. }
  14157. type UpdateSSHPublicKeyOutput struct {
  14158. _ struct{} `type:"structure"`
  14159. }
  14160. // String returns the string representation
  14161. func (s UpdateSSHPublicKeyOutput) String() string {
  14162. return awsutil.Prettify(s)
  14163. }
  14164. // GoString returns the string representation
  14165. func (s UpdateSSHPublicKeyOutput) GoString() string {
  14166. return s.String()
  14167. }
  14168. type UpdateServerCertificateInput struct {
  14169. _ struct{} `type:"structure"`
  14170. // The new path for the server certificate. Include this only if you are updating
  14171. // the server certificate's path.
  14172. //
  14173. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14174. // a string of characters consisting of either a forward slash (/) by itself
  14175. // or a string that must begin and end with forward slashes, containing any
  14176. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  14177. // most punctuation characters, digits, and upper and lowercased letters.
  14178. NewPath *string `min:"1" type:"string"`
  14179. // The new name for the server certificate. Include this only if you are updating
  14180. // the server certificate's name. The name of the certificate cannot contain
  14181. // any spaces.
  14182. //
  14183. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14184. // a string of characters consisting of upper and lowercase alphanumeric characters
  14185. // with no spaces. You can also include any of the following characters: =,.@-
  14186. NewServerCertificateName *string `min:"1" type:"string"`
  14187. // The name of the server certificate that you want to update.
  14188. //
  14189. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14190. // a string of characters consisting of upper and lowercase alphanumeric characters
  14191. // with no spaces. You can also include any of the following characters: =,.@-
  14192. ServerCertificateName *string `min:"1" type:"string" required:"true"`
  14193. }
  14194. // String returns the string representation
  14195. func (s UpdateServerCertificateInput) String() string {
  14196. return awsutil.Prettify(s)
  14197. }
  14198. // GoString returns the string representation
  14199. func (s UpdateServerCertificateInput) GoString() string {
  14200. return s.String()
  14201. }
  14202. // Validate inspects the fields of the type to determine if they are valid.
  14203. func (s *UpdateServerCertificateInput) Validate() error {
  14204. invalidParams := request.ErrInvalidParams{Context: "UpdateServerCertificateInput"}
  14205. if s.NewPath != nil && len(*s.NewPath) < 1 {
  14206. invalidParams.Add(request.NewErrParamMinLen("NewPath", 1))
  14207. }
  14208. if s.NewServerCertificateName != nil && len(*s.NewServerCertificateName) < 1 {
  14209. invalidParams.Add(request.NewErrParamMinLen("NewServerCertificateName", 1))
  14210. }
  14211. if s.ServerCertificateName == nil {
  14212. invalidParams.Add(request.NewErrParamRequired("ServerCertificateName"))
  14213. }
  14214. if s.ServerCertificateName != nil && len(*s.ServerCertificateName) < 1 {
  14215. invalidParams.Add(request.NewErrParamMinLen("ServerCertificateName", 1))
  14216. }
  14217. if invalidParams.Len() > 0 {
  14218. return invalidParams
  14219. }
  14220. return nil
  14221. }
  14222. type UpdateServerCertificateOutput struct {
  14223. _ struct{} `type:"structure"`
  14224. }
  14225. // String returns the string representation
  14226. func (s UpdateServerCertificateOutput) String() string {
  14227. return awsutil.Prettify(s)
  14228. }
  14229. // GoString returns the string representation
  14230. func (s UpdateServerCertificateOutput) GoString() string {
  14231. return s.String()
  14232. }
  14233. type UpdateSigningCertificateInput struct {
  14234. _ struct{} `type:"structure"`
  14235. // The ID of the signing certificate you want to update.
  14236. //
  14237. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14238. // a string of characters that can consist of any upper or lowercased letter
  14239. // or digit.
  14240. CertificateId *string `min:"24" type:"string" required:"true"`
  14241. // The status you want to assign to the certificate. Active means the certificate
  14242. // can be used for API calls to AWS, while Inactive means the certificate cannot
  14243. // be used.
  14244. Status *string `type:"string" required:"true" enum:"statusType"`
  14245. // The name of the IAM user the signing certificate belongs to.
  14246. //
  14247. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14248. // a string of characters consisting of upper and lowercase alphanumeric characters
  14249. // with no spaces. You can also include any of the following characters: =,.@-
  14250. UserName *string `min:"1" type:"string"`
  14251. }
  14252. // String returns the string representation
  14253. func (s UpdateSigningCertificateInput) String() string {
  14254. return awsutil.Prettify(s)
  14255. }
  14256. // GoString returns the string representation
  14257. func (s UpdateSigningCertificateInput) GoString() string {
  14258. return s.String()
  14259. }
  14260. // Validate inspects the fields of the type to determine if they are valid.
  14261. func (s *UpdateSigningCertificateInput) Validate() error {
  14262. invalidParams := request.ErrInvalidParams{Context: "UpdateSigningCertificateInput"}
  14263. if s.CertificateId == nil {
  14264. invalidParams.Add(request.NewErrParamRequired("CertificateId"))
  14265. }
  14266. if s.CertificateId != nil && len(*s.CertificateId) < 24 {
  14267. invalidParams.Add(request.NewErrParamMinLen("CertificateId", 24))
  14268. }
  14269. if s.Status == nil {
  14270. invalidParams.Add(request.NewErrParamRequired("Status"))
  14271. }
  14272. if s.UserName != nil && len(*s.UserName) < 1 {
  14273. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  14274. }
  14275. if invalidParams.Len() > 0 {
  14276. return invalidParams
  14277. }
  14278. return nil
  14279. }
  14280. type UpdateSigningCertificateOutput struct {
  14281. _ struct{} `type:"structure"`
  14282. }
  14283. // String returns the string representation
  14284. func (s UpdateSigningCertificateOutput) String() string {
  14285. return awsutil.Prettify(s)
  14286. }
  14287. // GoString returns the string representation
  14288. func (s UpdateSigningCertificateOutput) GoString() string {
  14289. return s.String()
  14290. }
  14291. type UpdateUserInput struct {
  14292. _ struct{} `type:"structure"`
  14293. // New path for the IAM user. Include this parameter only if you're changing
  14294. // the user's path.
  14295. //
  14296. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14297. // a string of characters consisting of either a forward slash (/) by itself
  14298. // or a string that must begin and end with forward slashes, containing any
  14299. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  14300. // most punctuation characters, digits, and upper and lowercased letters.
  14301. NewPath *string `min:"1" type:"string"`
  14302. // New name for the user. Include this parameter only if you're changing the
  14303. // user's name.
  14304. //
  14305. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14306. // a string of characters consisting of upper and lowercase alphanumeric characters
  14307. // with no spaces. You can also include any of the following characters: =,.@-
  14308. NewUserName *string `min:"1" type:"string"`
  14309. // Name of the user to update. If you're changing the name of the user, this
  14310. // is the original user name.
  14311. //
  14312. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14313. // a string of characters consisting of upper and lowercase alphanumeric characters
  14314. // with no spaces. You can also include any of the following characters: =,.@-
  14315. UserName *string `min:"1" type:"string" required:"true"`
  14316. }
  14317. // String returns the string representation
  14318. func (s UpdateUserInput) String() string {
  14319. return awsutil.Prettify(s)
  14320. }
  14321. // GoString returns the string representation
  14322. func (s UpdateUserInput) GoString() string {
  14323. return s.String()
  14324. }
  14325. // Validate inspects the fields of the type to determine if they are valid.
  14326. func (s *UpdateUserInput) Validate() error {
  14327. invalidParams := request.ErrInvalidParams{Context: "UpdateUserInput"}
  14328. if s.NewPath != nil && len(*s.NewPath) < 1 {
  14329. invalidParams.Add(request.NewErrParamMinLen("NewPath", 1))
  14330. }
  14331. if s.NewUserName != nil && len(*s.NewUserName) < 1 {
  14332. invalidParams.Add(request.NewErrParamMinLen("NewUserName", 1))
  14333. }
  14334. if s.UserName == nil {
  14335. invalidParams.Add(request.NewErrParamRequired("UserName"))
  14336. }
  14337. if s.UserName != nil && len(*s.UserName) < 1 {
  14338. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  14339. }
  14340. if invalidParams.Len() > 0 {
  14341. return invalidParams
  14342. }
  14343. return nil
  14344. }
  14345. type UpdateUserOutput struct {
  14346. _ struct{} `type:"structure"`
  14347. }
  14348. // String returns the string representation
  14349. func (s UpdateUserOutput) String() string {
  14350. return awsutil.Prettify(s)
  14351. }
  14352. // GoString returns the string representation
  14353. func (s UpdateUserOutput) GoString() string {
  14354. return s.String()
  14355. }
  14356. type UploadSSHPublicKeyInput struct {
  14357. _ struct{} `type:"structure"`
  14358. // The SSH public key. The public key must be encoded in ssh-rsa format or PEM
  14359. // format.
  14360. //
  14361. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14362. // a string of characters consisting of any printable ASCII character ranging
  14363. // from the space character (\u0020) through end of the ASCII character range
  14364. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  14365. // (\u000A), and carriage return (\u000D).
  14366. SSHPublicKeyBody *string `min:"1" type:"string" required:"true"`
  14367. // The name of the IAM user to associate the SSH public key with.
  14368. //
  14369. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14370. // a string of characters consisting of upper and lowercase alphanumeric characters
  14371. // with no spaces. You can also include any of the following characters: =,.@-
  14372. UserName *string `min:"1" type:"string" required:"true"`
  14373. }
  14374. // String returns the string representation
  14375. func (s UploadSSHPublicKeyInput) String() string {
  14376. return awsutil.Prettify(s)
  14377. }
  14378. // GoString returns the string representation
  14379. func (s UploadSSHPublicKeyInput) GoString() string {
  14380. return s.String()
  14381. }
  14382. // Validate inspects the fields of the type to determine if they are valid.
  14383. func (s *UploadSSHPublicKeyInput) Validate() error {
  14384. invalidParams := request.ErrInvalidParams{Context: "UploadSSHPublicKeyInput"}
  14385. if s.SSHPublicKeyBody == nil {
  14386. invalidParams.Add(request.NewErrParamRequired("SSHPublicKeyBody"))
  14387. }
  14388. if s.SSHPublicKeyBody != nil && len(*s.SSHPublicKeyBody) < 1 {
  14389. invalidParams.Add(request.NewErrParamMinLen("SSHPublicKeyBody", 1))
  14390. }
  14391. if s.UserName == nil {
  14392. invalidParams.Add(request.NewErrParamRequired("UserName"))
  14393. }
  14394. if s.UserName != nil && len(*s.UserName) < 1 {
  14395. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  14396. }
  14397. if invalidParams.Len() > 0 {
  14398. return invalidParams
  14399. }
  14400. return nil
  14401. }
  14402. // Contains the response to a successful UploadSSHPublicKey request.
  14403. type UploadSSHPublicKeyOutput struct {
  14404. _ struct{} `type:"structure"`
  14405. // Contains information about the SSH public key.
  14406. SSHPublicKey *SSHPublicKey `type:"structure"`
  14407. }
  14408. // String returns the string representation
  14409. func (s UploadSSHPublicKeyOutput) String() string {
  14410. return awsutil.Prettify(s)
  14411. }
  14412. // GoString returns the string representation
  14413. func (s UploadSSHPublicKeyOutput) GoString() string {
  14414. return s.String()
  14415. }
  14416. type UploadServerCertificateInput struct {
  14417. _ struct{} `type:"structure"`
  14418. // The contents of the public key certificate in PEM-encoded format.
  14419. //
  14420. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14421. // a string of characters consisting of any printable ASCII character ranging
  14422. // from the space character (\u0020) through end of the ASCII character range
  14423. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  14424. // (\u000A), and carriage return (\u000D).
  14425. CertificateBody *string `min:"1" type:"string" required:"true"`
  14426. // The contents of the certificate chain. This is typically a concatenation
  14427. // of the PEM-encoded public key certificates of the chain.
  14428. //
  14429. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14430. // a string of characters consisting of any printable ASCII character ranging
  14431. // from the space character (\u0020) through end of the ASCII character range
  14432. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  14433. // (\u000A), and carriage return (\u000D).
  14434. CertificateChain *string `min:"1" type:"string"`
  14435. // The path for the server certificate. For more information about paths, see
  14436. // IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  14437. // in the IAM User Guide.
  14438. //
  14439. // This parameter is optional. If it is not included, it defaults to a slash
  14440. // (/). The regex pattern (http://wikipedia.org/wiki/regex) for this parameter
  14441. // is a string of characters consisting of either a forward slash (/) by itself
  14442. // or a string that must begin and end with forward slashes, containing any
  14443. // ASCII character from the ! (\u0021) thru the DEL character (\u007F), including
  14444. // most punctuation characters, digits, and upper and lowercased letters.
  14445. //
  14446. // If you are uploading a server certificate specifically for use with Amazon
  14447. // CloudFront distributions, you must specify a path using the --path option.
  14448. // The path must begin with /cloudfront and must include a trailing slash (for
  14449. // example, /cloudfront/test/).
  14450. Path *string `min:"1" type:"string"`
  14451. // The contents of the private key in PEM-encoded format.
  14452. //
  14453. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14454. // a string of characters consisting of any printable ASCII character ranging
  14455. // from the space character (\u0020) through end of the ASCII character range
  14456. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  14457. // (\u000A), and carriage return (\u000D).
  14458. PrivateKey *string `min:"1" type:"string" required:"true"`
  14459. // The name for the server certificate. Do not include the path in this value.
  14460. // The name of the certificate cannot contain any spaces.
  14461. //
  14462. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14463. // a string of characters consisting of upper and lowercase alphanumeric characters
  14464. // with no spaces. You can also include any of the following characters: =,.@-
  14465. ServerCertificateName *string `min:"1" type:"string" required:"true"`
  14466. }
  14467. // String returns the string representation
  14468. func (s UploadServerCertificateInput) String() string {
  14469. return awsutil.Prettify(s)
  14470. }
  14471. // GoString returns the string representation
  14472. func (s UploadServerCertificateInput) GoString() string {
  14473. return s.String()
  14474. }
  14475. // Validate inspects the fields of the type to determine if they are valid.
  14476. func (s *UploadServerCertificateInput) Validate() error {
  14477. invalidParams := request.ErrInvalidParams{Context: "UploadServerCertificateInput"}
  14478. if s.CertificateBody == nil {
  14479. invalidParams.Add(request.NewErrParamRequired("CertificateBody"))
  14480. }
  14481. if s.CertificateBody != nil && len(*s.CertificateBody) < 1 {
  14482. invalidParams.Add(request.NewErrParamMinLen("CertificateBody", 1))
  14483. }
  14484. if s.CertificateChain != nil && len(*s.CertificateChain) < 1 {
  14485. invalidParams.Add(request.NewErrParamMinLen("CertificateChain", 1))
  14486. }
  14487. if s.Path != nil && len(*s.Path) < 1 {
  14488. invalidParams.Add(request.NewErrParamMinLen("Path", 1))
  14489. }
  14490. if s.PrivateKey == nil {
  14491. invalidParams.Add(request.NewErrParamRequired("PrivateKey"))
  14492. }
  14493. if s.PrivateKey != nil && len(*s.PrivateKey) < 1 {
  14494. invalidParams.Add(request.NewErrParamMinLen("PrivateKey", 1))
  14495. }
  14496. if s.ServerCertificateName == nil {
  14497. invalidParams.Add(request.NewErrParamRequired("ServerCertificateName"))
  14498. }
  14499. if s.ServerCertificateName != nil && len(*s.ServerCertificateName) < 1 {
  14500. invalidParams.Add(request.NewErrParamMinLen("ServerCertificateName", 1))
  14501. }
  14502. if invalidParams.Len() > 0 {
  14503. return invalidParams
  14504. }
  14505. return nil
  14506. }
  14507. // Contains the response to a successful UploadServerCertificate request.
  14508. type UploadServerCertificateOutput struct {
  14509. _ struct{} `type:"structure"`
  14510. // The meta information of the uploaded server certificate without its certificate
  14511. // body, certificate chain, and private key.
  14512. ServerCertificateMetadata *ServerCertificateMetadata `type:"structure"`
  14513. }
  14514. // String returns the string representation
  14515. func (s UploadServerCertificateOutput) String() string {
  14516. return awsutil.Prettify(s)
  14517. }
  14518. // GoString returns the string representation
  14519. func (s UploadServerCertificateOutput) GoString() string {
  14520. return s.String()
  14521. }
  14522. type UploadSigningCertificateInput struct {
  14523. _ struct{} `type:"structure"`
  14524. // The contents of the signing certificate.
  14525. //
  14526. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14527. // a string of characters consisting of any printable ASCII character ranging
  14528. // from the space character (\u0020) through end of the ASCII character range
  14529. // (\u00FF). It also includes the special characters tab (\u0009), line feed
  14530. // (\u000A), and carriage return (\u000D).
  14531. CertificateBody *string `min:"1" type:"string" required:"true"`
  14532. // The name of the user the signing certificate is for.
  14533. //
  14534. // The regex pattern (http://wikipedia.org/wiki/regex) for this parameter is
  14535. // a string of characters consisting of upper and lowercase alphanumeric characters
  14536. // with no spaces. You can also include any of the following characters: =,.@-
  14537. UserName *string `min:"1" type:"string"`
  14538. }
  14539. // String returns the string representation
  14540. func (s UploadSigningCertificateInput) String() string {
  14541. return awsutil.Prettify(s)
  14542. }
  14543. // GoString returns the string representation
  14544. func (s UploadSigningCertificateInput) GoString() string {
  14545. return s.String()
  14546. }
  14547. // Validate inspects the fields of the type to determine if they are valid.
  14548. func (s *UploadSigningCertificateInput) Validate() error {
  14549. invalidParams := request.ErrInvalidParams{Context: "UploadSigningCertificateInput"}
  14550. if s.CertificateBody == nil {
  14551. invalidParams.Add(request.NewErrParamRequired("CertificateBody"))
  14552. }
  14553. if s.CertificateBody != nil && len(*s.CertificateBody) < 1 {
  14554. invalidParams.Add(request.NewErrParamMinLen("CertificateBody", 1))
  14555. }
  14556. if s.UserName != nil && len(*s.UserName) < 1 {
  14557. invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  14558. }
  14559. if invalidParams.Len() > 0 {
  14560. return invalidParams
  14561. }
  14562. return nil
  14563. }
  14564. // Contains the response to a successful UploadSigningCertificate request.
  14565. type UploadSigningCertificateOutput struct {
  14566. _ struct{} `type:"structure"`
  14567. // Information about the certificate.
  14568. Certificate *SigningCertificate `type:"structure" required:"true"`
  14569. }
  14570. // String returns the string representation
  14571. func (s UploadSigningCertificateOutput) String() string {
  14572. return awsutil.Prettify(s)
  14573. }
  14574. // GoString returns the string representation
  14575. func (s UploadSigningCertificateOutput) GoString() string {
  14576. return s.String()
  14577. }
  14578. // Contains information about an IAM user entity.
  14579. //
  14580. // This data type is used as a response element in the following actions:
  14581. //
  14582. // CreateUser
  14583. //
  14584. // GetUser
  14585. //
  14586. // ListUsers
  14587. type User struct {
  14588. _ struct{} `type:"structure"`
  14589. // The Amazon Resource Name (ARN) that identifies the user. For more information
  14590. // about ARNs and how to use ARNs in policies, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  14591. // in the Using IAM guide.
  14592. Arn *string `min:"20" type:"string" required:"true"`
  14593. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  14594. // when the user was created.
  14595. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
  14596. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  14597. // when the user's password was last used to sign in to an AWS website. For
  14598. // a list of AWS websites that capture a user's last sign-in time, see the Credential
  14599. // Reports (http://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html)
  14600. // topic in the Using IAM guide. If a password is used more than once in a five-minute
  14601. // span, only the first use is returned in this field. This field is null (not
  14602. // present) when:
  14603. //
  14604. // The user does not have a password
  14605. //
  14606. // The password exists but has never been used (at least not since IAM started
  14607. // tracking this information on October 20th, 2014
  14608. //
  14609. // there is no sign-in data associated with the user
  14610. //
  14611. // This value is returned only in the GetUser and ListUsers actions.
  14612. PasswordLastUsed *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  14613. // The path to the user. For more information about paths, see IAM Identifiers
  14614. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  14615. // in the Using IAM guide.
  14616. Path *string `min:"1" type:"string" required:"true"`
  14617. // The stable and unique string identifying the user. For more information about
  14618. // IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  14619. // in the Using IAM guide.
  14620. UserId *string `min:"16" type:"string" required:"true"`
  14621. // The friendly name identifying the user.
  14622. UserName *string `min:"1" type:"string" required:"true"`
  14623. }
  14624. // String returns the string representation
  14625. func (s User) String() string {
  14626. return awsutil.Prettify(s)
  14627. }
  14628. // GoString returns the string representation
  14629. func (s User) GoString() string {
  14630. return s.String()
  14631. }
  14632. // Contains information about an IAM user, including all the user's policies
  14633. // and all the IAM groups the user is in.
  14634. //
  14635. // This data type is used as a response element in the GetAccountAuthorizationDetails
  14636. // action.
  14637. type UserDetail struct {
  14638. _ struct{} `type:"structure"`
  14639. // The Amazon Resource Name (ARN). ARNs are unique identifiers for AWS resources.
  14640. //
  14641. // For more information about ARNs, go to Amazon Resource Names (ARNs) and
  14642. // AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  14643. // in the AWS General Reference.
  14644. Arn *string `min:"20" type:"string"`
  14645. // A list of the managed policies attached to the user.
  14646. AttachedManagedPolicies []*AttachedPolicy `type:"list"`
  14647. // The date and time, in ISO 8601 date-time format (http://www.iso.org/iso/iso8601),
  14648. // when the user was created.
  14649. CreateDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  14650. // A list of IAM groups that the user is in.
  14651. GroupList []*string `type:"list"`
  14652. // The path to the user. For more information about paths, see IAM Identifiers
  14653. // (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  14654. // in the Using IAM guide.
  14655. Path *string `min:"1" type:"string"`
  14656. // The stable and unique string identifying the user. For more information about
  14657. // IDs, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
  14658. // in the Using IAM guide.
  14659. UserId *string `min:"16" type:"string"`
  14660. // The friendly name identifying the user.
  14661. UserName *string `min:"1" type:"string"`
  14662. // A list of the inline policies embedded in the user.
  14663. UserPolicyList []*PolicyDetail `type:"list"`
  14664. }
  14665. // String returns the string representation
  14666. func (s UserDetail) String() string {
  14667. return awsutil.Prettify(s)
  14668. }
  14669. // GoString returns the string representation
  14670. func (s UserDetail) GoString() string {
  14671. return s.String()
  14672. }
  14673. // Contains information about a virtual MFA device.
  14674. type VirtualMFADevice struct {
  14675. _ struct{} `type:"structure"`
  14676. // The Base32 seed defined as specified in RFC3548 (http://www.ietf.org/rfc/rfc3548.txt).
  14677. // The Base32StringSeed is Base64-encoded.
  14678. //
  14679. // Base32StringSeed is automatically base64 encoded/decoded by the SDK.
  14680. Base32StringSeed []byte `type:"blob"`
  14681. // The date and time on which the virtual MFA device was enabled.
  14682. EnableDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  14683. // A QR code PNG image that encodes otpauth://totp/$virtualMFADeviceName@$AccountName?secret=$Base32String
  14684. // where $virtualMFADeviceName is one of the create call arguments, AccountName
  14685. // is the user name if set (otherwise, the account ID otherwise), and Base32String
  14686. // is the seed in Base32 format. The Base32String value is Base64-encoded.
  14687. //
  14688. // QRCodePNG is automatically base64 encoded/decoded by the SDK.
  14689. QRCodePNG []byte `type:"blob"`
  14690. // The serial number associated with VirtualMFADevice.
  14691. SerialNumber *string `min:"9" type:"string" required:"true"`
  14692. // Contains information about an IAM user entity.
  14693. //
  14694. // This data type is used as a response element in the following actions:
  14695. //
  14696. // CreateUser
  14697. //
  14698. // GetUser
  14699. //
  14700. // ListUsers
  14701. User *User `type:"structure"`
  14702. }
  14703. // String returns the string representation
  14704. func (s VirtualMFADevice) String() string {
  14705. return awsutil.Prettify(s)
  14706. }
  14707. // GoString returns the string representation
  14708. func (s VirtualMFADevice) GoString() string {
  14709. return s.String()
  14710. }
  14711. const (
  14712. // @enum ContextKeyTypeEnum
  14713. ContextKeyTypeEnumString = "string"
  14714. // @enum ContextKeyTypeEnum
  14715. ContextKeyTypeEnumStringList = "stringList"
  14716. // @enum ContextKeyTypeEnum
  14717. ContextKeyTypeEnumNumeric = "numeric"
  14718. // @enum ContextKeyTypeEnum
  14719. ContextKeyTypeEnumNumericList = "numericList"
  14720. // @enum ContextKeyTypeEnum
  14721. ContextKeyTypeEnumBoolean = "boolean"
  14722. // @enum ContextKeyTypeEnum
  14723. ContextKeyTypeEnumBooleanList = "booleanList"
  14724. // @enum ContextKeyTypeEnum
  14725. ContextKeyTypeEnumIp = "ip"
  14726. // @enum ContextKeyTypeEnum
  14727. ContextKeyTypeEnumIpList = "ipList"
  14728. // @enum ContextKeyTypeEnum
  14729. ContextKeyTypeEnumBinary = "binary"
  14730. // @enum ContextKeyTypeEnum
  14731. ContextKeyTypeEnumBinaryList = "binaryList"
  14732. // @enum ContextKeyTypeEnum
  14733. ContextKeyTypeEnumDate = "date"
  14734. // @enum ContextKeyTypeEnum
  14735. ContextKeyTypeEnumDateList = "dateList"
  14736. )
  14737. const (
  14738. // @enum EntityType
  14739. EntityTypeUser = "User"
  14740. // @enum EntityType
  14741. EntityTypeRole = "Role"
  14742. // @enum EntityType
  14743. EntityTypeGroup = "Group"
  14744. // @enum EntityType
  14745. EntityTypeLocalManagedPolicy = "LocalManagedPolicy"
  14746. // @enum EntityType
  14747. EntityTypeAwsmanagedPolicy = "AWSManagedPolicy"
  14748. )
  14749. const (
  14750. // @enum PolicyEvaluationDecisionType
  14751. PolicyEvaluationDecisionTypeAllowed = "allowed"
  14752. // @enum PolicyEvaluationDecisionType
  14753. PolicyEvaluationDecisionTypeExplicitDeny = "explicitDeny"
  14754. // @enum PolicyEvaluationDecisionType
  14755. PolicyEvaluationDecisionTypeImplicitDeny = "implicitDeny"
  14756. )
  14757. const (
  14758. // @enum PolicySourceType
  14759. PolicySourceTypeUser = "user"
  14760. // @enum PolicySourceType
  14761. PolicySourceTypeGroup = "group"
  14762. // @enum PolicySourceType
  14763. PolicySourceTypeRole = "role"
  14764. // @enum PolicySourceType
  14765. PolicySourceTypeAwsManaged = "aws-managed"
  14766. // @enum PolicySourceType
  14767. PolicySourceTypeUserManaged = "user-managed"
  14768. // @enum PolicySourceType
  14769. PolicySourceTypeResource = "resource"
  14770. // @enum PolicySourceType
  14771. PolicySourceTypeNone = "none"
  14772. )
  14773. const (
  14774. // @enum ReportFormatType
  14775. ReportFormatTypeTextCsv = "text/csv"
  14776. )
  14777. const (
  14778. // @enum ReportStateType
  14779. ReportStateTypeStarted = "STARTED"
  14780. // @enum ReportStateType
  14781. ReportStateTypeInprogress = "INPROGRESS"
  14782. // @enum ReportStateType
  14783. ReportStateTypeComplete = "COMPLETE"
  14784. )
  14785. const (
  14786. // @enum assignmentStatusType
  14787. AssignmentStatusTypeAssigned = "Assigned"
  14788. // @enum assignmentStatusType
  14789. AssignmentStatusTypeUnassigned = "Unassigned"
  14790. // @enum assignmentStatusType
  14791. AssignmentStatusTypeAny = "Any"
  14792. )
  14793. const (
  14794. // @enum encodingType
  14795. EncodingTypeSsh = "SSH"
  14796. // @enum encodingType
  14797. EncodingTypePem = "PEM"
  14798. )
  14799. const (
  14800. // @enum policyScopeType
  14801. PolicyScopeTypeAll = "All"
  14802. // @enum policyScopeType
  14803. PolicyScopeTypeAws = "AWS"
  14804. // @enum policyScopeType
  14805. PolicyScopeTypeLocal = "Local"
  14806. )
  14807. const (
  14808. // @enum statusType
  14809. StatusTypeActive = "Active"
  14810. // @enum statusType
  14811. StatusTypeInactive = "Inactive"
  14812. )
  14813. const (
  14814. // @enum summaryKeyType
  14815. SummaryKeyTypeUsers = "Users"
  14816. // @enum summaryKeyType
  14817. SummaryKeyTypeUsersQuota = "UsersQuota"
  14818. // @enum summaryKeyType
  14819. SummaryKeyTypeGroups = "Groups"
  14820. // @enum summaryKeyType
  14821. SummaryKeyTypeGroupsQuota = "GroupsQuota"
  14822. // @enum summaryKeyType
  14823. SummaryKeyTypeServerCertificates = "ServerCertificates"
  14824. // @enum summaryKeyType
  14825. SummaryKeyTypeServerCertificatesQuota = "ServerCertificatesQuota"
  14826. // @enum summaryKeyType
  14827. SummaryKeyTypeUserPolicySizeQuota = "UserPolicySizeQuota"
  14828. // @enum summaryKeyType
  14829. SummaryKeyTypeGroupPolicySizeQuota = "GroupPolicySizeQuota"
  14830. // @enum summaryKeyType
  14831. SummaryKeyTypeGroupsPerUserQuota = "GroupsPerUserQuota"
  14832. // @enum summaryKeyType
  14833. SummaryKeyTypeSigningCertificatesPerUserQuota = "SigningCertificatesPerUserQuota"
  14834. // @enum summaryKeyType
  14835. SummaryKeyTypeAccessKeysPerUserQuota = "AccessKeysPerUserQuota"
  14836. // @enum summaryKeyType
  14837. SummaryKeyTypeMfadevices = "MFADevices"
  14838. // @enum summaryKeyType
  14839. SummaryKeyTypeMfadevicesInUse = "MFADevicesInUse"
  14840. // @enum summaryKeyType
  14841. SummaryKeyTypeAccountMfaenabled = "AccountMFAEnabled"
  14842. // @enum summaryKeyType
  14843. SummaryKeyTypeAccountAccessKeysPresent = "AccountAccessKeysPresent"
  14844. // @enum summaryKeyType
  14845. SummaryKeyTypeAccountSigningCertificatesPresent = "AccountSigningCertificatesPresent"
  14846. // @enum summaryKeyType
  14847. SummaryKeyTypeAttachedPoliciesPerGroupQuota = "AttachedPoliciesPerGroupQuota"
  14848. // @enum summaryKeyType
  14849. SummaryKeyTypeAttachedPoliciesPerRoleQuota = "AttachedPoliciesPerRoleQuota"
  14850. // @enum summaryKeyType
  14851. SummaryKeyTypeAttachedPoliciesPerUserQuota = "AttachedPoliciesPerUserQuota"
  14852. // @enum summaryKeyType
  14853. SummaryKeyTypePolicies = "Policies"
  14854. // @enum summaryKeyType
  14855. SummaryKeyTypePoliciesQuota = "PoliciesQuota"
  14856. // @enum summaryKeyType
  14857. SummaryKeyTypePolicySizeQuota = "PolicySizeQuota"
  14858. // @enum summaryKeyType
  14859. SummaryKeyTypePolicyVersionsInUse = "PolicyVersionsInUse"
  14860. // @enum summaryKeyType
  14861. SummaryKeyTypePolicyVersionsInUseQuota = "PolicyVersionsInUseQuota"
  14862. // @enum summaryKeyType
  14863. SummaryKeyTypeVersionsPerPolicyQuota = "VersionsPerPolicyQuota"
  14864. )