endpoints.go 266 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650
  1. // Code generated by smithy-go-codegen DO NOT EDIT.
  2. package s3
  3. import (
  4. "context"
  5. "errors"
  6. "fmt"
  7. "github.com/aws/aws-sdk-go-v2/aws"
  8. awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
  9. internalConfig "github.com/aws/aws-sdk-go-v2/internal/configsources"
  10. internalcontext "github.com/aws/aws-sdk-go-v2/internal/context"
  11. "github.com/aws/aws-sdk-go-v2/internal/endpoints"
  12. "github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn"
  13. s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations"
  14. internalendpoints "github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints"
  15. smithy "github.com/aws/smithy-go"
  16. smithyauth "github.com/aws/smithy-go/auth"
  17. smithyendpoints "github.com/aws/smithy-go/endpoints"
  18. "github.com/aws/smithy-go/endpoints/private/rulesfn"
  19. "github.com/aws/smithy-go/middleware"
  20. "github.com/aws/smithy-go/ptr"
  21. "github.com/aws/smithy-go/tracing"
  22. smithyhttp "github.com/aws/smithy-go/transport/http"
  23. "net/http"
  24. "net/url"
  25. "os"
  26. "strings"
  27. )
  28. // EndpointResolverOptions is the service endpoint resolver options
  29. type EndpointResolverOptions = internalendpoints.Options
  30. // EndpointResolver interface for resolving service endpoints.
  31. type EndpointResolver interface {
  32. ResolveEndpoint(region string, options EndpointResolverOptions) (aws.Endpoint, error)
  33. }
  34. var _ EndpointResolver = &internalendpoints.Resolver{}
  35. // NewDefaultEndpointResolver constructs a new service endpoint resolver
  36. func NewDefaultEndpointResolver() *internalendpoints.Resolver {
  37. return internalendpoints.New()
  38. }
  39. // EndpointResolverFunc is a helper utility that wraps a function so it satisfies
  40. // the EndpointResolver interface. This is useful when you want to add additional
  41. // endpoint resolving logic, or stub out specific endpoints with custom values.
  42. type EndpointResolverFunc func(region string, options EndpointResolverOptions) (aws.Endpoint, error)
  43. func (fn EndpointResolverFunc) ResolveEndpoint(region string, options EndpointResolverOptions) (endpoint aws.Endpoint, err error) {
  44. return fn(region, options)
  45. }
  46. // EndpointResolverFromURL returns an EndpointResolver configured using the
  47. // provided endpoint url. By default, the resolved endpoint resolver uses the
  48. // client region as signing region, and the endpoint source is set to
  49. // EndpointSourceCustom.You can provide functional options to configure endpoint
  50. // values for the resolved endpoint.
  51. func EndpointResolverFromURL(url string, optFns ...func(*aws.Endpoint)) EndpointResolver {
  52. e := aws.Endpoint{URL: url, Source: aws.EndpointSourceCustom}
  53. for _, fn := range optFns {
  54. fn(&e)
  55. }
  56. return EndpointResolverFunc(
  57. func(region string, options EndpointResolverOptions) (aws.Endpoint, error) {
  58. if len(e.SigningRegion) == 0 {
  59. e.SigningRegion = region
  60. }
  61. return e, nil
  62. },
  63. )
  64. }
  65. type ResolveEndpoint struct {
  66. Resolver EndpointResolver
  67. Options EndpointResolverOptions
  68. }
  69. func (*ResolveEndpoint) ID() string {
  70. return "ResolveEndpoint"
  71. }
  72. func (m *ResolveEndpoint) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
  73. out middleware.SerializeOutput, metadata middleware.Metadata, err error,
  74. ) {
  75. if !awsmiddleware.GetRequiresLegacyEndpoints(ctx) {
  76. return next.HandleSerialize(ctx, in)
  77. }
  78. req, ok := in.Request.(*smithyhttp.Request)
  79. if !ok {
  80. return out, metadata, fmt.Errorf("unknown transport type %T", in.Request)
  81. }
  82. if m.Resolver == nil {
  83. return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil")
  84. }
  85. eo := m.Options
  86. eo.Logger = middleware.GetLogger(ctx)
  87. var endpoint aws.Endpoint
  88. endpoint, err = m.Resolver.ResolveEndpoint(awsmiddleware.GetRegion(ctx), eo)
  89. if err != nil {
  90. nf := (&aws.EndpointNotFoundError{})
  91. if errors.As(err, &nf) {
  92. ctx = awsmiddleware.SetRequiresLegacyEndpoints(ctx, false)
  93. return next.HandleSerialize(ctx, in)
  94. }
  95. return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err)
  96. }
  97. req.URL, err = url.Parse(endpoint.URL)
  98. if err != nil {
  99. return out, metadata, fmt.Errorf("failed to parse endpoint URL: %w", err)
  100. }
  101. if len(awsmiddleware.GetSigningName(ctx)) == 0 {
  102. signingName := endpoint.SigningName
  103. if len(signingName) == 0 {
  104. signingName = "s3"
  105. }
  106. ctx = awsmiddleware.SetSigningName(ctx, signingName)
  107. }
  108. ctx = awsmiddleware.SetEndpointSource(ctx, endpoint.Source)
  109. ctx = smithyhttp.SetHostnameImmutable(ctx, endpoint.HostnameImmutable)
  110. ctx = awsmiddleware.SetSigningRegion(ctx, endpoint.SigningRegion)
  111. ctx = awsmiddleware.SetPartitionID(ctx, endpoint.PartitionID)
  112. return next.HandleSerialize(ctx, in)
  113. }
  114. func addResolveEndpointMiddleware(stack *middleware.Stack, o Options) error {
  115. return stack.Serialize.Insert(&ResolveEndpoint{
  116. Resolver: o.EndpointResolver,
  117. Options: o.EndpointOptions,
  118. }, "OperationSerializer", middleware.Before)
  119. }
  120. func removeResolveEndpointMiddleware(stack *middleware.Stack) error {
  121. _, err := stack.Serialize.Remove((&ResolveEndpoint{}).ID())
  122. return err
  123. }
  124. type wrappedEndpointResolver struct {
  125. awsResolver aws.EndpointResolverWithOptions
  126. }
  127. func (w *wrappedEndpointResolver) ResolveEndpoint(region string, options EndpointResolverOptions) (endpoint aws.Endpoint, err error) {
  128. return w.awsResolver.ResolveEndpoint(ServiceID, region, options)
  129. }
  130. type awsEndpointResolverAdaptor func(service, region string) (aws.Endpoint, error)
  131. func (a awsEndpointResolverAdaptor) ResolveEndpoint(service, region string, options ...interface{}) (aws.Endpoint, error) {
  132. return a(service, region)
  133. }
  134. var _ aws.EndpointResolverWithOptions = awsEndpointResolverAdaptor(nil)
  135. // withEndpointResolver returns an aws.EndpointResolverWithOptions that first delegates endpoint resolution to the awsResolver.
  136. // If awsResolver returns aws.EndpointNotFoundError error, the v1 resolver middleware will swallow the error,
  137. // and set an appropriate context flag such that fallback will occur when EndpointResolverV2 is invoked
  138. // via its middleware.
  139. //
  140. // If another error (besides aws.EndpointNotFoundError) is returned, then that error will be propagated.
  141. func withEndpointResolver(awsResolver aws.EndpointResolver, awsResolverWithOptions aws.EndpointResolverWithOptions) EndpointResolver {
  142. var resolver aws.EndpointResolverWithOptions
  143. if awsResolverWithOptions != nil {
  144. resolver = awsResolverWithOptions
  145. } else if awsResolver != nil {
  146. resolver = awsEndpointResolverAdaptor(awsResolver.ResolveEndpoint)
  147. }
  148. return &wrappedEndpointResolver{
  149. awsResolver: resolver,
  150. }
  151. }
  152. func finalizeClientEndpointResolverOptions(options *Options) {
  153. options.EndpointOptions.LogDeprecated = options.ClientLogMode.IsDeprecatedUsage()
  154. if len(options.EndpointOptions.ResolvedRegion) == 0 {
  155. const fipsInfix = "-fips-"
  156. const fipsPrefix = "fips-"
  157. const fipsSuffix = "-fips"
  158. if strings.Contains(options.Region, fipsInfix) ||
  159. strings.Contains(options.Region, fipsPrefix) ||
  160. strings.Contains(options.Region, fipsSuffix) {
  161. options.EndpointOptions.ResolvedRegion = strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(
  162. options.Region, fipsInfix, "-"), fipsPrefix, ""), fipsSuffix, "")
  163. options.EndpointOptions.UseFIPSEndpoint = aws.FIPSEndpointStateEnabled
  164. }
  165. }
  166. if options.EndpointOptions.UseDualStackEndpoint == aws.DualStackEndpointStateUnset {
  167. if options.UseDualstack {
  168. options.EndpointOptions.UseDualStackEndpoint = aws.DualStackEndpointStateEnabled
  169. } else {
  170. options.EndpointOptions.UseDualStackEndpoint = aws.DualStackEndpointStateDisabled
  171. }
  172. }
  173. }
  174. func resolveEndpointResolverV2(options *Options) {
  175. if options.EndpointResolverV2 == nil {
  176. options.EndpointResolverV2 = NewDefaultEndpointResolverV2()
  177. }
  178. }
  179. func resolveBaseEndpoint(cfg aws.Config, o *Options) {
  180. if cfg.BaseEndpoint != nil {
  181. o.BaseEndpoint = cfg.BaseEndpoint
  182. }
  183. _, g := os.LookupEnv("AWS_ENDPOINT_URL")
  184. _, s := os.LookupEnv("AWS_ENDPOINT_URL_S3")
  185. if g && !s {
  186. return
  187. }
  188. value, found, err := internalConfig.ResolveServiceBaseEndpoint(context.Background(), "S3", cfg.ConfigSources)
  189. if found && err == nil {
  190. o.BaseEndpoint = &value
  191. }
  192. }
  193. func bindRegion(region string) *string {
  194. if region == "" {
  195. return nil
  196. }
  197. return aws.String(endpoints.MapFIPSRegion(region))
  198. }
  199. // EndpointParameters provides the parameters that influence how endpoints are
  200. // resolved.
  201. type EndpointParameters struct {
  202. // The S3 bucket used to send the request. This is an optional parameter that will
  203. // be set automatically for operations that are scoped to an S3 bucket.
  204. //
  205. // Parameter
  206. // is required.
  207. Bucket *string
  208. // The AWS region used to dispatch the request.
  209. //
  210. // Parameter is
  211. // required.
  212. //
  213. // AWS::Region
  214. Region *string
  215. // When true, send this request to the FIPS-compliant regional endpoint. If the
  216. // configured endpoint does not have a FIPS compliant endpoint, dispatching the
  217. // request will return an error.
  218. //
  219. // Defaults to false if no value is
  220. // provided.
  221. //
  222. // AWS::UseFIPS
  223. UseFIPS *bool
  224. // When true, use the dual-stack endpoint. If the configured endpoint does not
  225. // support dual-stack, dispatching the request MAY return an error.
  226. //
  227. // Defaults to
  228. // false if no value is provided.
  229. //
  230. // AWS::UseDualStack
  231. UseDualStack *bool
  232. // Override the endpoint used to send this request
  233. //
  234. // Parameter is
  235. // required.
  236. //
  237. // SDK::Endpoint
  238. Endpoint *string
  239. // When true, force a path-style endpoint to be used where the bucket name is part
  240. // of the path.
  241. //
  242. // Defaults to false if no value is
  243. // provided.
  244. //
  245. // AWS::S3::ForcePathStyle
  246. ForcePathStyle *bool
  247. // When true, use S3 Accelerate. NOTE: Not all regions support S3
  248. // accelerate.
  249. //
  250. // Defaults to false if no value is provided.
  251. //
  252. // AWS::S3::Accelerate
  253. Accelerate *bool
  254. // Whether the global endpoint should be used, rather then the regional endpoint
  255. // for us-east-1.
  256. //
  257. // Defaults to false if no value is
  258. // provided.
  259. //
  260. // AWS::S3::UseGlobalEndpoint
  261. UseGlobalEndpoint *bool
  262. // Internal parameter to use object lambda endpoint for an operation (eg:
  263. // WriteGetObjectResponse)
  264. //
  265. // Parameter is required.
  266. UseObjectLambdaEndpoint *bool
  267. // The S3 Key used to send the request. This is an optional parameter that will be
  268. // set automatically for operations that are scoped to an S3 Key.
  269. //
  270. // Parameter is
  271. // required.
  272. Key *string
  273. // The S3 Prefix used to send the request. This is an optional parameter that will
  274. // be set automatically for operations that are scoped to an S3 Prefix.
  275. //
  276. // Parameter
  277. // is required.
  278. Prefix *string
  279. // The Copy Source used for Copy Object request. This is an optional parameter that
  280. // will be set automatically for operations that are scoped to Copy
  281. // Source.
  282. //
  283. // Parameter is required.
  284. CopySource *string
  285. // Internal parameter to disable Access Point Buckets
  286. //
  287. // Parameter is required.
  288. DisableAccessPoints *bool
  289. // Whether multi-region access points (MRAP) should be disabled.
  290. //
  291. // Defaults to false
  292. // if no value is provided.
  293. //
  294. // AWS::S3::DisableMultiRegionAccessPoints
  295. DisableMultiRegionAccessPoints *bool
  296. // When an Access Point ARN is provided and this flag is enabled, the SDK MUST use
  297. // the ARN's region when constructing the endpoint instead of the client's
  298. // configured region.
  299. //
  300. // Parameter is required.
  301. //
  302. // AWS::S3::UseArnRegion
  303. UseArnRegion *bool
  304. // Internal parameter to indicate whether S3Express operation should use control
  305. // plane, (ex. CreateBucket)
  306. //
  307. // Parameter is required.
  308. UseS3ExpressControlEndpoint *bool
  309. // Parameter to indicate whether S3Express session auth should be
  310. // disabled
  311. //
  312. // Parameter is required.
  313. DisableS3ExpressSessionAuth *bool
  314. }
  315. // ValidateRequired validates required parameters are set.
  316. func (p EndpointParameters) ValidateRequired() error {
  317. if p.Accelerate == nil {
  318. return fmt.Errorf("parameter Accelerate is required")
  319. }
  320. if p.DisableMultiRegionAccessPoints == nil {
  321. return fmt.Errorf("parameter DisableMultiRegionAccessPoints is required")
  322. }
  323. if p.ForcePathStyle == nil {
  324. return fmt.Errorf("parameter ForcePathStyle is required")
  325. }
  326. if p.UseDualStack == nil {
  327. return fmt.Errorf("parameter UseDualStack is required")
  328. }
  329. if p.UseFIPS == nil {
  330. return fmt.Errorf("parameter UseFIPS is required")
  331. }
  332. if p.UseGlobalEndpoint == nil {
  333. return fmt.Errorf("parameter UseGlobalEndpoint is required")
  334. }
  335. return nil
  336. }
  337. // WithDefaults returns a shallow copy of EndpointParameterswith default values
  338. // applied to members where applicable.
  339. func (p EndpointParameters) WithDefaults() EndpointParameters {
  340. if p.Accelerate == nil {
  341. p.Accelerate = ptr.Bool(false)
  342. }
  343. if p.DisableMultiRegionAccessPoints == nil {
  344. p.DisableMultiRegionAccessPoints = ptr.Bool(false)
  345. }
  346. if p.ForcePathStyle == nil {
  347. p.ForcePathStyle = ptr.Bool(false)
  348. }
  349. if p.UseDualStack == nil {
  350. p.UseDualStack = ptr.Bool(false)
  351. }
  352. if p.UseFIPS == nil {
  353. p.UseFIPS = ptr.Bool(false)
  354. }
  355. if p.UseGlobalEndpoint == nil {
  356. p.UseGlobalEndpoint = ptr.Bool(false)
  357. }
  358. return p
  359. }
  360. type stringSlice []string
  361. func (s stringSlice) Get(i int) *string {
  362. if i < 0 || i >= len(s) {
  363. return nil
  364. }
  365. v := s[i]
  366. return &v
  367. }
  368. // EndpointResolverV2 provides the interface for resolving service endpoints.
  369. type EndpointResolverV2 interface {
  370. // ResolveEndpoint attempts to resolve the endpoint with the provided options,
  371. // returning the endpoint if found. Otherwise an error is returned.
  372. ResolveEndpoint(ctx context.Context, params EndpointParameters) (
  373. smithyendpoints.Endpoint, error,
  374. )
  375. }
  376. // resolver provides the implementation for resolving endpoints.
  377. type resolver struct{}
  378. func NewDefaultEndpointResolverV2() EndpointResolverV2 {
  379. return &resolver{}
  380. }
  381. // ResolveEndpoint attempts to resolve the endpoint with the provided options,
  382. // returning the endpoint if found. Otherwise an error is returned.
  383. func (r *resolver) ResolveEndpoint(
  384. ctx context.Context, params EndpointParameters,
  385. ) (
  386. endpoint smithyendpoints.Endpoint, err error,
  387. ) {
  388. params = params.WithDefaults()
  389. if err = params.ValidateRequired(); err != nil {
  390. return endpoint, fmt.Errorf("endpoint parameters are not valid, %w", err)
  391. }
  392. _UseFIPS := *params.UseFIPS
  393. _ = _UseFIPS
  394. _UseDualStack := *params.UseDualStack
  395. _ = _UseDualStack
  396. _ForcePathStyle := *params.ForcePathStyle
  397. _ = _ForcePathStyle
  398. _Accelerate := *params.Accelerate
  399. _ = _Accelerate
  400. _UseGlobalEndpoint := *params.UseGlobalEndpoint
  401. _ = _UseGlobalEndpoint
  402. _DisableMultiRegionAccessPoints := *params.DisableMultiRegionAccessPoints
  403. _ = _DisableMultiRegionAccessPoints
  404. if exprVal := params.Region; exprVal != nil {
  405. _Region := *exprVal
  406. _ = _Region
  407. if _Accelerate == true {
  408. if _UseFIPS == true {
  409. return endpoint, fmt.Errorf("endpoint rule error, %s", "Accelerate cannot be used with FIPS")
  410. }
  411. }
  412. if _UseDualStack == true {
  413. if exprVal := params.Endpoint; exprVal != nil {
  414. _Endpoint := *exprVal
  415. _ = _Endpoint
  416. return endpoint, fmt.Errorf("endpoint rule error, %s", "Cannot set dual-stack in combination with a custom endpoint.")
  417. }
  418. }
  419. if exprVal := params.Endpoint; exprVal != nil {
  420. _Endpoint := *exprVal
  421. _ = _Endpoint
  422. if _UseFIPS == true {
  423. return endpoint, fmt.Errorf("endpoint rule error, %s", "A custom endpoint cannot be combined with FIPS")
  424. }
  425. }
  426. if exprVal := params.Endpoint; exprVal != nil {
  427. _Endpoint := *exprVal
  428. _ = _Endpoint
  429. if _Accelerate == true {
  430. return endpoint, fmt.Errorf("endpoint rule error, %s", "A custom endpoint cannot be combined with S3 Accelerate")
  431. }
  432. }
  433. if _UseFIPS == true {
  434. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  435. _partitionResult := *exprVal
  436. _ = _partitionResult
  437. if _partitionResult.Name == "aws-cn" {
  438. return endpoint, fmt.Errorf("endpoint rule error, %s", "Partition does not support FIPS")
  439. }
  440. }
  441. }
  442. if exprVal := params.Bucket; exprVal != nil {
  443. _Bucket := *exprVal
  444. _ = _Bucket
  445. if exprVal := rulesfn.SubString(_Bucket, 0, 6, true); exprVal != nil {
  446. _bucketSuffix := *exprVal
  447. _ = _bucketSuffix
  448. if _bucketSuffix == "--x-s3" {
  449. if _UseDualStack == true {
  450. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express does not support Dual-stack.")
  451. }
  452. if _Accelerate == true {
  453. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express does not support S3 Accelerate.")
  454. }
  455. if exprVal := params.Endpoint; exprVal != nil {
  456. _Endpoint := *exprVal
  457. _ = _Endpoint
  458. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  459. _url := *exprVal
  460. _ = _url
  461. if exprVal := params.DisableS3ExpressSessionAuth; exprVal != nil {
  462. _DisableS3ExpressSessionAuth := *exprVal
  463. _ = _DisableS3ExpressSessionAuth
  464. if _DisableS3ExpressSessionAuth == true {
  465. if _url.IsIp == true {
  466. _uri_encoded_bucket := rulesfn.URIEncode(_Bucket)
  467. _ = _uri_encoded_bucket
  468. uriString := func() string {
  469. var out strings.Builder
  470. out.WriteString(_url.Scheme)
  471. out.WriteString("://")
  472. out.WriteString(_url.Authority)
  473. out.WriteString("/")
  474. out.WriteString(_uri_encoded_bucket)
  475. out.WriteString(_url.Path)
  476. return out.String()
  477. }()
  478. uri, err := url.Parse(uriString)
  479. if err != nil {
  480. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  481. }
  482. return smithyendpoints.Endpoint{
  483. URI: *uri,
  484. Headers: http.Header{},
  485. Properties: func() smithy.Properties {
  486. var out smithy.Properties
  487. out.Set("backend", "S3Express")
  488. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  489. {
  490. SchemeID: "aws.auth#sigv4",
  491. SignerProperties: func() smithy.Properties {
  492. var sp smithy.Properties
  493. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  494. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  495. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  496. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  497. return sp
  498. }(),
  499. },
  500. })
  501. return out
  502. }(),
  503. }, nil
  504. }
  505. if awsrulesfn.IsVirtualHostableS3Bucket(_Bucket, false) {
  506. uriString := func() string {
  507. var out strings.Builder
  508. out.WriteString(_url.Scheme)
  509. out.WriteString("://")
  510. out.WriteString(_Bucket)
  511. out.WriteString(".")
  512. out.WriteString(_url.Authority)
  513. out.WriteString(_url.Path)
  514. return out.String()
  515. }()
  516. uri, err := url.Parse(uriString)
  517. if err != nil {
  518. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  519. }
  520. return smithyendpoints.Endpoint{
  521. URI: *uri,
  522. Headers: http.Header{},
  523. Properties: func() smithy.Properties {
  524. var out smithy.Properties
  525. out.Set("backend", "S3Express")
  526. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  527. {
  528. SchemeID: "aws.auth#sigv4",
  529. SignerProperties: func() smithy.Properties {
  530. var sp smithy.Properties
  531. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  532. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  533. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  534. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  535. return sp
  536. }(),
  537. },
  538. })
  539. return out
  540. }(),
  541. }, nil
  542. }
  543. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express bucket name is not a valid virtual hostable name.")
  544. }
  545. }
  546. if _url.IsIp == true {
  547. _uri_encoded_bucket := rulesfn.URIEncode(_Bucket)
  548. _ = _uri_encoded_bucket
  549. uriString := func() string {
  550. var out strings.Builder
  551. out.WriteString(_url.Scheme)
  552. out.WriteString("://")
  553. out.WriteString(_url.Authority)
  554. out.WriteString("/")
  555. out.WriteString(_uri_encoded_bucket)
  556. out.WriteString(_url.Path)
  557. return out.String()
  558. }()
  559. uri, err := url.Parse(uriString)
  560. if err != nil {
  561. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  562. }
  563. return smithyendpoints.Endpoint{
  564. URI: *uri,
  565. Headers: http.Header{},
  566. Properties: func() smithy.Properties {
  567. var out smithy.Properties
  568. out.Set("backend", "S3Express")
  569. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  570. {
  571. SchemeID: "sigv4-s3express",
  572. SignerProperties: func() smithy.Properties {
  573. var sp smithy.Properties
  574. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  575. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  576. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  577. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  578. return sp
  579. }(),
  580. },
  581. })
  582. return out
  583. }(),
  584. }, nil
  585. }
  586. if awsrulesfn.IsVirtualHostableS3Bucket(_Bucket, false) {
  587. uriString := func() string {
  588. var out strings.Builder
  589. out.WriteString(_url.Scheme)
  590. out.WriteString("://")
  591. out.WriteString(_Bucket)
  592. out.WriteString(".")
  593. out.WriteString(_url.Authority)
  594. out.WriteString(_url.Path)
  595. return out.String()
  596. }()
  597. uri, err := url.Parse(uriString)
  598. if err != nil {
  599. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  600. }
  601. return smithyendpoints.Endpoint{
  602. URI: *uri,
  603. Headers: http.Header{},
  604. Properties: func() smithy.Properties {
  605. var out smithy.Properties
  606. out.Set("backend", "S3Express")
  607. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  608. {
  609. SchemeID: "sigv4-s3express",
  610. SignerProperties: func() smithy.Properties {
  611. var sp smithy.Properties
  612. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  613. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  614. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  615. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  616. return sp
  617. }(),
  618. },
  619. })
  620. return out
  621. }(),
  622. }, nil
  623. }
  624. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express bucket name is not a valid virtual hostable name.")
  625. }
  626. }
  627. if exprVal := params.UseS3ExpressControlEndpoint; exprVal != nil {
  628. _UseS3ExpressControlEndpoint := *exprVal
  629. _ = _UseS3ExpressControlEndpoint
  630. if _UseS3ExpressControlEndpoint == true {
  631. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  632. _partitionResult := *exprVal
  633. _ = _partitionResult
  634. _uri_encoded_bucket := rulesfn.URIEncode(_Bucket)
  635. _ = _uri_encoded_bucket
  636. if !(params.Endpoint != nil) {
  637. if _UseFIPS == true {
  638. uriString := func() string {
  639. var out strings.Builder
  640. out.WriteString("https://s3express-control-fips.")
  641. out.WriteString(_Region)
  642. out.WriteString(".")
  643. out.WriteString(_partitionResult.DnsSuffix)
  644. out.WriteString("/")
  645. out.WriteString(_uri_encoded_bucket)
  646. return out.String()
  647. }()
  648. uri, err := url.Parse(uriString)
  649. if err != nil {
  650. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  651. }
  652. return smithyendpoints.Endpoint{
  653. URI: *uri,
  654. Headers: http.Header{},
  655. Properties: func() smithy.Properties {
  656. var out smithy.Properties
  657. out.Set("backend", "S3Express")
  658. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  659. {
  660. SchemeID: "aws.auth#sigv4",
  661. SignerProperties: func() smithy.Properties {
  662. var sp smithy.Properties
  663. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  664. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  665. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  666. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  667. return sp
  668. }(),
  669. },
  670. })
  671. return out
  672. }(),
  673. }, nil
  674. }
  675. uriString := func() string {
  676. var out strings.Builder
  677. out.WriteString("https://s3express-control.")
  678. out.WriteString(_Region)
  679. out.WriteString(".")
  680. out.WriteString(_partitionResult.DnsSuffix)
  681. out.WriteString("/")
  682. out.WriteString(_uri_encoded_bucket)
  683. return out.String()
  684. }()
  685. uri, err := url.Parse(uriString)
  686. if err != nil {
  687. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  688. }
  689. return smithyendpoints.Endpoint{
  690. URI: *uri,
  691. Headers: http.Header{},
  692. Properties: func() smithy.Properties {
  693. var out smithy.Properties
  694. out.Set("backend", "S3Express")
  695. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  696. {
  697. SchemeID: "aws.auth#sigv4",
  698. SignerProperties: func() smithy.Properties {
  699. var sp smithy.Properties
  700. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  701. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  702. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  703. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  704. return sp
  705. }(),
  706. },
  707. })
  708. return out
  709. }(),
  710. }, nil
  711. }
  712. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  713. }
  714. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  715. }
  716. }
  717. if awsrulesfn.IsVirtualHostableS3Bucket(_Bucket, false) {
  718. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  719. _partitionResult := *exprVal
  720. _ = _partitionResult
  721. if exprVal := params.DisableS3ExpressSessionAuth; exprVal != nil {
  722. _DisableS3ExpressSessionAuth := *exprVal
  723. _ = _DisableS3ExpressSessionAuth
  724. if _DisableS3ExpressSessionAuth == true {
  725. if exprVal := rulesfn.SubString(_Bucket, 6, 14, true); exprVal != nil {
  726. _s3expressAvailabilityZoneId := *exprVal
  727. _ = _s3expressAvailabilityZoneId
  728. if exprVal := rulesfn.SubString(_Bucket, 14, 16, true); exprVal != nil {
  729. _s3expressAvailabilityZoneDelim := *exprVal
  730. _ = _s3expressAvailabilityZoneDelim
  731. if _s3expressAvailabilityZoneDelim == "--" {
  732. if _UseFIPS == true {
  733. uriString := func() string {
  734. var out strings.Builder
  735. out.WriteString("https://")
  736. out.WriteString(_Bucket)
  737. out.WriteString(".s3express-fips-")
  738. out.WriteString(_s3expressAvailabilityZoneId)
  739. out.WriteString(".")
  740. out.WriteString(_Region)
  741. out.WriteString(".")
  742. out.WriteString(_partitionResult.DnsSuffix)
  743. return out.String()
  744. }()
  745. uri, err := url.Parse(uriString)
  746. if err != nil {
  747. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  748. }
  749. return smithyendpoints.Endpoint{
  750. URI: *uri,
  751. Headers: http.Header{},
  752. Properties: func() smithy.Properties {
  753. var out smithy.Properties
  754. out.Set("backend", "S3Express")
  755. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  756. {
  757. SchemeID: "aws.auth#sigv4",
  758. SignerProperties: func() smithy.Properties {
  759. var sp smithy.Properties
  760. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  761. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  762. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  763. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  764. return sp
  765. }(),
  766. },
  767. })
  768. return out
  769. }(),
  770. }, nil
  771. }
  772. uriString := func() string {
  773. var out strings.Builder
  774. out.WriteString("https://")
  775. out.WriteString(_Bucket)
  776. out.WriteString(".s3express-")
  777. out.WriteString(_s3expressAvailabilityZoneId)
  778. out.WriteString(".")
  779. out.WriteString(_Region)
  780. out.WriteString(".")
  781. out.WriteString(_partitionResult.DnsSuffix)
  782. return out.String()
  783. }()
  784. uri, err := url.Parse(uriString)
  785. if err != nil {
  786. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  787. }
  788. return smithyendpoints.Endpoint{
  789. URI: *uri,
  790. Headers: http.Header{},
  791. Properties: func() smithy.Properties {
  792. var out smithy.Properties
  793. out.Set("backend", "S3Express")
  794. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  795. {
  796. SchemeID: "aws.auth#sigv4",
  797. SignerProperties: func() smithy.Properties {
  798. var sp smithy.Properties
  799. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  800. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  801. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  802. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  803. return sp
  804. }(),
  805. },
  806. })
  807. return out
  808. }(),
  809. }, nil
  810. }
  811. }
  812. }
  813. if exprVal := rulesfn.SubString(_Bucket, 6, 15, true); exprVal != nil {
  814. _s3expressAvailabilityZoneId := *exprVal
  815. _ = _s3expressAvailabilityZoneId
  816. if exprVal := rulesfn.SubString(_Bucket, 15, 17, true); exprVal != nil {
  817. _s3expressAvailabilityZoneDelim := *exprVal
  818. _ = _s3expressAvailabilityZoneDelim
  819. if _s3expressAvailabilityZoneDelim == "--" {
  820. if _UseFIPS == true {
  821. uriString := func() string {
  822. var out strings.Builder
  823. out.WriteString("https://")
  824. out.WriteString(_Bucket)
  825. out.WriteString(".s3express-fips-")
  826. out.WriteString(_s3expressAvailabilityZoneId)
  827. out.WriteString(".")
  828. out.WriteString(_Region)
  829. out.WriteString(".")
  830. out.WriteString(_partitionResult.DnsSuffix)
  831. return out.String()
  832. }()
  833. uri, err := url.Parse(uriString)
  834. if err != nil {
  835. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  836. }
  837. return smithyendpoints.Endpoint{
  838. URI: *uri,
  839. Headers: http.Header{},
  840. Properties: func() smithy.Properties {
  841. var out smithy.Properties
  842. out.Set("backend", "S3Express")
  843. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  844. {
  845. SchemeID: "aws.auth#sigv4",
  846. SignerProperties: func() smithy.Properties {
  847. var sp smithy.Properties
  848. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  849. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  850. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  851. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  852. return sp
  853. }(),
  854. },
  855. })
  856. return out
  857. }(),
  858. }, nil
  859. }
  860. uriString := func() string {
  861. var out strings.Builder
  862. out.WriteString("https://")
  863. out.WriteString(_Bucket)
  864. out.WriteString(".s3express-")
  865. out.WriteString(_s3expressAvailabilityZoneId)
  866. out.WriteString(".")
  867. out.WriteString(_Region)
  868. out.WriteString(".")
  869. out.WriteString(_partitionResult.DnsSuffix)
  870. return out.String()
  871. }()
  872. uri, err := url.Parse(uriString)
  873. if err != nil {
  874. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  875. }
  876. return smithyendpoints.Endpoint{
  877. URI: *uri,
  878. Headers: http.Header{},
  879. Properties: func() smithy.Properties {
  880. var out smithy.Properties
  881. out.Set("backend", "S3Express")
  882. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  883. {
  884. SchemeID: "aws.auth#sigv4",
  885. SignerProperties: func() smithy.Properties {
  886. var sp smithy.Properties
  887. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  888. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  889. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  890. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  891. return sp
  892. }(),
  893. },
  894. })
  895. return out
  896. }(),
  897. }, nil
  898. }
  899. }
  900. }
  901. if exprVal := rulesfn.SubString(_Bucket, 6, 19, true); exprVal != nil {
  902. _s3expressAvailabilityZoneId := *exprVal
  903. _ = _s3expressAvailabilityZoneId
  904. if exprVal := rulesfn.SubString(_Bucket, 19, 21, true); exprVal != nil {
  905. _s3expressAvailabilityZoneDelim := *exprVal
  906. _ = _s3expressAvailabilityZoneDelim
  907. if _s3expressAvailabilityZoneDelim == "--" {
  908. if _UseFIPS == true {
  909. uriString := func() string {
  910. var out strings.Builder
  911. out.WriteString("https://")
  912. out.WriteString(_Bucket)
  913. out.WriteString(".s3express-fips-")
  914. out.WriteString(_s3expressAvailabilityZoneId)
  915. out.WriteString(".")
  916. out.WriteString(_Region)
  917. out.WriteString(".")
  918. out.WriteString(_partitionResult.DnsSuffix)
  919. return out.String()
  920. }()
  921. uri, err := url.Parse(uriString)
  922. if err != nil {
  923. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  924. }
  925. return smithyendpoints.Endpoint{
  926. URI: *uri,
  927. Headers: http.Header{},
  928. Properties: func() smithy.Properties {
  929. var out smithy.Properties
  930. out.Set("backend", "S3Express")
  931. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  932. {
  933. SchemeID: "aws.auth#sigv4",
  934. SignerProperties: func() smithy.Properties {
  935. var sp smithy.Properties
  936. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  937. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  938. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  939. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  940. return sp
  941. }(),
  942. },
  943. })
  944. return out
  945. }(),
  946. }, nil
  947. }
  948. uriString := func() string {
  949. var out strings.Builder
  950. out.WriteString("https://")
  951. out.WriteString(_Bucket)
  952. out.WriteString(".s3express-")
  953. out.WriteString(_s3expressAvailabilityZoneId)
  954. out.WriteString(".")
  955. out.WriteString(_Region)
  956. out.WriteString(".")
  957. out.WriteString(_partitionResult.DnsSuffix)
  958. return out.String()
  959. }()
  960. uri, err := url.Parse(uriString)
  961. if err != nil {
  962. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  963. }
  964. return smithyendpoints.Endpoint{
  965. URI: *uri,
  966. Headers: http.Header{},
  967. Properties: func() smithy.Properties {
  968. var out smithy.Properties
  969. out.Set("backend", "S3Express")
  970. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  971. {
  972. SchemeID: "aws.auth#sigv4",
  973. SignerProperties: func() smithy.Properties {
  974. var sp smithy.Properties
  975. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  976. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  977. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  978. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  979. return sp
  980. }(),
  981. },
  982. })
  983. return out
  984. }(),
  985. }, nil
  986. }
  987. }
  988. }
  989. if exprVal := rulesfn.SubString(_Bucket, 6, 20, true); exprVal != nil {
  990. _s3expressAvailabilityZoneId := *exprVal
  991. _ = _s3expressAvailabilityZoneId
  992. if exprVal := rulesfn.SubString(_Bucket, 20, 22, true); exprVal != nil {
  993. _s3expressAvailabilityZoneDelim := *exprVal
  994. _ = _s3expressAvailabilityZoneDelim
  995. if _s3expressAvailabilityZoneDelim == "--" {
  996. if _UseFIPS == true {
  997. uriString := func() string {
  998. var out strings.Builder
  999. out.WriteString("https://")
  1000. out.WriteString(_Bucket)
  1001. out.WriteString(".s3express-fips-")
  1002. out.WriteString(_s3expressAvailabilityZoneId)
  1003. out.WriteString(".")
  1004. out.WriteString(_Region)
  1005. out.WriteString(".")
  1006. out.WriteString(_partitionResult.DnsSuffix)
  1007. return out.String()
  1008. }()
  1009. uri, err := url.Parse(uriString)
  1010. if err != nil {
  1011. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1012. }
  1013. return smithyendpoints.Endpoint{
  1014. URI: *uri,
  1015. Headers: http.Header{},
  1016. Properties: func() smithy.Properties {
  1017. var out smithy.Properties
  1018. out.Set("backend", "S3Express")
  1019. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1020. {
  1021. SchemeID: "aws.auth#sigv4",
  1022. SignerProperties: func() smithy.Properties {
  1023. var sp smithy.Properties
  1024. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1025. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1026. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1027. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1028. return sp
  1029. }(),
  1030. },
  1031. })
  1032. return out
  1033. }(),
  1034. }, nil
  1035. }
  1036. uriString := func() string {
  1037. var out strings.Builder
  1038. out.WriteString("https://")
  1039. out.WriteString(_Bucket)
  1040. out.WriteString(".s3express-")
  1041. out.WriteString(_s3expressAvailabilityZoneId)
  1042. out.WriteString(".")
  1043. out.WriteString(_Region)
  1044. out.WriteString(".")
  1045. out.WriteString(_partitionResult.DnsSuffix)
  1046. return out.String()
  1047. }()
  1048. uri, err := url.Parse(uriString)
  1049. if err != nil {
  1050. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1051. }
  1052. return smithyendpoints.Endpoint{
  1053. URI: *uri,
  1054. Headers: http.Header{},
  1055. Properties: func() smithy.Properties {
  1056. var out smithy.Properties
  1057. out.Set("backend", "S3Express")
  1058. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1059. {
  1060. SchemeID: "aws.auth#sigv4",
  1061. SignerProperties: func() smithy.Properties {
  1062. var sp smithy.Properties
  1063. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1064. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1065. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1066. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1067. return sp
  1068. }(),
  1069. },
  1070. })
  1071. return out
  1072. }(),
  1073. }, nil
  1074. }
  1075. }
  1076. }
  1077. if exprVal := rulesfn.SubString(_Bucket, 6, 26, true); exprVal != nil {
  1078. _s3expressAvailabilityZoneId := *exprVal
  1079. _ = _s3expressAvailabilityZoneId
  1080. if exprVal := rulesfn.SubString(_Bucket, 26, 28, true); exprVal != nil {
  1081. _s3expressAvailabilityZoneDelim := *exprVal
  1082. _ = _s3expressAvailabilityZoneDelim
  1083. if _s3expressAvailabilityZoneDelim == "--" {
  1084. if _UseFIPS == true {
  1085. uriString := func() string {
  1086. var out strings.Builder
  1087. out.WriteString("https://")
  1088. out.WriteString(_Bucket)
  1089. out.WriteString(".s3express-fips-")
  1090. out.WriteString(_s3expressAvailabilityZoneId)
  1091. out.WriteString(".")
  1092. out.WriteString(_Region)
  1093. out.WriteString(".")
  1094. out.WriteString(_partitionResult.DnsSuffix)
  1095. return out.String()
  1096. }()
  1097. uri, err := url.Parse(uriString)
  1098. if err != nil {
  1099. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1100. }
  1101. return smithyendpoints.Endpoint{
  1102. URI: *uri,
  1103. Headers: http.Header{},
  1104. Properties: func() smithy.Properties {
  1105. var out smithy.Properties
  1106. out.Set("backend", "S3Express")
  1107. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1108. {
  1109. SchemeID: "aws.auth#sigv4",
  1110. SignerProperties: func() smithy.Properties {
  1111. var sp smithy.Properties
  1112. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1113. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1114. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1115. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1116. return sp
  1117. }(),
  1118. },
  1119. })
  1120. return out
  1121. }(),
  1122. }, nil
  1123. }
  1124. uriString := func() string {
  1125. var out strings.Builder
  1126. out.WriteString("https://")
  1127. out.WriteString(_Bucket)
  1128. out.WriteString(".s3express-")
  1129. out.WriteString(_s3expressAvailabilityZoneId)
  1130. out.WriteString(".")
  1131. out.WriteString(_Region)
  1132. out.WriteString(".")
  1133. out.WriteString(_partitionResult.DnsSuffix)
  1134. return out.String()
  1135. }()
  1136. uri, err := url.Parse(uriString)
  1137. if err != nil {
  1138. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1139. }
  1140. return smithyendpoints.Endpoint{
  1141. URI: *uri,
  1142. Headers: http.Header{},
  1143. Properties: func() smithy.Properties {
  1144. var out smithy.Properties
  1145. out.Set("backend", "S3Express")
  1146. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1147. {
  1148. SchemeID: "aws.auth#sigv4",
  1149. SignerProperties: func() smithy.Properties {
  1150. var sp smithy.Properties
  1151. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1152. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1153. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1154. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1155. return sp
  1156. }(),
  1157. },
  1158. })
  1159. return out
  1160. }(),
  1161. }, nil
  1162. }
  1163. }
  1164. }
  1165. return endpoint, fmt.Errorf("endpoint rule error, %s", "Unrecognized S3Express bucket name format.")
  1166. }
  1167. }
  1168. if exprVal := rulesfn.SubString(_Bucket, 6, 14, true); exprVal != nil {
  1169. _s3expressAvailabilityZoneId := *exprVal
  1170. _ = _s3expressAvailabilityZoneId
  1171. if exprVal := rulesfn.SubString(_Bucket, 14, 16, true); exprVal != nil {
  1172. _s3expressAvailabilityZoneDelim := *exprVal
  1173. _ = _s3expressAvailabilityZoneDelim
  1174. if _s3expressAvailabilityZoneDelim == "--" {
  1175. if _UseFIPS == true {
  1176. uriString := func() string {
  1177. var out strings.Builder
  1178. out.WriteString("https://")
  1179. out.WriteString(_Bucket)
  1180. out.WriteString(".s3express-fips-")
  1181. out.WriteString(_s3expressAvailabilityZoneId)
  1182. out.WriteString(".")
  1183. out.WriteString(_Region)
  1184. out.WriteString(".")
  1185. out.WriteString(_partitionResult.DnsSuffix)
  1186. return out.String()
  1187. }()
  1188. uri, err := url.Parse(uriString)
  1189. if err != nil {
  1190. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1191. }
  1192. return smithyendpoints.Endpoint{
  1193. URI: *uri,
  1194. Headers: http.Header{},
  1195. Properties: func() smithy.Properties {
  1196. var out smithy.Properties
  1197. out.Set("backend", "S3Express")
  1198. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1199. {
  1200. SchemeID: "sigv4-s3express",
  1201. SignerProperties: func() smithy.Properties {
  1202. var sp smithy.Properties
  1203. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1204. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1205. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1206. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1207. return sp
  1208. }(),
  1209. },
  1210. })
  1211. return out
  1212. }(),
  1213. }, nil
  1214. }
  1215. uriString := func() string {
  1216. var out strings.Builder
  1217. out.WriteString("https://")
  1218. out.WriteString(_Bucket)
  1219. out.WriteString(".s3express-")
  1220. out.WriteString(_s3expressAvailabilityZoneId)
  1221. out.WriteString(".")
  1222. out.WriteString(_Region)
  1223. out.WriteString(".")
  1224. out.WriteString(_partitionResult.DnsSuffix)
  1225. return out.String()
  1226. }()
  1227. uri, err := url.Parse(uriString)
  1228. if err != nil {
  1229. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1230. }
  1231. return smithyendpoints.Endpoint{
  1232. URI: *uri,
  1233. Headers: http.Header{},
  1234. Properties: func() smithy.Properties {
  1235. var out smithy.Properties
  1236. out.Set("backend", "S3Express")
  1237. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1238. {
  1239. SchemeID: "sigv4-s3express",
  1240. SignerProperties: func() smithy.Properties {
  1241. var sp smithy.Properties
  1242. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1243. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1244. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1245. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1246. return sp
  1247. }(),
  1248. },
  1249. })
  1250. return out
  1251. }(),
  1252. }, nil
  1253. }
  1254. }
  1255. }
  1256. if exprVal := rulesfn.SubString(_Bucket, 6, 15, true); exprVal != nil {
  1257. _s3expressAvailabilityZoneId := *exprVal
  1258. _ = _s3expressAvailabilityZoneId
  1259. if exprVal := rulesfn.SubString(_Bucket, 15, 17, true); exprVal != nil {
  1260. _s3expressAvailabilityZoneDelim := *exprVal
  1261. _ = _s3expressAvailabilityZoneDelim
  1262. if _s3expressAvailabilityZoneDelim == "--" {
  1263. if _UseFIPS == true {
  1264. uriString := func() string {
  1265. var out strings.Builder
  1266. out.WriteString("https://")
  1267. out.WriteString(_Bucket)
  1268. out.WriteString(".s3express-fips-")
  1269. out.WriteString(_s3expressAvailabilityZoneId)
  1270. out.WriteString(".")
  1271. out.WriteString(_Region)
  1272. out.WriteString(".")
  1273. out.WriteString(_partitionResult.DnsSuffix)
  1274. return out.String()
  1275. }()
  1276. uri, err := url.Parse(uriString)
  1277. if err != nil {
  1278. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1279. }
  1280. return smithyendpoints.Endpoint{
  1281. URI: *uri,
  1282. Headers: http.Header{},
  1283. Properties: func() smithy.Properties {
  1284. var out smithy.Properties
  1285. out.Set("backend", "S3Express")
  1286. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1287. {
  1288. SchemeID: "sigv4-s3express",
  1289. SignerProperties: func() smithy.Properties {
  1290. var sp smithy.Properties
  1291. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1292. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1293. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1294. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1295. return sp
  1296. }(),
  1297. },
  1298. })
  1299. return out
  1300. }(),
  1301. }, nil
  1302. }
  1303. uriString := func() string {
  1304. var out strings.Builder
  1305. out.WriteString("https://")
  1306. out.WriteString(_Bucket)
  1307. out.WriteString(".s3express-")
  1308. out.WriteString(_s3expressAvailabilityZoneId)
  1309. out.WriteString(".")
  1310. out.WriteString(_Region)
  1311. out.WriteString(".")
  1312. out.WriteString(_partitionResult.DnsSuffix)
  1313. return out.String()
  1314. }()
  1315. uri, err := url.Parse(uriString)
  1316. if err != nil {
  1317. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1318. }
  1319. return smithyendpoints.Endpoint{
  1320. URI: *uri,
  1321. Headers: http.Header{},
  1322. Properties: func() smithy.Properties {
  1323. var out smithy.Properties
  1324. out.Set("backend", "S3Express")
  1325. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1326. {
  1327. SchemeID: "sigv4-s3express",
  1328. SignerProperties: func() smithy.Properties {
  1329. var sp smithy.Properties
  1330. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1331. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1332. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1333. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1334. return sp
  1335. }(),
  1336. },
  1337. })
  1338. return out
  1339. }(),
  1340. }, nil
  1341. }
  1342. }
  1343. }
  1344. if exprVal := rulesfn.SubString(_Bucket, 6, 19, true); exprVal != nil {
  1345. _s3expressAvailabilityZoneId := *exprVal
  1346. _ = _s3expressAvailabilityZoneId
  1347. if exprVal := rulesfn.SubString(_Bucket, 19, 21, true); exprVal != nil {
  1348. _s3expressAvailabilityZoneDelim := *exprVal
  1349. _ = _s3expressAvailabilityZoneDelim
  1350. if _s3expressAvailabilityZoneDelim == "--" {
  1351. if _UseFIPS == true {
  1352. uriString := func() string {
  1353. var out strings.Builder
  1354. out.WriteString("https://")
  1355. out.WriteString(_Bucket)
  1356. out.WriteString(".s3express-fips-")
  1357. out.WriteString(_s3expressAvailabilityZoneId)
  1358. out.WriteString(".")
  1359. out.WriteString(_Region)
  1360. out.WriteString(".")
  1361. out.WriteString(_partitionResult.DnsSuffix)
  1362. return out.String()
  1363. }()
  1364. uri, err := url.Parse(uriString)
  1365. if err != nil {
  1366. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1367. }
  1368. return smithyendpoints.Endpoint{
  1369. URI: *uri,
  1370. Headers: http.Header{},
  1371. Properties: func() smithy.Properties {
  1372. var out smithy.Properties
  1373. out.Set("backend", "S3Express")
  1374. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1375. {
  1376. SchemeID: "sigv4-s3express",
  1377. SignerProperties: func() smithy.Properties {
  1378. var sp smithy.Properties
  1379. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1380. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1381. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1382. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1383. return sp
  1384. }(),
  1385. },
  1386. })
  1387. return out
  1388. }(),
  1389. }, nil
  1390. }
  1391. uriString := func() string {
  1392. var out strings.Builder
  1393. out.WriteString("https://")
  1394. out.WriteString(_Bucket)
  1395. out.WriteString(".s3express-")
  1396. out.WriteString(_s3expressAvailabilityZoneId)
  1397. out.WriteString(".")
  1398. out.WriteString(_Region)
  1399. out.WriteString(".")
  1400. out.WriteString(_partitionResult.DnsSuffix)
  1401. return out.String()
  1402. }()
  1403. uri, err := url.Parse(uriString)
  1404. if err != nil {
  1405. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1406. }
  1407. return smithyendpoints.Endpoint{
  1408. URI: *uri,
  1409. Headers: http.Header{},
  1410. Properties: func() smithy.Properties {
  1411. var out smithy.Properties
  1412. out.Set("backend", "S3Express")
  1413. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1414. {
  1415. SchemeID: "sigv4-s3express",
  1416. SignerProperties: func() smithy.Properties {
  1417. var sp smithy.Properties
  1418. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1419. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1420. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1421. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1422. return sp
  1423. }(),
  1424. },
  1425. })
  1426. return out
  1427. }(),
  1428. }, nil
  1429. }
  1430. }
  1431. }
  1432. if exprVal := rulesfn.SubString(_Bucket, 6, 20, true); exprVal != nil {
  1433. _s3expressAvailabilityZoneId := *exprVal
  1434. _ = _s3expressAvailabilityZoneId
  1435. if exprVal := rulesfn.SubString(_Bucket, 20, 22, true); exprVal != nil {
  1436. _s3expressAvailabilityZoneDelim := *exprVal
  1437. _ = _s3expressAvailabilityZoneDelim
  1438. if _s3expressAvailabilityZoneDelim == "--" {
  1439. if _UseFIPS == true {
  1440. uriString := func() string {
  1441. var out strings.Builder
  1442. out.WriteString("https://")
  1443. out.WriteString(_Bucket)
  1444. out.WriteString(".s3express-fips-")
  1445. out.WriteString(_s3expressAvailabilityZoneId)
  1446. out.WriteString(".")
  1447. out.WriteString(_Region)
  1448. out.WriteString(".")
  1449. out.WriteString(_partitionResult.DnsSuffix)
  1450. return out.String()
  1451. }()
  1452. uri, err := url.Parse(uriString)
  1453. if err != nil {
  1454. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1455. }
  1456. return smithyendpoints.Endpoint{
  1457. URI: *uri,
  1458. Headers: http.Header{},
  1459. Properties: func() smithy.Properties {
  1460. var out smithy.Properties
  1461. out.Set("backend", "S3Express")
  1462. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1463. {
  1464. SchemeID: "sigv4-s3express",
  1465. SignerProperties: func() smithy.Properties {
  1466. var sp smithy.Properties
  1467. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1468. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1469. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1470. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1471. return sp
  1472. }(),
  1473. },
  1474. })
  1475. return out
  1476. }(),
  1477. }, nil
  1478. }
  1479. uriString := func() string {
  1480. var out strings.Builder
  1481. out.WriteString("https://")
  1482. out.WriteString(_Bucket)
  1483. out.WriteString(".s3express-")
  1484. out.WriteString(_s3expressAvailabilityZoneId)
  1485. out.WriteString(".")
  1486. out.WriteString(_Region)
  1487. out.WriteString(".")
  1488. out.WriteString(_partitionResult.DnsSuffix)
  1489. return out.String()
  1490. }()
  1491. uri, err := url.Parse(uriString)
  1492. if err != nil {
  1493. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1494. }
  1495. return smithyendpoints.Endpoint{
  1496. URI: *uri,
  1497. Headers: http.Header{},
  1498. Properties: func() smithy.Properties {
  1499. var out smithy.Properties
  1500. out.Set("backend", "S3Express")
  1501. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1502. {
  1503. SchemeID: "sigv4-s3express",
  1504. SignerProperties: func() smithy.Properties {
  1505. var sp smithy.Properties
  1506. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1507. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1508. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1509. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1510. return sp
  1511. }(),
  1512. },
  1513. })
  1514. return out
  1515. }(),
  1516. }, nil
  1517. }
  1518. }
  1519. }
  1520. if exprVal := rulesfn.SubString(_Bucket, 6, 26, true); exprVal != nil {
  1521. _s3expressAvailabilityZoneId := *exprVal
  1522. _ = _s3expressAvailabilityZoneId
  1523. if exprVal := rulesfn.SubString(_Bucket, 26, 28, true); exprVal != nil {
  1524. _s3expressAvailabilityZoneDelim := *exprVal
  1525. _ = _s3expressAvailabilityZoneDelim
  1526. if _s3expressAvailabilityZoneDelim == "--" {
  1527. if _UseFIPS == true {
  1528. uriString := func() string {
  1529. var out strings.Builder
  1530. out.WriteString("https://")
  1531. out.WriteString(_Bucket)
  1532. out.WriteString(".s3express-fips-")
  1533. out.WriteString(_s3expressAvailabilityZoneId)
  1534. out.WriteString(".")
  1535. out.WriteString(_Region)
  1536. out.WriteString(".")
  1537. out.WriteString(_partitionResult.DnsSuffix)
  1538. return out.String()
  1539. }()
  1540. uri, err := url.Parse(uriString)
  1541. if err != nil {
  1542. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1543. }
  1544. return smithyendpoints.Endpoint{
  1545. URI: *uri,
  1546. Headers: http.Header{},
  1547. Properties: func() smithy.Properties {
  1548. var out smithy.Properties
  1549. out.Set("backend", "S3Express")
  1550. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1551. {
  1552. SchemeID: "sigv4-s3express",
  1553. SignerProperties: func() smithy.Properties {
  1554. var sp smithy.Properties
  1555. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1556. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1557. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1558. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1559. return sp
  1560. }(),
  1561. },
  1562. })
  1563. return out
  1564. }(),
  1565. }, nil
  1566. }
  1567. uriString := func() string {
  1568. var out strings.Builder
  1569. out.WriteString("https://")
  1570. out.WriteString(_Bucket)
  1571. out.WriteString(".s3express-")
  1572. out.WriteString(_s3expressAvailabilityZoneId)
  1573. out.WriteString(".")
  1574. out.WriteString(_Region)
  1575. out.WriteString(".")
  1576. out.WriteString(_partitionResult.DnsSuffix)
  1577. return out.String()
  1578. }()
  1579. uri, err := url.Parse(uriString)
  1580. if err != nil {
  1581. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1582. }
  1583. return smithyendpoints.Endpoint{
  1584. URI: *uri,
  1585. Headers: http.Header{},
  1586. Properties: func() smithy.Properties {
  1587. var out smithy.Properties
  1588. out.Set("backend", "S3Express")
  1589. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1590. {
  1591. SchemeID: "sigv4-s3express",
  1592. SignerProperties: func() smithy.Properties {
  1593. var sp smithy.Properties
  1594. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1595. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1596. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1597. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1598. return sp
  1599. }(),
  1600. },
  1601. })
  1602. return out
  1603. }(),
  1604. }, nil
  1605. }
  1606. }
  1607. }
  1608. return endpoint, fmt.Errorf("endpoint rule error, %s", "Unrecognized S3Express bucket name format.")
  1609. }
  1610. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  1611. }
  1612. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express bucket name is not a valid virtual hostable name.")
  1613. }
  1614. }
  1615. }
  1616. if exprVal := params.Bucket; exprVal != nil {
  1617. _Bucket := *exprVal
  1618. _ = _Bucket
  1619. if exprVal := rulesfn.SubString(_Bucket, 0, 7, true); exprVal != nil {
  1620. _accessPointSuffix := *exprVal
  1621. _ = _accessPointSuffix
  1622. if _accessPointSuffix == "--xa-s3" {
  1623. if _UseDualStack == true {
  1624. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express does not support Dual-stack.")
  1625. }
  1626. if _Accelerate == true {
  1627. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express does not support S3 Accelerate.")
  1628. }
  1629. if exprVal := params.Endpoint; exprVal != nil {
  1630. _Endpoint := *exprVal
  1631. _ = _Endpoint
  1632. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  1633. _url := *exprVal
  1634. _ = _url
  1635. if exprVal := params.DisableS3ExpressSessionAuth; exprVal != nil {
  1636. _DisableS3ExpressSessionAuth := *exprVal
  1637. _ = _DisableS3ExpressSessionAuth
  1638. if _DisableS3ExpressSessionAuth == true {
  1639. if _url.IsIp == true {
  1640. _uri_encoded_bucket := rulesfn.URIEncode(_Bucket)
  1641. _ = _uri_encoded_bucket
  1642. uriString := func() string {
  1643. var out strings.Builder
  1644. out.WriteString(_url.Scheme)
  1645. out.WriteString("://")
  1646. out.WriteString(_url.Authority)
  1647. out.WriteString("/")
  1648. out.WriteString(_uri_encoded_bucket)
  1649. out.WriteString(_url.Path)
  1650. return out.String()
  1651. }()
  1652. uri, err := url.Parse(uriString)
  1653. if err != nil {
  1654. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1655. }
  1656. return smithyendpoints.Endpoint{
  1657. URI: *uri,
  1658. Headers: http.Header{},
  1659. Properties: func() smithy.Properties {
  1660. var out smithy.Properties
  1661. out.Set("backend", "S3Express")
  1662. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1663. {
  1664. SchemeID: "aws.auth#sigv4",
  1665. SignerProperties: func() smithy.Properties {
  1666. var sp smithy.Properties
  1667. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1668. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1669. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1670. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1671. return sp
  1672. }(),
  1673. },
  1674. })
  1675. return out
  1676. }(),
  1677. }, nil
  1678. }
  1679. if awsrulesfn.IsVirtualHostableS3Bucket(_Bucket, false) {
  1680. uriString := func() string {
  1681. var out strings.Builder
  1682. out.WriteString(_url.Scheme)
  1683. out.WriteString("://")
  1684. out.WriteString(_Bucket)
  1685. out.WriteString(".")
  1686. out.WriteString(_url.Authority)
  1687. out.WriteString(_url.Path)
  1688. return out.String()
  1689. }()
  1690. uri, err := url.Parse(uriString)
  1691. if err != nil {
  1692. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1693. }
  1694. return smithyendpoints.Endpoint{
  1695. URI: *uri,
  1696. Headers: http.Header{},
  1697. Properties: func() smithy.Properties {
  1698. var out smithy.Properties
  1699. out.Set("backend", "S3Express")
  1700. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1701. {
  1702. SchemeID: "aws.auth#sigv4",
  1703. SignerProperties: func() smithy.Properties {
  1704. var sp smithy.Properties
  1705. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1706. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1707. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1708. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1709. return sp
  1710. }(),
  1711. },
  1712. })
  1713. return out
  1714. }(),
  1715. }, nil
  1716. }
  1717. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express bucket name is not a valid virtual hostable name.")
  1718. }
  1719. }
  1720. if _url.IsIp == true {
  1721. _uri_encoded_bucket := rulesfn.URIEncode(_Bucket)
  1722. _ = _uri_encoded_bucket
  1723. uriString := func() string {
  1724. var out strings.Builder
  1725. out.WriteString(_url.Scheme)
  1726. out.WriteString("://")
  1727. out.WriteString(_url.Authority)
  1728. out.WriteString("/")
  1729. out.WriteString(_uri_encoded_bucket)
  1730. out.WriteString(_url.Path)
  1731. return out.String()
  1732. }()
  1733. uri, err := url.Parse(uriString)
  1734. if err != nil {
  1735. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1736. }
  1737. return smithyendpoints.Endpoint{
  1738. URI: *uri,
  1739. Headers: http.Header{},
  1740. Properties: func() smithy.Properties {
  1741. var out smithy.Properties
  1742. out.Set("backend", "S3Express")
  1743. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1744. {
  1745. SchemeID: "sigv4-s3express",
  1746. SignerProperties: func() smithy.Properties {
  1747. var sp smithy.Properties
  1748. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1749. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1750. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1751. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1752. return sp
  1753. }(),
  1754. },
  1755. })
  1756. return out
  1757. }(),
  1758. }, nil
  1759. }
  1760. if awsrulesfn.IsVirtualHostableS3Bucket(_Bucket, false) {
  1761. uriString := func() string {
  1762. var out strings.Builder
  1763. out.WriteString(_url.Scheme)
  1764. out.WriteString("://")
  1765. out.WriteString(_Bucket)
  1766. out.WriteString(".")
  1767. out.WriteString(_url.Authority)
  1768. out.WriteString(_url.Path)
  1769. return out.String()
  1770. }()
  1771. uri, err := url.Parse(uriString)
  1772. if err != nil {
  1773. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1774. }
  1775. return smithyendpoints.Endpoint{
  1776. URI: *uri,
  1777. Headers: http.Header{},
  1778. Properties: func() smithy.Properties {
  1779. var out smithy.Properties
  1780. out.Set("backend", "S3Express")
  1781. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1782. {
  1783. SchemeID: "sigv4-s3express",
  1784. SignerProperties: func() smithy.Properties {
  1785. var sp smithy.Properties
  1786. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1787. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1788. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1789. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1790. return sp
  1791. }(),
  1792. },
  1793. })
  1794. return out
  1795. }(),
  1796. }, nil
  1797. }
  1798. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express bucket name is not a valid virtual hostable name.")
  1799. }
  1800. }
  1801. if awsrulesfn.IsVirtualHostableS3Bucket(_Bucket, false) {
  1802. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  1803. _partitionResult := *exprVal
  1804. _ = _partitionResult
  1805. if exprVal := params.DisableS3ExpressSessionAuth; exprVal != nil {
  1806. _DisableS3ExpressSessionAuth := *exprVal
  1807. _ = _DisableS3ExpressSessionAuth
  1808. if _DisableS3ExpressSessionAuth == true {
  1809. if exprVal := rulesfn.SubString(_Bucket, 7, 15, true); exprVal != nil {
  1810. _s3expressAvailabilityZoneId := *exprVal
  1811. _ = _s3expressAvailabilityZoneId
  1812. if exprVal := rulesfn.SubString(_Bucket, 15, 17, true); exprVal != nil {
  1813. _s3expressAvailabilityZoneDelim := *exprVal
  1814. _ = _s3expressAvailabilityZoneDelim
  1815. if _s3expressAvailabilityZoneDelim == "--" {
  1816. if _UseFIPS == true {
  1817. uriString := func() string {
  1818. var out strings.Builder
  1819. out.WriteString("https://")
  1820. out.WriteString(_Bucket)
  1821. out.WriteString(".s3express-fips-")
  1822. out.WriteString(_s3expressAvailabilityZoneId)
  1823. out.WriteString(".")
  1824. out.WriteString(_Region)
  1825. out.WriteString(".")
  1826. out.WriteString(_partitionResult.DnsSuffix)
  1827. return out.String()
  1828. }()
  1829. uri, err := url.Parse(uriString)
  1830. if err != nil {
  1831. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1832. }
  1833. return smithyendpoints.Endpoint{
  1834. URI: *uri,
  1835. Headers: http.Header{},
  1836. Properties: func() smithy.Properties {
  1837. var out smithy.Properties
  1838. out.Set("backend", "S3Express")
  1839. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1840. {
  1841. SchemeID: "aws.auth#sigv4",
  1842. SignerProperties: func() smithy.Properties {
  1843. var sp smithy.Properties
  1844. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1845. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1846. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1847. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1848. return sp
  1849. }(),
  1850. },
  1851. })
  1852. return out
  1853. }(),
  1854. }, nil
  1855. }
  1856. uriString := func() string {
  1857. var out strings.Builder
  1858. out.WriteString("https://")
  1859. out.WriteString(_Bucket)
  1860. out.WriteString(".s3express-")
  1861. out.WriteString(_s3expressAvailabilityZoneId)
  1862. out.WriteString(".")
  1863. out.WriteString(_Region)
  1864. out.WriteString(".")
  1865. out.WriteString(_partitionResult.DnsSuffix)
  1866. return out.String()
  1867. }()
  1868. uri, err := url.Parse(uriString)
  1869. if err != nil {
  1870. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1871. }
  1872. return smithyendpoints.Endpoint{
  1873. URI: *uri,
  1874. Headers: http.Header{},
  1875. Properties: func() smithy.Properties {
  1876. var out smithy.Properties
  1877. out.Set("backend", "S3Express")
  1878. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1879. {
  1880. SchemeID: "aws.auth#sigv4",
  1881. SignerProperties: func() smithy.Properties {
  1882. var sp smithy.Properties
  1883. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1884. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1885. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1886. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1887. return sp
  1888. }(),
  1889. },
  1890. })
  1891. return out
  1892. }(),
  1893. }, nil
  1894. }
  1895. }
  1896. }
  1897. if exprVal := rulesfn.SubString(_Bucket, 7, 16, true); exprVal != nil {
  1898. _s3expressAvailabilityZoneId := *exprVal
  1899. _ = _s3expressAvailabilityZoneId
  1900. if exprVal := rulesfn.SubString(_Bucket, 16, 18, true); exprVal != nil {
  1901. _s3expressAvailabilityZoneDelim := *exprVal
  1902. _ = _s3expressAvailabilityZoneDelim
  1903. if _s3expressAvailabilityZoneDelim == "--" {
  1904. if _UseFIPS == true {
  1905. uriString := func() string {
  1906. var out strings.Builder
  1907. out.WriteString("https://")
  1908. out.WriteString(_Bucket)
  1909. out.WriteString(".s3express-fips-")
  1910. out.WriteString(_s3expressAvailabilityZoneId)
  1911. out.WriteString(".")
  1912. out.WriteString(_Region)
  1913. out.WriteString(".")
  1914. out.WriteString(_partitionResult.DnsSuffix)
  1915. return out.String()
  1916. }()
  1917. uri, err := url.Parse(uriString)
  1918. if err != nil {
  1919. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1920. }
  1921. return smithyendpoints.Endpoint{
  1922. URI: *uri,
  1923. Headers: http.Header{},
  1924. Properties: func() smithy.Properties {
  1925. var out smithy.Properties
  1926. out.Set("backend", "S3Express")
  1927. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1928. {
  1929. SchemeID: "aws.auth#sigv4",
  1930. SignerProperties: func() smithy.Properties {
  1931. var sp smithy.Properties
  1932. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1933. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1934. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1935. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1936. return sp
  1937. }(),
  1938. },
  1939. })
  1940. return out
  1941. }(),
  1942. }, nil
  1943. }
  1944. uriString := func() string {
  1945. var out strings.Builder
  1946. out.WriteString("https://")
  1947. out.WriteString(_Bucket)
  1948. out.WriteString(".s3express-")
  1949. out.WriteString(_s3expressAvailabilityZoneId)
  1950. out.WriteString(".")
  1951. out.WriteString(_Region)
  1952. out.WriteString(".")
  1953. out.WriteString(_partitionResult.DnsSuffix)
  1954. return out.String()
  1955. }()
  1956. uri, err := url.Parse(uriString)
  1957. if err != nil {
  1958. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  1959. }
  1960. return smithyendpoints.Endpoint{
  1961. URI: *uri,
  1962. Headers: http.Header{},
  1963. Properties: func() smithy.Properties {
  1964. var out smithy.Properties
  1965. out.Set("backend", "S3Express")
  1966. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  1967. {
  1968. SchemeID: "aws.auth#sigv4",
  1969. SignerProperties: func() smithy.Properties {
  1970. var sp smithy.Properties
  1971. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  1972. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  1973. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  1974. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  1975. return sp
  1976. }(),
  1977. },
  1978. })
  1979. return out
  1980. }(),
  1981. }, nil
  1982. }
  1983. }
  1984. }
  1985. if exprVal := rulesfn.SubString(_Bucket, 7, 20, true); exprVal != nil {
  1986. _s3expressAvailabilityZoneId := *exprVal
  1987. _ = _s3expressAvailabilityZoneId
  1988. if exprVal := rulesfn.SubString(_Bucket, 20, 22, true); exprVal != nil {
  1989. _s3expressAvailabilityZoneDelim := *exprVal
  1990. _ = _s3expressAvailabilityZoneDelim
  1991. if _s3expressAvailabilityZoneDelim == "--" {
  1992. if _UseFIPS == true {
  1993. uriString := func() string {
  1994. var out strings.Builder
  1995. out.WriteString("https://")
  1996. out.WriteString(_Bucket)
  1997. out.WriteString(".s3express-fips-")
  1998. out.WriteString(_s3expressAvailabilityZoneId)
  1999. out.WriteString(".")
  2000. out.WriteString(_Region)
  2001. out.WriteString(".")
  2002. out.WriteString(_partitionResult.DnsSuffix)
  2003. return out.String()
  2004. }()
  2005. uri, err := url.Parse(uriString)
  2006. if err != nil {
  2007. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2008. }
  2009. return smithyendpoints.Endpoint{
  2010. URI: *uri,
  2011. Headers: http.Header{},
  2012. Properties: func() smithy.Properties {
  2013. var out smithy.Properties
  2014. out.Set("backend", "S3Express")
  2015. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2016. {
  2017. SchemeID: "aws.auth#sigv4",
  2018. SignerProperties: func() smithy.Properties {
  2019. var sp smithy.Properties
  2020. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2021. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2022. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2023. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2024. return sp
  2025. }(),
  2026. },
  2027. })
  2028. return out
  2029. }(),
  2030. }, nil
  2031. }
  2032. uriString := func() string {
  2033. var out strings.Builder
  2034. out.WriteString("https://")
  2035. out.WriteString(_Bucket)
  2036. out.WriteString(".s3express-")
  2037. out.WriteString(_s3expressAvailabilityZoneId)
  2038. out.WriteString(".")
  2039. out.WriteString(_Region)
  2040. out.WriteString(".")
  2041. out.WriteString(_partitionResult.DnsSuffix)
  2042. return out.String()
  2043. }()
  2044. uri, err := url.Parse(uriString)
  2045. if err != nil {
  2046. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2047. }
  2048. return smithyendpoints.Endpoint{
  2049. URI: *uri,
  2050. Headers: http.Header{},
  2051. Properties: func() smithy.Properties {
  2052. var out smithy.Properties
  2053. out.Set("backend", "S3Express")
  2054. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2055. {
  2056. SchemeID: "aws.auth#sigv4",
  2057. SignerProperties: func() smithy.Properties {
  2058. var sp smithy.Properties
  2059. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2060. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2061. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2062. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2063. return sp
  2064. }(),
  2065. },
  2066. })
  2067. return out
  2068. }(),
  2069. }, nil
  2070. }
  2071. }
  2072. }
  2073. if exprVal := rulesfn.SubString(_Bucket, 7, 21, true); exprVal != nil {
  2074. _s3expressAvailabilityZoneId := *exprVal
  2075. _ = _s3expressAvailabilityZoneId
  2076. if exprVal := rulesfn.SubString(_Bucket, 21, 23, true); exprVal != nil {
  2077. _s3expressAvailabilityZoneDelim := *exprVal
  2078. _ = _s3expressAvailabilityZoneDelim
  2079. if _s3expressAvailabilityZoneDelim == "--" {
  2080. if _UseFIPS == true {
  2081. uriString := func() string {
  2082. var out strings.Builder
  2083. out.WriteString("https://")
  2084. out.WriteString(_Bucket)
  2085. out.WriteString(".s3express-fips-")
  2086. out.WriteString(_s3expressAvailabilityZoneId)
  2087. out.WriteString(".")
  2088. out.WriteString(_Region)
  2089. out.WriteString(".")
  2090. out.WriteString(_partitionResult.DnsSuffix)
  2091. return out.String()
  2092. }()
  2093. uri, err := url.Parse(uriString)
  2094. if err != nil {
  2095. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2096. }
  2097. return smithyendpoints.Endpoint{
  2098. URI: *uri,
  2099. Headers: http.Header{},
  2100. Properties: func() smithy.Properties {
  2101. var out smithy.Properties
  2102. out.Set("backend", "S3Express")
  2103. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2104. {
  2105. SchemeID: "aws.auth#sigv4",
  2106. SignerProperties: func() smithy.Properties {
  2107. var sp smithy.Properties
  2108. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2109. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2110. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2111. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2112. return sp
  2113. }(),
  2114. },
  2115. })
  2116. return out
  2117. }(),
  2118. }, nil
  2119. }
  2120. uriString := func() string {
  2121. var out strings.Builder
  2122. out.WriteString("https://")
  2123. out.WriteString(_Bucket)
  2124. out.WriteString(".s3express-")
  2125. out.WriteString(_s3expressAvailabilityZoneId)
  2126. out.WriteString(".")
  2127. out.WriteString(_Region)
  2128. out.WriteString(".")
  2129. out.WriteString(_partitionResult.DnsSuffix)
  2130. return out.String()
  2131. }()
  2132. uri, err := url.Parse(uriString)
  2133. if err != nil {
  2134. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2135. }
  2136. return smithyendpoints.Endpoint{
  2137. URI: *uri,
  2138. Headers: http.Header{},
  2139. Properties: func() smithy.Properties {
  2140. var out smithy.Properties
  2141. out.Set("backend", "S3Express")
  2142. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2143. {
  2144. SchemeID: "aws.auth#sigv4",
  2145. SignerProperties: func() smithy.Properties {
  2146. var sp smithy.Properties
  2147. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2148. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2149. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2150. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2151. return sp
  2152. }(),
  2153. },
  2154. })
  2155. return out
  2156. }(),
  2157. }, nil
  2158. }
  2159. }
  2160. }
  2161. if exprVal := rulesfn.SubString(_Bucket, 7, 27, true); exprVal != nil {
  2162. _s3expressAvailabilityZoneId := *exprVal
  2163. _ = _s3expressAvailabilityZoneId
  2164. if exprVal := rulesfn.SubString(_Bucket, 27, 29, true); exprVal != nil {
  2165. _s3expressAvailabilityZoneDelim := *exprVal
  2166. _ = _s3expressAvailabilityZoneDelim
  2167. if _s3expressAvailabilityZoneDelim == "--" {
  2168. if _UseFIPS == true {
  2169. uriString := func() string {
  2170. var out strings.Builder
  2171. out.WriteString("https://")
  2172. out.WriteString(_Bucket)
  2173. out.WriteString(".s3express-fips-")
  2174. out.WriteString(_s3expressAvailabilityZoneId)
  2175. out.WriteString(".")
  2176. out.WriteString(_Region)
  2177. out.WriteString(".")
  2178. out.WriteString(_partitionResult.DnsSuffix)
  2179. return out.String()
  2180. }()
  2181. uri, err := url.Parse(uriString)
  2182. if err != nil {
  2183. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2184. }
  2185. return smithyendpoints.Endpoint{
  2186. URI: *uri,
  2187. Headers: http.Header{},
  2188. Properties: func() smithy.Properties {
  2189. var out smithy.Properties
  2190. out.Set("backend", "S3Express")
  2191. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2192. {
  2193. SchemeID: "aws.auth#sigv4",
  2194. SignerProperties: func() smithy.Properties {
  2195. var sp smithy.Properties
  2196. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2197. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2198. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2199. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2200. return sp
  2201. }(),
  2202. },
  2203. })
  2204. return out
  2205. }(),
  2206. }, nil
  2207. }
  2208. uriString := func() string {
  2209. var out strings.Builder
  2210. out.WriteString("https://")
  2211. out.WriteString(_Bucket)
  2212. out.WriteString(".s3express-")
  2213. out.WriteString(_s3expressAvailabilityZoneId)
  2214. out.WriteString(".")
  2215. out.WriteString(_Region)
  2216. out.WriteString(".")
  2217. out.WriteString(_partitionResult.DnsSuffix)
  2218. return out.String()
  2219. }()
  2220. uri, err := url.Parse(uriString)
  2221. if err != nil {
  2222. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2223. }
  2224. return smithyendpoints.Endpoint{
  2225. URI: *uri,
  2226. Headers: http.Header{},
  2227. Properties: func() smithy.Properties {
  2228. var out smithy.Properties
  2229. out.Set("backend", "S3Express")
  2230. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2231. {
  2232. SchemeID: "aws.auth#sigv4",
  2233. SignerProperties: func() smithy.Properties {
  2234. var sp smithy.Properties
  2235. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2236. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2237. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2238. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2239. return sp
  2240. }(),
  2241. },
  2242. })
  2243. return out
  2244. }(),
  2245. }, nil
  2246. }
  2247. }
  2248. }
  2249. return endpoint, fmt.Errorf("endpoint rule error, %s", "Unrecognized S3Express bucket name format.")
  2250. }
  2251. }
  2252. if exprVal := rulesfn.SubString(_Bucket, 7, 15, true); exprVal != nil {
  2253. _s3expressAvailabilityZoneId := *exprVal
  2254. _ = _s3expressAvailabilityZoneId
  2255. if exprVal := rulesfn.SubString(_Bucket, 15, 17, true); exprVal != nil {
  2256. _s3expressAvailabilityZoneDelim := *exprVal
  2257. _ = _s3expressAvailabilityZoneDelim
  2258. if _s3expressAvailabilityZoneDelim == "--" {
  2259. if _UseFIPS == true {
  2260. uriString := func() string {
  2261. var out strings.Builder
  2262. out.WriteString("https://")
  2263. out.WriteString(_Bucket)
  2264. out.WriteString(".s3express-fips-")
  2265. out.WriteString(_s3expressAvailabilityZoneId)
  2266. out.WriteString(".")
  2267. out.WriteString(_Region)
  2268. out.WriteString(".")
  2269. out.WriteString(_partitionResult.DnsSuffix)
  2270. return out.String()
  2271. }()
  2272. uri, err := url.Parse(uriString)
  2273. if err != nil {
  2274. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2275. }
  2276. return smithyendpoints.Endpoint{
  2277. URI: *uri,
  2278. Headers: http.Header{},
  2279. Properties: func() smithy.Properties {
  2280. var out smithy.Properties
  2281. out.Set("backend", "S3Express")
  2282. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2283. {
  2284. SchemeID: "sigv4-s3express",
  2285. SignerProperties: func() smithy.Properties {
  2286. var sp smithy.Properties
  2287. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2288. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2289. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2290. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2291. return sp
  2292. }(),
  2293. },
  2294. })
  2295. return out
  2296. }(),
  2297. }, nil
  2298. }
  2299. uriString := func() string {
  2300. var out strings.Builder
  2301. out.WriteString("https://")
  2302. out.WriteString(_Bucket)
  2303. out.WriteString(".s3express-")
  2304. out.WriteString(_s3expressAvailabilityZoneId)
  2305. out.WriteString(".")
  2306. out.WriteString(_Region)
  2307. out.WriteString(".")
  2308. out.WriteString(_partitionResult.DnsSuffix)
  2309. return out.String()
  2310. }()
  2311. uri, err := url.Parse(uriString)
  2312. if err != nil {
  2313. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2314. }
  2315. return smithyendpoints.Endpoint{
  2316. URI: *uri,
  2317. Headers: http.Header{},
  2318. Properties: func() smithy.Properties {
  2319. var out smithy.Properties
  2320. out.Set("backend", "S3Express")
  2321. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2322. {
  2323. SchemeID: "sigv4-s3express",
  2324. SignerProperties: func() smithy.Properties {
  2325. var sp smithy.Properties
  2326. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2327. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2328. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2329. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2330. return sp
  2331. }(),
  2332. },
  2333. })
  2334. return out
  2335. }(),
  2336. }, nil
  2337. }
  2338. }
  2339. }
  2340. if exprVal := rulesfn.SubString(_Bucket, 7, 16, true); exprVal != nil {
  2341. _s3expressAvailabilityZoneId := *exprVal
  2342. _ = _s3expressAvailabilityZoneId
  2343. if exprVal := rulesfn.SubString(_Bucket, 16, 18, true); exprVal != nil {
  2344. _s3expressAvailabilityZoneDelim := *exprVal
  2345. _ = _s3expressAvailabilityZoneDelim
  2346. if _s3expressAvailabilityZoneDelim == "--" {
  2347. if _UseFIPS == true {
  2348. uriString := func() string {
  2349. var out strings.Builder
  2350. out.WriteString("https://")
  2351. out.WriteString(_Bucket)
  2352. out.WriteString(".s3express-fips-")
  2353. out.WriteString(_s3expressAvailabilityZoneId)
  2354. out.WriteString(".")
  2355. out.WriteString(_Region)
  2356. out.WriteString(".")
  2357. out.WriteString(_partitionResult.DnsSuffix)
  2358. return out.String()
  2359. }()
  2360. uri, err := url.Parse(uriString)
  2361. if err != nil {
  2362. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2363. }
  2364. return smithyendpoints.Endpoint{
  2365. URI: *uri,
  2366. Headers: http.Header{},
  2367. Properties: func() smithy.Properties {
  2368. var out smithy.Properties
  2369. out.Set("backend", "S3Express")
  2370. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2371. {
  2372. SchemeID: "sigv4-s3express",
  2373. SignerProperties: func() smithy.Properties {
  2374. var sp smithy.Properties
  2375. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2376. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2377. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2378. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2379. return sp
  2380. }(),
  2381. },
  2382. })
  2383. return out
  2384. }(),
  2385. }, nil
  2386. }
  2387. uriString := func() string {
  2388. var out strings.Builder
  2389. out.WriteString("https://")
  2390. out.WriteString(_Bucket)
  2391. out.WriteString(".s3express-")
  2392. out.WriteString(_s3expressAvailabilityZoneId)
  2393. out.WriteString(".")
  2394. out.WriteString(_Region)
  2395. out.WriteString(".")
  2396. out.WriteString(_partitionResult.DnsSuffix)
  2397. return out.String()
  2398. }()
  2399. uri, err := url.Parse(uriString)
  2400. if err != nil {
  2401. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2402. }
  2403. return smithyendpoints.Endpoint{
  2404. URI: *uri,
  2405. Headers: http.Header{},
  2406. Properties: func() smithy.Properties {
  2407. var out smithy.Properties
  2408. out.Set("backend", "S3Express")
  2409. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2410. {
  2411. SchemeID: "sigv4-s3express",
  2412. SignerProperties: func() smithy.Properties {
  2413. var sp smithy.Properties
  2414. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2415. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2416. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2417. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2418. return sp
  2419. }(),
  2420. },
  2421. })
  2422. return out
  2423. }(),
  2424. }, nil
  2425. }
  2426. }
  2427. }
  2428. if exprVal := rulesfn.SubString(_Bucket, 7, 20, true); exprVal != nil {
  2429. _s3expressAvailabilityZoneId := *exprVal
  2430. _ = _s3expressAvailabilityZoneId
  2431. if exprVal := rulesfn.SubString(_Bucket, 20, 22, true); exprVal != nil {
  2432. _s3expressAvailabilityZoneDelim := *exprVal
  2433. _ = _s3expressAvailabilityZoneDelim
  2434. if _s3expressAvailabilityZoneDelim == "--" {
  2435. if _UseFIPS == true {
  2436. uriString := func() string {
  2437. var out strings.Builder
  2438. out.WriteString("https://")
  2439. out.WriteString(_Bucket)
  2440. out.WriteString(".s3express-fips-")
  2441. out.WriteString(_s3expressAvailabilityZoneId)
  2442. out.WriteString(".")
  2443. out.WriteString(_Region)
  2444. out.WriteString(".")
  2445. out.WriteString(_partitionResult.DnsSuffix)
  2446. return out.String()
  2447. }()
  2448. uri, err := url.Parse(uriString)
  2449. if err != nil {
  2450. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2451. }
  2452. return smithyendpoints.Endpoint{
  2453. URI: *uri,
  2454. Headers: http.Header{},
  2455. Properties: func() smithy.Properties {
  2456. var out smithy.Properties
  2457. out.Set("backend", "S3Express")
  2458. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2459. {
  2460. SchemeID: "sigv4-s3express",
  2461. SignerProperties: func() smithy.Properties {
  2462. var sp smithy.Properties
  2463. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2464. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2465. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2466. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2467. return sp
  2468. }(),
  2469. },
  2470. })
  2471. return out
  2472. }(),
  2473. }, nil
  2474. }
  2475. uriString := func() string {
  2476. var out strings.Builder
  2477. out.WriteString("https://")
  2478. out.WriteString(_Bucket)
  2479. out.WriteString(".s3express-")
  2480. out.WriteString(_s3expressAvailabilityZoneId)
  2481. out.WriteString(".")
  2482. out.WriteString(_Region)
  2483. out.WriteString(".")
  2484. out.WriteString(_partitionResult.DnsSuffix)
  2485. return out.String()
  2486. }()
  2487. uri, err := url.Parse(uriString)
  2488. if err != nil {
  2489. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2490. }
  2491. return smithyendpoints.Endpoint{
  2492. URI: *uri,
  2493. Headers: http.Header{},
  2494. Properties: func() smithy.Properties {
  2495. var out smithy.Properties
  2496. out.Set("backend", "S3Express")
  2497. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2498. {
  2499. SchemeID: "sigv4-s3express",
  2500. SignerProperties: func() smithy.Properties {
  2501. var sp smithy.Properties
  2502. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2503. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2504. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2505. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2506. return sp
  2507. }(),
  2508. },
  2509. })
  2510. return out
  2511. }(),
  2512. }, nil
  2513. }
  2514. }
  2515. }
  2516. if exprVal := rulesfn.SubString(_Bucket, 7, 21, true); exprVal != nil {
  2517. _s3expressAvailabilityZoneId := *exprVal
  2518. _ = _s3expressAvailabilityZoneId
  2519. if exprVal := rulesfn.SubString(_Bucket, 21, 23, true); exprVal != nil {
  2520. _s3expressAvailabilityZoneDelim := *exprVal
  2521. _ = _s3expressAvailabilityZoneDelim
  2522. if _s3expressAvailabilityZoneDelim == "--" {
  2523. if _UseFIPS == true {
  2524. uriString := func() string {
  2525. var out strings.Builder
  2526. out.WriteString("https://")
  2527. out.WriteString(_Bucket)
  2528. out.WriteString(".s3express-fips-")
  2529. out.WriteString(_s3expressAvailabilityZoneId)
  2530. out.WriteString(".")
  2531. out.WriteString(_Region)
  2532. out.WriteString(".")
  2533. out.WriteString(_partitionResult.DnsSuffix)
  2534. return out.String()
  2535. }()
  2536. uri, err := url.Parse(uriString)
  2537. if err != nil {
  2538. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2539. }
  2540. return smithyendpoints.Endpoint{
  2541. URI: *uri,
  2542. Headers: http.Header{},
  2543. Properties: func() smithy.Properties {
  2544. var out smithy.Properties
  2545. out.Set("backend", "S3Express")
  2546. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2547. {
  2548. SchemeID: "sigv4-s3express",
  2549. SignerProperties: func() smithy.Properties {
  2550. var sp smithy.Properties
  2551. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2552. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2553. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2554. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2555. return sp
  2556. }(),
  2557. },
  2558. })
  2559. return out
  2560. }(),
  2561. }, nil
  2562. }
  2563. uriString := func() string {
  2564. var out strings.Builder
  2565. out.WriteString("https://")
  2566. out.WriteString(_Bucket)
  2567. out.WriteString(".s3express-")
  2568. out.WriteString(_s3expressAvailabilityZoneId)
  2569. out.WriteString(".")
  2570. out.WriteString(_Region)
  2571. out.WriteString(".")
  2572. out.WriteString(_partitionResult.DnsSuffix)
  2573. return out.String()
  2574. }()
  2575. uri, err := url.Parse(uriString)
  2576. if err != nil {
  2577. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2578. }
  2579. return smithyendpoints.Endpoint{
  2580. URI: *uri,
  2581. Headers: http.Header{},
  2582. Properties: func() smithy.Properties {
  2583. var out smithy.Properties
  2584. out.Set("backend", "S3Express")
  2585. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2586. {
  2587. SchemeID: "sigv4-s3express",
  2588. SignerProperties: func() smithy.Properties {
  2589. var sp smithy.Properties
  2590. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2591. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2592. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2593. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2594. return sp
  2595. }(),
  2596. },
  2597. })
  2598. return out
  2599. }(),
  2600. }, nil
  2601. }
  2602. }
  2603. }
  2604. if exprVal := rulesfn.SubString(_Bucket, 7, 27, true); exprVal != nil {
  2605. _s3expressAvailabilityZoneId := *exprVal
  2606. _ = _s3expressAvailabilityZoneId
  2607. if exprVal := rulesfn.SubString(_Bucket, 27, 29, true); exprVal != nil {
  2608. _s3expressAvailabilityZoneDelim := *exprVal
  2609. _ = _s3expressAvailabilityZoneDelim
  2610. if _s3expressAvailabilityZoneDelim == "--" {
  2611. if _UseFIPS == true {
  2612. uriString := func() string {
  2613. var out strings.Builder
  2614. out.WriteString("https://")
  2615. out.WriteString(_Bucket)
  2616. out.WriteString(".s3express-fips-")
  2617. out.WriteString(_s3expressAvailabilityZoneId)
  2618. out.WriteString(".")
  2619. out.WriteString(_Region)
  2620. out.WriteString(".")
  2621. out.WriteString(_partitionResult.DnsSuffix)
  2622. return out.String()
  2623. }()
  2624. uri, err := url.Parse(uriString)
  2625. if err != nil {
  2626. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2627. }
  2628. return smithyendpoints.Endpoint{
  2629. URI: *uri,
  2630. Headers: http.Header{},
  2631. Properties: func() smithy.Properties {
  2632. var out smithy.Properties
  2633. out.Set("backend", "S3Express")
  2634. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2635. {
  2636. SchemeID: "sigv4-s3express",
  2637. SignerProperties: func() smithy.Properties {
  2638. var sp smithy.Properties
  2639. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2640. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2641. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2642. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2643. return sp
  2644. }(),
  2645. },
  2646. })
  2647. return out
  2648. }(),
  2649. }, nil
  2650. }
  2651. uriString := func() string {
  2652. var out strings.Builder
  2653. out.WriteString("https://")
  2654. out.WriteString(_Bucket)
  2655. out.WriteString(".s3express-")
  2656. out.WriteString(_s3expressAvailabilityZoneId)
  2657. out.WriteString(".")
  2658. out.WriteString(_Region)
  2659. out.WriteString(".")
  2660. out.WriteString(_partitionResult.DnsSuffix)
  2661. return out.String()
  2662. }()
  2663. uri, err := url.Parse(uriString)
  2664. if err != nil {
  2665. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2666. }
  2667. return smithyendpoints.Endpoint{
  2668. URI: *uri,
  2669. Headers: http.Header{},
  2670. Properties: func() smithy.Properties {
  2671. var out smithy.Properties
  2672. out.Set("backend", "S3Express")
  2673. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2674. {
  2675. SchemeID: "sigv4-s3express",
  2676. SignerProperties: func() smithy.Properties {
  2677. var sp smithy.Properties
  2678. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2679. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2680. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2681. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2682. return sp
  2683. }(),
  2684. },
  2685. })
  2686. return out
  2687. }(),
  2688. }, nil
  2689. }
  2690. }
  2691. }
  2692. return endpoint, fmt.Errorf("endpoint rule error, %s", "Unrecognized S3Express bucket name format.")
  2693. }
  2694. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  2695. }
  2696. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express bucket name is not a valid virtual hostable name.")
  2697. }
  2698. }
  2699. }
  2700. if !(params.Bucket != nil) {
  2701. if exprVal := params.UseS3ExpressControlEndpoint; exprVal != nil {
  2702. _UseS3ExpressControlEndpoint := *exprVal
  2703. _ = _UseS3ExpressControlEndpoint
  2704. if _UseS3ExpressControlEndpoint == true {
  2705. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  2706. _partitionResult := *exprVal
  2707. _ = _partitionResult
  2708. if exprVal := params.Endpoint; exprVal != nil {
  2709. _Endpoint := *exprVal
  2710. _ = _Endpoint
  2711. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  2712. _url := *exprVal
  2713. _ = _url
  2714. uriString := func() string {
  2715. var out strings.Builder
  2716. out.WriteString(_url.Scheme)
  2717. out.WriteString("://")
  2718. out.WriteString(_url.Authority)
  2719. out.WriteString(_url.Path)
  2720. return out.String()
  2721. }()
  2722. uri, err := url.Parse(uriString)
  2723. if err != nil {
  2724. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2725. }
  2726. return smithyendpoints.Endpoint{
  2727. URI: *uri,
  2728. Headers: http.Header{},
  2729. Properties: func() smithy.Properties {
  2730. var out smithy.Properties
  2731. out.Set("backend", "S3Express")
  2732. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2733. {
  2734. SchemeID: "aws.auth#sigv4",
  2735. SignerProperties: func() smithy.Properties {
  2736. var sp smithy.Properties
  2737. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2738. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2739. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2740. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2741. return sp
  2742. }(),
  2743. },
  2744. })
  2745. return out
  2746. }(),
  2747. }, nil
  2748. }
  2749. }
  2750. if _UseFIPS == true {
  2751. uriString := func() string {
  2752. var out strings.Builder
  2753. out.WriteString("https://s3express-control-fips.")
  2754. out.WriteString(_Region)
  2755. out.WriteString(".")
  2756. out.WriteString(_partitionResult.DnsSuffix)
  2757. return out.String()
  2758. }()
  2759. uri, err := url.Parse(uriString)
  2760. if err != nil {
  2761. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2762. }
  2763. return smithyendpoints.Endpoint{
  2764. URI: *uri,
  2765. Headers: http.Header{},
  2766. Properties: func() smithy.Properties {
  2767. var out smithy.Properties
  2768. out.Set("backend", "S3Express")
  2769. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2770. {
  2771. SchemeID: "aws.auth#sigv4",
  2772. SignerProperties: func() smithy.Properties {
  2773. var sp smithy.Properties
  2774. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2775. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2776. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2777. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2778. return sp
  2779. }(),
  2780. },
  2781. })
  2782. return out
  2783. }(),
  2784. }, nil
  2785. }
  2786. uriString := func() string {
  2787. var out strings.Builder
  2788. out.WriteString("https://s3express-control.")
  2789. out.WriteString(_Region)
  2790. out.WriteString(".")
  2791. out.WriteString(_partitionResult.DnsSuffix)
  2792. return out.String()
  2793. }()
  2794. uri, err := url.Parse(uriString)
  2795. if err != nil {
  2796. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2797. }
  2798. return smithyendpoints.Endpoint{
  2799. URI: *uri,
  2800. Headers: http.Header{},
  2801. Properties: func() smithy.Properties {
  2802. var out smithy.Properties
  2803. out.Set("backend", "S3Express")
  2804. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2805. {
  2806. SchemeID: "aws.auth#sigv4",
  2807. SignerProperties: func() smithy.Properties {
  2808. var sp smithy.Properties
  2809. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2810. smithyhttp.SetSigV4SigningName(&sp, "s3express")
  2811. smithyhttp.SetSigV4ASigningName(&sp, "s3express")
  2812. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2813. return sp
  2814. }(),
  2815. },
  2816. })
  2817. return out
  2818. }(),
  2819. }, nil
  2820. }
  2821. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  2822. }
  2823. }
  2824. }
  2825. if exprVal := params.Bucket; exprVal != nil {
  2826. _Bucket := *exprVal
  2827. _ = _Bucket
  2828. if exprVal := rulesfn.SubString(_Bucket, 49, 50, true); exprVal != nil {
  2829. _hardwareType := *exprVal
  2830. _ = _hardwareType
  2831. if exprVal := rulesfn.SubString(_Bucket, 8, 12, true); exprVal != nil {
  2832. _regionPrefix := *exprVal
  2833. _ = _regionPrefix
  2834. if exprVal := rulesfn.SubString(_Bucket, 0, 7, true); exprVal != nil {
  2835. _bucketAliasSuffix := *exprVal
  2836. _ = _bucketAliasSuffix
  2837. if exprVal := rulesfn.SubString(_Bucket, 32, 49, true); exprVal != nil {
  2838. _outpostId := *exprVal
  2839. _ = _outpostId
  2840. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  2841. _regionPartition := *exprVal
  2842. _ = _regionPartition
  2843. if _bucketAliasSuffix == "--op-s3" {
  2844. if rulesfn.IsValidHostLabel(_outpostId, false) {
  2845. if _hardwareType == "e" {
  2846. if _regionPrefix == "beta" {
  2847. if !(params.Endpoint != nil) {
  2848. return endpoint, fmt.Errorf("endpoint rule error, %s", "Expected a endpoint to be specified but no endpoint was found")
  2849. }
  2850. if exprVal := params.Endpoint; exprVal != nil {
  2851. _Endpoint := *exprVal
  2852. _ = _Endpoint
  2853. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  2854. _url := *exprVal
  2855. _ = _url
  2856. uriString := func() string {
  2857. var out strings.Builder
  2858. out.WriteString("https://")
  2859. out.WriteString(_Bucket)
  2860. out.WriteString(".ec2.")
  2861. out.WriteString(_url.Authority)
  2862. return out.String()
  2863. }()
  2864. uri, err := url.Parse(uriString)
  2865. if err != nil {
  2866. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2867. }
  2868. return smithyendpoints.Endpoint{
  2869. URI: *uri,
  2870. Headers: http.Header{},
  2871. Properties: func() smithy.Properties {
  2872. var out smithy.Properties
  2873. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2874. {
  2875. SchemeID: "aws.auth#sigv4a",
  2876. SignerProperties: func() smithy.Properties {
  2877. var sp smithy.Properties
  2878. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2879. smithyhttp.SetSigV4SigningName(&sp, "s3-outposts")
  2880. smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts")
  2881. smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"})
  2882. return sp
  2883. }(),
  2884. },
  2885. {
  2886. SchemeID: "aws.auth#sigv4",
  2887. SignerProperties: func() smithy.Properties {
  2888. var sp smithy.Properties
  2889. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2890. smithyhttp.SetSigV4SigningName(&sp, "s3-outposts")
  2891. smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts")
  2892. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2893. return sp
  2894. }(),
  2895. },
  2896. })
  2897. return out
  2898. }(),
  2899. }, nil
  2900. }
  2901. }
  2902. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  2903. }
  2904. uriString := func() string {
  2905. var out strings.Builder
  2906. out.WriteString("https://")
  2907. out.WriteString(_Bucket)
  2908. out.WriteString(".ec2.s3-outposts.")
  2909. out.WriteString(_Region)
  2910. out.WriteString(".")
  2911. out.WriteString(_regionPartition.DnsSuffix)
  2912. return out.String()
  2913. }()
  2914. uri, err := url.Parse(uriString)
  2915. if err != nil {
  2916. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2917. }
  2918. return smithyendpoints.Endpoint{
  2919. URI: *uri,
  2920. Headers: http.Header{},
  2921. Properties: func() smithy.Properties {
  2922. var out smithy.Properties
  2923. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2924. {
  2925. SchemeID: "aws.auth#sigv4a",
  2926. SignerProperties: func() smithy.Properties {
  2927. var sp smithy.Properties
  2928. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2929. smithyhttp.SetSigV4SigningName(&sp, "s3-outposts")
  2930. smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts")
  2931. smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"})
  2932. return sp
  2933. }(),
  2934. },
  2935. {
  2936. SchemeID: "aws.auth#sigv4",
  2937. SignerProperties: func() smithy.Properties {
  2938. var sp smithy.Properties
  2939. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2940. smithyhttp.SetSigV4SigningName(&sp, "s3-outposts")
  2941. smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts")
  2942. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  2943. return sp
  2944. }(),
  2945. },
  2946. })
  2947. return out
  2948. }(),
  2949. }, nil
  2950. }
  2951. if _hardwareType == "o" {
  2952. if _regionPrefix == "beta" {
  2953. if !(params.Endpoint != nil) {
  2954. return endpoint, fmt.Errorf("endpoint rule error, %s", "Expected a endpoint to be specified but no endpoint was found")
  2955. }
  2956. if exprVal := params.Endpoint; exprVal != nil {
  2957. _Endpoint := *exprVal
  2958. _ = _Endpoint
  2959. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  2960. _url := *exprVal
  2961. _ = _url
  2962. uriString := func() string {
  2963. var out strings.Builder
  2964. out.WriteString("https://")
  2965. out.WriteString(_Bucket)
  2966. out.WriteString(".op-")
  2967. out.WriteString(_outpostId)
  2968. out.WriteString(".")
  2969. out.WriteString(_url.Authority)
  2970. return out.String()
  2971. }()
  2972. uri, err := url.Parse(uriString)
  2973. if err != nil {
  2974. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  2975. }
  2976. return smithyendpoints.Endpoint{
  2977. URI: *uri,
  2978. Headers: http.Header{},
  2979. Properties: func() smithy.Properties {
  2980. var out smithy.Properties
  2981. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  2982. {
  2983. SchemeID: "aws.auth#sigv4a",
  2984. SignerProperties: func() smithy.Properties {
  2985. var sp smithy.Properties
  2986. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2987. smithyhttp.SetSigV4SigningName(&sp, "s3-outposts")
  2988. smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts")
  2989. smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"})
  2990. return sp
  2991. }(),
  2992. },
  2993. {
  2994. SchemeID: "aws.auth#sigv4",
  2995. SignerProperties: func() smithy.Properties {
  2996. var sp smithy.Properties
  2997. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  2998. smithyhttp.SetSigV4SigningName(&sp, "s3-outposts")
  2999. smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts")
  3000. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3001. return sp
  3002. }(),
  3003. },
  3004. })
  3005. return out
  3006. }(),
  3007. }, nil
  3008. }
  3009. }
  3010. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  3011. }
  3012. uriString := func() string {
  3013. var out strings.Builder
  3014. out.WriteString("https://")
  3015. out.WriteString(_Bucket)
  3016. out.WriteString(".op-")
  3017. out.WriteString(_outpostId)
  3018. out.WriteString(".s3-outposts.")
  3019. out.WriteString(_Region)
  3020. out.WriteString(".")
  3021. out.WriteString(_regionPartition.DnsSuffix)
  3022. return out.String()
  3023. }()
  3024. uri, err := url.Parse(uriString)
  3025. if err != nil {
  3026. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3027. }
  3028. return smithyendpoints.Endpoint{
  3029. URI: *uri,
  3030. Headers: http.Header{},
  3031. Properties: func() smithy.Properties {
  3032. var out smithy.Properties
  3033. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3034. {
  3035. SchemeID: "aws.auth#sigv4a",
  3036. SignerProperties: func() smithy.Properties {
  3037. var sp smithy.Properties
  3038. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3039. smithyhttp.SetSigV4SigningName(&sp, "s3-outposts")
  3040. smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts")
  3041. smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"})
  3042. return sp
  3043. }(),
  3044. },
  3045. {
  3046. SchemeID: "aws.auth#sigv4",
  3047. SignerProperties: func() smithy.Properties {
  3048. var sp smithy.Properties
  3049. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3050. smithyhttp.SetSigV4SigningName(&sp, "s3-outposts")
  3051. smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts")
  3052. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3053. return sp
  3054. }(),
  3055. },
  3056. })
  3057. return out
  3058. }(),
  3059. }, nil
  3060. }
  3061. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  3062. var out strings.Builder
  3063. out.WriteString("Unrecognized hardware type: \"Expected hardware type o or e but got ")
  3064. out.WriteString(_hardwareType)
  3065. out.WriteString("\"")
  3066. return out.String()
  3067. }())
  3068. }
  3069. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.")
  3070. }
  3071. }
  3072. }
  3073. }
  3074. }
  3075. }
  3076. }
  3077. if exprVal := params.Bucket; exprVal != nil {
  3078. _Bucket := *exprVal
  3079. _ = _Bucket
  3080. if exprVal := params.Endpoint; exprVal != nil {
  3081. _Endpoint := *exprVal
  3082. _ = _Endpoint
  3083. if !(rulesfn.ParseURL(_Endpoint) != nil) {
  3084. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  3085. var out strings.Builder
  3086. out.WriteString("Custom endpoint `")
  3087. out.WriteString(_Endpoint)
  3088. out.WriteString("` was not a valid URI")
  3089. return out.String()
  3090. }())
  3091. }
  3092. }
  3093. if _ForcePathStyle == false {
  3094. if awsrulesfn.IsVirtualHostableS3Bucket(_Bucket, false) {
  3095. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  3096. _partitionResult := *exprVal
  3097. _ = _partitionResult
  3098. if rulesfn.IsValidHostLabel(_Region, false) {
  3099. if _Accelerate == true {
  3100. if _partitionResult.Name == "aws-cn" {
  3101. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Accelerate cannot be used in this region")
  3102. }
  3103. }
  3104. if _UseDualStack == true {
  3105. if _UseFIPS == true {
  3106. if _Accelerate == false {
  3107. if !(params.Endpoint != nil) {
  3108. if _Region == "aws-global" {
  3109. uriString := func() string {
  3110. var out strings.Builder
  3111. out.WriteString("https://")
  3112. out.WriteString(_Bucket)
  3113. out.WriteString(".s3-fips.dualstack.us-east-1.")
  3114. out.WriteString(_partitionResult.DnsSuffix)
  3115. return out.String()
  3116. }()
  3117. uri, err := url.Parse(uriString)
  3118. if err != nil {
  3119. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3120. }
  3121. return smithyendpoints.Endpoint{
  3122. URI: *uri,
  3123. Headers: http.Header{},
  3124. Properties: func() smithy.Properties {
  3125. var out smithy.Properties
  3126. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3127. {
  3128. SchemeID: "aws.auth#sigv4",
  3129. SignerProperties: func() smithy.Properties {
  3130. var sp smithy.Properties
  3131. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3132. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3133. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3134. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  3135. return sp
  3136. }(),
  3137. },
  3138. })
  3139. return out
  3140. }(),
  3141. }, nil
  3142. }
  3143. }
  3144. }
  3145. }
  3146. }
  3147. if _UseDualStack == true {
  3148. if _UseFIPS == true {
  3149. if _Accelerate == false {
  3150. if !(params.Endpoint != nil) {
  3151. if !(_Region == "aws-global") {
  3152. if _UseGlobalEndpoint == true {
  3153. uriString := func() string {
  3154. var out strings.Builder
  3155. out.WriteString("https://")
  3156. out.WriteString(_Bucket)
  3157. out.WriteString(".s3-fips.dualstack.")
  3158. out.WriteString(_Region)
  3159. out.WriteString(".")
  3160. out.WriteString(_partitionResult.DnsSuffix)
  3161. return out.String()
  3162. }()
  3163. uri, err := url.Parse(uriString)
  3164. if err != nil {
  3165. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3166. }
  3167. return smithyendpoints.Endpoint{
  3168. URI: *uri,
  3169. Headers: http.Header{},
  3170. Properties: func() smithy.Properties {
  3171. var out smithy.Properties
  3172. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3173. {
  3174. SchemeID: "aws.auth#sigv4",
  3175. SignerProperties: func() smithy.Properties {
  3176. var sp smithy.Properties
  3177. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3178. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3179. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3180. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3181. return sp
  3182. }(),
  3183. },
  3184. })
  3185. return out
  3186. }(),
  3187. }, nil
  3188. }
  3189. }
  3190. }
  3191. }
  3192. }
  3193. }
  3194. if _UseDualStack == true {
  3195. if _UseFIPS == true {
  3196. if _Accelerate == false {
  3197. if !(params.Endpoint != nil) {
  3198. if !(_Region == "aws-global") {
  3199. if _UseGlobalEndpoint == false {
  3200. uriString := func() string {
  3201. var out strings.Builder
  3202. out.WriteString("https://")
  3203. out.WriteString(_Bucket)
  3204. out.WriteString(".s3-fips.dualstack.")
  3205. out.WriteString(_Region)
  3206. out.WriteString(".")
  3207. out.WriteString(_partitionResult.DnsSuffix)
  3208. return out.String()
  3209. }()
  3210. uri, err := url.Parse(uriString)
  3211. if err != nil {
  3212. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3213. }
  3214. return smithyendpoints.Endpoint{
  3215. URI: *uri,
  3216. Headers: http.Header{},
  3217. Properties: func() smithy.Properties {
  3218. var out smithy.Properties
  3219. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3220. {
  3221. SchemeID: "aws.auth#sigv4",
  3222. SignerProperties: func() smithy.Properties {
  3223. var sp smithy.Properties
  3224. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3225. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3226. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3227. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3228. return sp
  3229. }(),
  3230. },
  3231. })
  3232. return out
  3233. }(),
  3234. }, nil
  3235. }
  3236. }
  3237. }
  3238. }
  3239. }
  3240. }
  3241. if _UseDualStack == false {
  3242. if _UseFIPS == true {
  3243. if _Accelerate == false {
  3244. if !(params.Endpoint != nil) {
  3245. if _Region == "aws-global" {
  3246. uriString := func() string {
  3247. var out strings.Builder
  3248. out.WriteString("https://")
  3249. out.WriteString(_Bucket)
  3250. out.WriteString(".s3-fips.us-east-1.")
  3251. out.WriteString(_partitionResult.DnsSuffix)
  3252. return out.String()
  3253. }()
  3254. uri, err := url.Parse(uriString)
  3255. if err != nil {
  3256. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3257. }
  3258. return smithyendpoints.Endpoint{
  3259. URI: *uri,
  3260. Headers: http.Header{},
  3261. Properties: func() smithy.Properties {
  3262. var out smithy.Properties
  3263. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3264. {
  3265. SchemeID: "aws.auth#sigv4",
  3266. SignerProperties: func() smithy.Properties {
  3267. var sp smithy.Properties
  3268. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3269. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3270. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3271. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  3272. return sp
  3273. }(),
  3274. },
  3275. })
  3276. return out
  3277. }(),
  3278. }, nil
  3279. }
  3280. }
  3281. }
  3282. }
  3283. }
  3284. if _UseDualStack == false {
  3285. if _UseFIPS == true {
  3286. if _Accelerate == false {
  3287. if !(params.Endpoint != nil) {
  3288. if !(_Region == "aws-global") {
  3289. if _UseGlobalEndpoint == true {
  3290. uriString := func() string {
  3291. var out strings.Builder
  3292. out.WriteString("https://")
  3293. out.WriteString(_Bucket)
  3294. out.WriteString(".s3-fips.")
  3295. out.WriteString(_Region)
  3296. out.WriteString(".")
  3297. out.WriteString(_partitionResult.DnsSuffix)
  3298. return out.String()
  3299. }()
  3300. uri, err := url.Parse(uriString)
  3301. if err != nil {
  3302. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3303. }
  3304. return smithyendpoints.Endpoint{
  3305. URI: *uri,
  3306. Headers: http.Header{},
  3307. Properties: func() smithy.Properties {
  3308. var out smithy.Properties
  3309. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3310. {
  3311. SchemeID: "aws.auth#sigv4",
  3312. SignerProperties: func() smithy.Properties {
  3313. var sp smithy.Properties
  3314. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3315. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3316. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3317. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3318. return sp
  3319. }(),
  3320. },
  3321. })
  3322. return out
  3323. }(),
  3324. }, nil
  3325. }
  3326. }
  3327. }
  3328. }
  3329. }
  3330. }
  3331. if _UseDualStack == false {
  3332. if _UseFIPS == true {
  3333. if _Accelerate == false {
  3334. if !(params.Endpoint != nil) {
  3335. if !(_Region == "aws-global") {
  3336. if _UseGlobalEndpoint == false {
  3337. uriString := func() string {
  3338. var out strings.Builder
  3339. out.WriteString("https://")
  3340. out.WriteString(_Bucket)
  3341. out.WriteString(".s3-fips.")
  3342. out.WriteString(_Region)
  3343. out.WriteString(".")
  3344. out.WriteString(_partitionResult.DnsSuffix)
  3345. return out.String()
  3346. }()
  3347. uri, err := url.Parse(uriString)
  3348. if err != nil {
  3349. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3350. }
  3351. return smithyendpoints.Endpoint{
  3352. URI: *uri,
  3353. Headers: http.Header{},
  3354. Properties: func() smithy.Properties {
  3355. var out smithy.Properties
  3356. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3357. {
  3358. SchemeID: "aws.auth#sigv4",
  3359. SignerProperties: func() smithy.Properties {
  3360. var sp smithy.Properties
  3361. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3362. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3363. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3364. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3365. return sp
  3366. }(),
  3367. },
  3368. })
  3369. return out
  3370. }(),
  3371. }, nil
  3372. }
  3373. }
  3374. }
  3375. }
  3376. }
  3377. }
  3378. if _UseDualStack == true {
  3379. if _UseFIPS == false {
  3380. if _Accelerate == true {
  3381. if !(params.Endpoint != nil) {
  3382. if _Region == "aws-global" {
  3383. uriString := func() string {
  3384. var out strings.Builder
  3385. out.WriteString("https://")
  3386. out.WriteString(_Bucket)
  3387. out.WriteString(".s3-accelerate.dualstack.us-east-1.")
  3388. out.WriteString(_partitionResult.DnsSuffix)
  3389. return out.String()
  3390. }()
  3391. uri, err := url.Parse(uriString)
  3392. if err != nil {
  3393. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3394. }
  3395. return smithyendpoints.Endpoint{
  3396. URI: *uri,
  3397. Headers: http.Header{},
  3398. Properties: func() smithy.Properties {
  3399. var out smithy.Properties
  3400. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3401. {
  3402. SchemeID: "aws.auth#sigv4",
  3403. SignerProperties: func() smithy.Properties {
  3404. var sp smithy.Properties
  3405. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3406. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3407. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3408. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  3409. return sp
  3410. }(),
  3411. },
  3412. })
  3413. return out
  3414. }(),
  3415. }, nil
  3416. }
  3417. }
  3418. }
  3419. }
  3420. }
  3421. if _UseDualStack == true {
  3422. if _UseFIPS == false {
  3423. if _Accelerate == true {
  3424. if !(params.Endpoint != nil) {
  3425. if !(_Region == "aws-global") {
  3426. if _UseGlobalEndpoint == true {
  3427. uriString := func() string {
  3428. var out strings.Builder
  3429. out.WriteString("https://")
  3430. out.WriteString(_Bucket)
  3431. out.WriteString(".s3-accelerate.dualstack.")
  3432. out.WriteString(_partitionResult.DnsSuffix)
  3433. return out.String()
  3434. }()
  3435. uri, err := url.Parse(uriString)
  3436. if err != nil {
  3437. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3438. }
  3439. return smithyendpoints.Endpoint{
  3440. URI: *uri,
  3441. Headers: http.Header{},
  3442. Properties: func() smithy.Properties {
  3443. var out smithy.Properties
  3444. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3445. {
  3446. SchemeID: "aws.auth#sigv4",
  3447. SignerProperties: func() smithy.Properties {
  3448. var sp smithy.Properties
  3449. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3450. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3451. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3452. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3453. return sp
  3454. }(),
  3455. },
  3456. })
  3457. return out
  3458. }(),
  3459. }, nil
  3460. }
  3461. }
  3462. }
  3463. }
  3464. }
  3465. }
  3466. if _UseDualStack == true {
  3467. if _UseFIPS == false {
  3468. if _Accelerate == true {
  3469. if !(params.Endpoint != nil) {
  3470. if !(_Region == "aws-global") {
  3471. if _UseGlobalEndpoint == false {
  3472. uriString := func() string {
  3473. var out strings.Builder
  3474. out.WriteString("https://")
  3475. out.WriteString(_Bucket)
  3476. out.WriteString(".s3-accelerate.dualstack.")
  3477. out.WriteString(_partitionResult.DnsSuffix)
  3478. return out.String()
  3479. }()
  3480. uri, err := url.Parse(uriString)
  3481. if err != nil {
  3482. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3483. }
  3484. return smithyendpoints.Endpoint{
  3485. URI: *uri,
  3486. Headers: http.Header{},
  3487. Properties: func() smithy.Properties {
  3488. var out smithy.Properties
  3489. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3490. {
  3491. SchemeID: "aws.auth#sigv4",
  3492. SignerProperties: func() smithy.Properties {
  3493. var sp smithy.Properties
  3494. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3495. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3496. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3497. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3498. return sp
  3499. }(),
  3500. },
  3501. })
  3502. return out
  3503. }(),
  3504. }, nil
  3505. }
  3506. }
  3507. }
  3508. }
  3509. }
  3510. }
  3511. if _UseDualStack == true {
  3512. if _UseFIPS == false {
  3513. if _Accelerate == false {
  3514. if !(params.Endpoint != nil) {
  3515. if _Region == "aws-global" {
  3516. uriString := func() string {
  3517. var out strings.Builder
  3518. out.WriteString("https://")
  3519. out.WriteString(_Bucket)
  3520. out.WriteString(".s3.dualstack.us-east-1.")
  3521. out.WriteString(_partitionResult.DnsSuffix)
  3522. return out.String()
  3523. }()
  3524. uri, err := url.Parse(uriString)
  3525. if err != nil {
  3526. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3527. }
  3528. return smithyendpoints.Endpoint{
  3529. URI: *uri,
  3530. Headers: http.Header{},
  3531. Properties: func() smithy.Properties {
  3532. var out smithy.Properties
  3533. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3534. {
  3535. SchemeID: "aws.auth#sigv4",
  3536. SignerProperties: func() smithy.Properties {
  3537. var sp smithy.Properties
  3538. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3539. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3540. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3541. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  3542. return sp
  3543. }(),
  3544. },
  3545. })
  3546. return out
  3547. }(),
  3548. }, nil
  3549. }
  3550. }
  3551. }
  3552. }
  3553. }
  3554. if _UseDualStack == true {
  3555. if _UseFIPS == false {
  3556. if _Accelerate == false {
  3557. if !(params.Endpoint != nil) {
  3558. if !(_Region == "aws-global") {
  3559. if _UseGlobalEndpoint == true {
  3560. uriString := func() string {
  3561. var out strings.Builder
  3562. out.WriteString("https://")
  3563. out.WriteString(_Bucket)
  3564. out.WriteString(".s3.dualstack.")
  3565. out.WriteString(_Region)
  3566. out.WriteString(".")
  3567. out.WriteString(_partitionResult.DnsSuffix)
  3568. return out.String()
  3569. }()
  3570. uri, err := url.Parse(uriString)
  3571. if err != nil {
  3572. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3573. }
  3574. return smithyendpoints.Endpoint{
  3575. URI: *uri,
  3576. Headers: http.Header{},
  3577. Properties: func() smithy.Properties {
  3578. var out smithy.Properties
  3579. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3580. {
  3581. SchemeID: "aws.auth#sigv4",
  3582. SignerProperties: func() smithy.Properties {
  3583. var sp smithy.Properties
  3584. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3585. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3586. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3587. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3588. return sp
  3589. }(),
  3590. },
  3591. })
  3592. return out
  3593. }(),
  3594. }, nil
  3595. }
  3596. }
  3597. }
  3598. }
  3599. }
  3600. }
  3601. if _UseDualStack == true {
  3602. if _UseFIPS == false {
  3603. if _Accelerate == false {
  3604. if !(params.Endpoint != nil) {
  3605. if !(_Region == "aws-global") {
  3606. if _UseGlobalEndpoint == false {
  3607. uriString := func() string {
  3608. var out strings.Builder
  3609. out.WriteString("https://")
  3610. out.WriteString(_Bucket)
  3611. out.WriteString(".s3.dualstack.")
  3612. out.WriteString(_Region)
  3613. out.WriteString(".")
  3614. out.WriteString(_partitionResult.DnsSuffix)
  3615. return out.String()
  3616. }()
  3617. uri, err := url.Parse(uriString)
  3618. if err != nil {
  3619. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3620. }
  3621. return smithyendpoints.Endpoint{
  3622. URI: *uri,
  3623. Headers: http.Header{},
  3624. Properties: func() smithy.Properties {
  3625. var out smithy.Properties
  3626. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3627. {
  3628. SchemeID: "aws.auth#sigv4",
  3629. SignerProperties: func() smithy.Properties {
  3630. var sp smithy.Properties
  3631. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3632. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3633. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3634. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3635. return sp
  3636. }(),
  3637. },
  3638. })
  3639. return out
  3640. }(),
  3641. }, nil
  3642. }
  3643. }
  3644. }
  3645. }
  3646. }
  3647. }
  3648. if _UseDualStack == false {
  3649. if _UseFIPS == false {
  3650. if _Accelerate == false {
  3651. if exprVal := params.Endpoint; exprVal != nil {
  3652. _Endpoint := *exprVal
  3653. _ = _Endpoint
  3654. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  3655. _url := *exprVal
  3656. _ = _url
  3657. if _url.IsIp == true {
  3658. if _Region == "aws-global" {
  3659. uriString := func() string {
  3660. var out strings.Builder
  3661. out.WriteString(_url.Scheme)
  3662. out.WriteString("://")
  3663. out.WriteString(_url.Authority)
  3664. out.WriteString(_url.NormalizedPath)
  3665. out.WriteString(_Bucket)
  3666. return out.String()
  3667. }()
  3668. uri, err := url.Parse(uriString)
  3669. if err != nil {
  3670. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3671. }
  3672. return smithyendpoints.Endpoint{
  3673. URI: *uri,
  3674. Headers: http.Header{},
  3675. Properties: func() smithy.Properties {
  3676. var out smithy.Properties
  3677. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3678. {
  3679. SchemeID: "aws.auth#sigv4",
  3680. SignerProperties: func() smithy.Properties {
  3681. var sp smithy.Properties
  3682. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3683. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3684. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3685. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  3686. return sp
  3687. }(),
  3688. },
  3689. })
  3690. return out
  3691. }(),
  3692. }, nil
  3693. }
  3694. }
  3695. }
  3696. }
  3697. }
  3698. }
  3699. }
  3700. if _UseDualStack == false {
  3701. if _UseFIPS == false {
  3702. if _Accelerate == false {
  3703. if exprVal := params.Endpoint; exprVal != nil {
  3704. _Endpoint := *exprVal
  3705. _ = _Endpoint
  3706. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  3707. _url := *exprVal
  3708. _ = _url
  3709. if _url.IsIp == false {
  3710. if _Region == "aws-global" {
  3711. uriString := func() string {
  3712. var out strings.Builder
  3713. out.WriteString(_url.Scheme)
  3714. out.WriteString("://")
  3715. out.WriteString(_Bucket)
  3716. out.WriteString(".")
  3717. out.WriteString(_url.Authority)
  3718. out.WriteString(_url.Path)
  3719. return out.String()
  3720. }()
  3721. uri, err := url.Parse(uriString)
  3722. if err != nil {
  3723. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3724. }
  3725. return smithyendpoints.Endpoint{
  3726. URI: *uri,
  3727. Headers: http.Header{},
  3728. Properties: func() smithy.Properties {
  3729. var out smithy.Properties
  3730. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3731. {
  3732. SchemeID: "aws.auth#sigv4",
  3733. SignerProperties: func() smithy.Properties {
  3734. var sp smithy.Properties
  3735. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3736. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3737. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3738. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  3739. return sp
  3740. }(),
  3741. },
  3742. })
  3743. return out
  3744. }(),
  3745. }, nil
  3746. }
  3747. }
  3748. }
  3749. }
  3750. }
  3751. }
  3752. }
  3753. if _UseDualStack == false {
  3754. if _UseFIPS == false {
  3755. if _Accelerate == false {
  3756. if exprVal := params.Endpoint; exprVal != nil {
  3757. _Endpoint := *exprVal
  3758. _ = _Endpoint
  3759. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  3760. _url := *exprVal
  3761. _ = _url
  3762. if _url.IsIp == true {
  3763. if !(_Region == "aws-global") {
  3764. if _UseGlobalEndpoint == true {
  3765. if _Region == "us-east-1" {
  3766. uriString := func() string {
  3767. var out strings.Builder
  3768. out.WriteString(_url.Scheme)
  3769. out.WriteString("://")
  3770. out.WriteString(_url.Authority)
  3771. out.WriteString(_url.NormalizedPath)
  3772. out.WriteString(_Bucket)
  3773. return out.String()
  3774. }()
  3775. uri, err := url.Parse(uriString)
  3776. if err != nil {
  3777. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3778. }
  3779. return smithyendpoints.Endpoint{
  3780. URI: *uri,
  3781. Headers: http.Header{},
  3782. Properties: func() smithy.Properties {
  3783. var out smithy.Properties
  3784. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3785. {
  3786. SchemeID: "aws.auth#sigv4",
  3787. SignerProperties: func() smithy.Properties {
  3788. var sp smithy.Properties
  3789. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3790. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3791. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3792. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3793. return sp
  3794. }(),
  3795. },
  3796. })
  3797. return out
  3798. }(),
  3799. }, nil
  3800. }
  3801. uriString := func() string {
  3802. var out strings.Builder
  3803. out.WriteString(_url.Scheme)
  3804. out.WriteString("://")
  3805. out.WriteString(_url.Authority)
  3806. out.WriteString(_url.NormalizedPath)
  3807. out.WriteString(_Bucket)
  3808. return out.String()
  3809. }()
  3810. uri, err := url.Parse(uriString)
  3811. if err != nil {
  3812. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3813. }
  3814. return smithyendpoints.Endpoint{
  3815. URI: *uri,
  3816. Headers: http.Header{},
  3817. Properties: func() smithy.Properties {
  3818. var out smithy.Properties
  3819. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3820. {
  3821. SchemeID: "aws.auth#sigv4",
  3822. SignerProperties: func() smithy.Properties {
  3823. var sp smithy.Properties
  3824. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3825. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3826. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3827. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3828. return sp
  3829. }(),
  3830. },
  3831. })
  3832. return out
  3833. }(),
  3834. }, nil
  3835. }
  3836. }
  3837. }
  3838. }
  3839. }
  3840. }
  3841. }
  3842. }
  3843. if _UseDualStack == false {
  3844. if _UseFIPS == false {
  3845. if _Accelerate == false {
  3846. if exprVal := params.Endpoint; exprVal != nil {
  3847. _Endpoint := *exprVal
  3848. _ = _Endpoint
  3849. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  3850. _url := *exprVal
  3851. _ = _url
  3852. if _url.IsIp == false {
  3853. if !(_Region == "aws-global") {
  3854. if _UseGlobalEndpoint == true {
  3855. if _Region == "us-east-1" {
  3856. uriString := func() string {
  3857. var out strings.Builder
  3858. out.WriteString(_url.Scheme)
  3859. out.WriteString("://")
  3860. out.WriteString(_Bucket)
  3861. out.WriteString(".")
  3862. out.WriteString(_url.Authority)
  3863. out.WriteString(_url.Path)
  3864. return out.String()
  3865. }()
  3866. uri, err := url.Parse(uriString)
  3867. if err != nil {
  3868. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3869. }
  3870. return smithyendpoints.Endpoint{
  3871. URI: *uri,
  3872. Headers: http.Header{},
  3873. Properties: func() smithy.Properties {
  3874. var out smithy.Properties
  3875. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3876. {
  3877. SchemeID: "aws.auth#sigv4",
  3878. SignerProperties: func() smithy.Properties {
  3879. var sp smithy.Properties
  3880. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3881. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3882. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3883. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3884. return sp
  3885. }(),
  3886. },
  3887. })
  3888. return out
  3889. }(),
  3890. }, nil
  3891. }
  3892. uriString := func() string {
  3893. var out strings.Builder
  3894. out.WriteString(_url.Scheme)
  3895. out.WriteString("://")
  3896. out.WriteString(_Bucket)
  3897. out.WriteString(".")
  3898. out.WriteString(_url.Authority)
  3899. out.WriteString(_url.Path)
  3900. return out.String()
  3901. }()
  3902. uri, err := url.Parse(uriString)
  3903. if err != nil {
  3904. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3905. }
  3906. return smithyendpoints.Endpoint{
  3907. URI: *uri,
  3908. Headers: http.Header{},
  3909. Properties: func() smithy.Properties {
  3910. var out smithy.Properties
  3911. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3912. {
  3913. SchemeID: "aws.auth#sigv4",
  3914. SignerProperties: func() smithy.Properties {
  3915. var sp smithy.Properties
  3916. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3917. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3918. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3919. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3920. return sp
  3921. }(),
  3922. },
  3923. })
  3924. return out
  3925. }(),
  3926. }, nil
  3927. }
  3928. }
  3929. }
  3930. }
  3931. }
  3932. }
  3933. }
  3934. }
  3935. if _UseDualStack == false {
  3936. if _UseFIPS == false {
  3937. if _Accelerate == false {
  3938. if exprVal := params.Endpoint; exprVal != nil {
  3939. _Endpoint := *exprVal
  3940. _ = _Endpoint
  3941. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  3942. _url := *exprVal
  3943. _ = _url
  3944. if _url.IsIp == true {
  3945. if !(_Region == "aws-global") {
  3946. if _UseGlobalEndpoint == false {
  3947. uriString := func() string {
  3948. var out strings.Builder
  3949. out.WriteString(_url.Scheme)
  3950. out.WriteString("://")
  3951. out.WriteString(_url.Authority)
  3952. out.WriteString(_url.NormalizedPath)
  3953. out.WriteString(_Bucket)
  3954. return out.String()
  3955. }()
  3956. uri, err := url.Parse(uriString)
  3957. if err != nil {
  3958. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  3959. }
  3960. return smithyendpoints.Endpoint{
  3961. URI: *uri,
  3962. Headers: http.Header{},
  3963. Properties: func() smithy.Properties {
  3964. var out smithy.Properties
  3965. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  3966. {
  3967. SchemeID: "aws.auth#sigv4",
  3968. SignerProperties: func() smithy.Properties {
  3969. var sp smithy.Properties
  3970. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  3971. smithyhttp.SetSigV4SigningName(&sp, "s3")
  3972. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  3973. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  3974. return sp
  3975. }(),
  3976. },
  3977. })
  3978. return out
  3979. }(),
  3980. }, nil
  3981. }
  3982. }
  3983. }
  3984. }
  3985. }
  3986. }
  3987. }
  3988. }
  3989. if _UseDualStack == false {
  3990. if _UseFIPS == false {
  3991. if _Accelerate == false {
  3992. if exprVal := params.Endpoint; exprVal != nil {
  3993. _Endpoint := *exprVal
  3994. _ = _Endpoint
  3995. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  3996. _url := *exprVal
  3997. _ = _url
  3998. if _url.IsIp == false {
  3999. if !(_Region == "aws-global") {
  4000. if _UseGlobalEndpoint == false {
  4001. uriString := func() string {
  4002. var out strings.Builder
  4003. out.WriteString(_url.Scheme)
  4004. out.WriteString("://")
  4005. out.WriteString(_Bucket)
  4006. out.WriteString(".")
  4007. out.WriteString(_url.Authority)
  4008. out.WriteString(_url.Path)
  4009. return out.String()
  4010. }()
  4011. uri, err := url.Parse(uriString)
  4012. if err != nil {
  4013. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4014. }
  4015. return smithyendpoints.Endpoint{
  4016. URI: *uri,
  4017. Headers: http.Header{},
  4018. Properties: func() smithy.Properties {
  4019. var out smithy.Properties
  4020. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4021. {
  4022. SchemeID: "aws.auth#sigv4",
  4023. SignerProperties: func() smithy.Properties {
  4024. var sp smithy.Properties
  4025. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4026. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4027. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4028. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  4029. return sp
  4030. }(),
  4031. },
  4032. })
  4033. return out
  4034. }(),
  4035. }, nil
  4036. }
  4037. }
  4038. }
  4039. }
  4040. }
  4041. }
  4042. }
  4043. }
  4044. if _UseDualStack == false {
  4045. if _UseFIPS == false {
  4046. if _Accelerate == true {
  4047. if !(params.Endpoint != nil) {
  4048. if _Region == "aws-global" {
  4049. uriString := func() string {
  4050. var out strings.Builder
  4051. out.WriteString("https://")
  4052. out.WriteString(_Bucket)
  4053. out.WriteString(".s3-accelerate.")
  4054. out.WriteString(_partitionResult.DnsSuffix)
  4055. return out.String()
  4056. }()
  4057. uri, err := url.Parse(uriString)
  4058. if err != nil {
  4059. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4060. }
  4061. return smithyendpoints.Endpoint{
  4062. URI: *uri,
  4063. Headers: http.Header{},
  4064. Properties: func() smithy.Properties {
  4065. var out smithy.Properties
  4066. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4067. {
  4068. SchemeID: "aws.auth#sigv4",
  4069. SignerProperties: func() smithy.Properties {
  4070. var sp smithy.Properties
  4071. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4072. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4073. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4074. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  4075. return sp
  4076. }(),
  4077. },
  4078. })
  4079. return out
  4080. }(),
  4081. }, nil
  4082. }
  4083. }
  4084. }
  4085. }
  4086. }
  4087. if _UseDualStack == false {
  4088. if _UseFIPS == false {
  4089. if _Accelerate == true {
  4090. if !(params.Endpoint != nil) {
  4091. if !(_Region == "aws-global") {
  4092. if _UseGlobalEndpoint == true {
  4093. if _Region == "us-east-1" {
  4094. uriString := func() string {
  4095. var out strings.Builder
  4096. out.WriteString("https://")
  4097. out.WriteString(_Bucket)
  4098. out.WriteString(".s3-accelerate.")
  4099. out.WriteString(_partitionResult.DnsSuffix)
  4100. return out.String()
  4101. }()
  4102. uri, err := url.Parse(uriString)
  4103. if err != nil {
  4104. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4105. }
  4106. return smithyendpoints.Endpoint{
  4107. URI: *uri,
  4108. Headers: http.Header{},
  4109. Properties: func() smithy.Properties {
  4110. var out smithy.Properties
  4111. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4112. {
  4113. SchemeID: "aws.auth#sigv4",
  4114. SignerProperties: func() smithy.Properties {
  4115. var sp smithy.Properties
  4116. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4117. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4118. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4119. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  4120. return sp
  4121. }(),
  4122. },
  4123. })
  4124. return out
  4125. }(),
  4126. }, nil
  4127. }
  4128. uriString := func() string {
  4129. var out strings.Builder
  4130. out.WriteString("https://")
  4131. out.WriteString(_Bucket)
  4132. out.WriteString(".s3-accelerate.")
  4133. out.WriteString(_partitionResult.DnsSuffix)
  4134. return out.String()
  4135. }()
  4136. uri, err := url.Parse(uriString)
  4137. if err != nil {
  4138. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4139. }
  4140. return smithyendpoints.Endpoint{
  4141. URI: *uri,
  4142. Headers: http.Header{},
  4143. Properties: func() smithy.Properties {
  4144. var out smithy.Properties
  4145. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4146. {
  4147. SchemeID: "aws.auth#sigv4",
  4148. SignerProperties: func() smithy.Properties {
  4149. var sp smithy.Properties
  4150. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4151. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4152. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4153. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  4154. return sp
  4155. }(),
  4156. },
  4157. })
  4158. return out
  4159. }(),
  4160. }, nil
  4161. }
  4162. }
  4163. }
  4164. }
  4165. }
  4166. }
  4167. if _UseDualStack == false {
  4168. if _UseFIPS == false {
  4169. if _Accelerate == true {
  4170. if !(params.Endpoint != nil) {
  4171. if !(_Region == "aws-global") {
  4172. if _UseGlobalEndpoint == false {
  4173. uriString := func() string {
  4174. var out strings.Builder
  4175. out.WriteString("https://")
  4176. out.WriteString(_Bucket)
  4177. out.WriteString(".s3-accelerate.")
  4178. out.WriteString(_partitionResult.DnsSuffix)
  4179. return out.String()
  4180. }()
  4181. uri, err := url.Parse(uriString)
  4182. if err != nil {
  4183. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4184. }
  4185. return smithyendpoints.Endpoint{
  4186. URI: *uri,
  4187. Headers: http.Header{},
  4188. Properties: func() smithy.Properties {
  4189. var out smithy.Properties
  4190. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4191. {
  4192. SchemeID: "aws.auth#sigv4",
  4193. SignerProperties: func() smithy.Properties {
  4194. var sp smithy.Properties
  4195. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4196. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4197. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4198. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  4199. return sp
  4200. }(),
  4201. },
  4202. })
  4203. return out
  4204. }(),
  4205. }, nil
  4206. }
  4207. }
  4208. }
  4209. }
  4210. }
  4211. }
  4212. if _UseDualStack == false {
  4213. if _UseFIPS == false {
  4214. if _Accelerate == false {
  4215. if !(params.Endpoint != nil) {
  4216. if _Region == "aws-global" {
  4217. uriString := func() string {
  4218. var out strings.Builder
  4219. out.WriteString("https://")
  4220. out.WriteString(_Bucket)
  4221. out.WriteString(".s3.")
  4222. out.WriteString(_partitionResult.DnsSuffix)
  4223. return out.String()
  4224. }()
  4225. uri, err := url.Parse(uriString)
  4226. if err != nil {
  4227. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4228. }
  4229. return smithyendpoints.Endpoint{
  4230. URI: *uri,
  4231. Headers: http.Header{},
  4232. Properties: func() smithy.Properties {
  4233. var out smithy.Properties
  4234. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4235. {
  4236. SchemeID: "aws.auth#sigv4",
  4237. SignerProperties: func() smithy.Properties {
  4238. var sp smithy.Properties
  4239. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4240. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4241. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4242. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  4243. return sp
  4244. }(),
  4245. },
  4246. })
  4247. return out
  4248. }(),
  4249. }, nil
  4250. }
  4251. }
  4252. }
  4253. }
  4254. }
  4255. if _UseDualStack == false {
  4256. if _UseFIPS == false {
  4257. if _Accelerate == false {
  4258. if !(params.Endpoint != nil) {
  4259. if !(_Region == "aws-global") {
  4260. if _UseGlobalEndpoint == true {
  4261. if _Region == "us-east-1" {
  4262. uriString := func() string {
  4263. var out strings.Builder
  4264. out.WriteString("https://")
  4265. out.WriteString(_Bucket)
  4266. out.WriteString(".s3.")
  4267. out.WriteString(_partitionResult.DnsSuffix)
  4268. return out.String()
  4269. }()
  4270. uri, err := url.Parse(uriString)
  4271. if err != nil {
  4272. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4273. }
  4274. return smithyendpoints.Endpoint{
  4275. URI: *uri,
  4276. Headers: http.Header{},
  4277. Properties: func() smithy.Properties {
  4278. var out smithy.Properties
  4279. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4280. {
  4281. SchemeID: "aws.auth#sigv4",
  4282. SignerProperties: func() smithy.Properties {
  4283. var sp smithy.Properties
  4284. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4285. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4286. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4287. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  4288. return sp
  4289. }(),
  4290. },
  4291. })
  4292. return out
  4293. }(),
  4294. }, nil
  4295. }
  4296. uriString := func() string {
  4297. var out strings.Builder
  4298. out.WriteString("https://")
  4299. out.WriteString(_Bucket)
  4300. out.WriteString(".s3.")
  4301. out.WriteString(_Region)
  4302. out.WriteString(".")
  4303. out.WriteString(_partitionResult.DnsSuffix)
  4304. return out.String()
  4305. }()
  4306. uri, err := url.Parse(uriString)
  4307. if err != nil {
  4308. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4309. }
  4310. return smithyendpoints.Endpoint{
  4311. URI: *uri,
  4312. Headers: http.Header{},
  4313. Properties: func() smithy.Properties {
  4314. var out smithy.Properties
  4315. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4316. {
  4317. SchemeID: "aws.auth#sigv4",
  4318. SignerProperties: func() smithy.Properties {
  4319. var sp smithy.Properties
  4320. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4321. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4322. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4323. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  4324. return sp
  4325. }(),
  4326. },
  4327. })
  4328. return out
  4329. }(),
  4330. }, nil
  4331. }
  4332. }
  4333. }
  4334. }
  4335. }
  4336. }
  4337. if _UseDualStack == false {
  4338. if _UseFIPS == false {
  4339. if _Accelerate == false {
  4340. if !(params.Endpoint != nil) {
  4341. if !(_Region == "aws-global") {
  4342. if _UseGlobalEndpoint == false {
  4343. uriString := func() string {
  4344. var out strings.Builder
  4345. out.WriteString("https://")
  4346. out.WriteString(_Bucket)
  4347. out.WriteString(".s3.")
  4348. out.WriteString(_Region)
  4349. out.WriteString(".")
  4350. out.WriteString(_partitionResult.DnsSuffix)
  4351. return out.String()
  4352. }()
  4353. uri, err := url.Parse(uriString)
  4354. if err != nil {
  4355. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4356. }
  4357. return smithyendpoints.Endpoint{
  4358. URI: *uri,
  4359. Headers: http.Header{},
  4360. Properties: func() smithy.Properties {
  4361. var out smithy.Properties
  4362. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4363. {
  4364. SchemeID: "aws.auth#sigv4",
  4365. SignerProperties: func() smithy.Properties {
  4366. var sp smithy.Properties
  4367. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4368. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4369. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4370. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  4371. return sp
  4372. }(),
  4373. },
  4374. })
  4375. return out
  4376. }(),
  4377. }, nil
  4378. }
  4379. }
  4380. }
  4381. }
  4382. }
  4383. }
  4384. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  4385. }
  4386. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid region: region was not a valid DNS name.")
  4387. }
  4388. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  4389. }
  4390. }
  4391. if exprVal := params.Endpoint; exprVal != nil {
  4392. _Endpoint := *exprVal
  4393. _ = _Endpoint
  4394. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  4395. _url := *exprVal
  4396. _ = _url
  4397. if _url.Scheme == "http" {
  4398. if awsrulesfn.IsVirtualHostableS3Bucket(_Bucket, true) {
  4399. if _ForcePathStyle == false {
  4400. if _UseFIPS == false {
  4401. if _UseDualStack == false {
  4402. if _Accelerate == false {
  4403. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  4404. _partitionResult := *exprVal
  4405. _ = _partitionResult
  4406. if rulesfn.IsValidHostLabel(_Region, false) {
  4407. uriString := func() string {
  4408. var out strings.Builder
  4409. out.WriteString(_url.Scheme)
  4410. out.WriteString("://")
  4411. out.WriteString(_Bucket)
  4412. out.WriteString(".")
  4413. out.WriteString(_url.Authority)
  4414. out.WriteString(_url.Path)
  4415. return out.String()
  4416. }()
  4417. uri, err := url.Parse(uriString)
  4418. if err != nil {
  4419. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4420. }
  4421. return smithyendpoints.Endpoint{
  4422. URI: *uri,
  4423. Headers: http.Header{},
  4424. Properties: func() smithy.Properties {
  4425. var out smithy.Properties
  4426. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4427. {
  4428. SchemeID: "aws.auth#sigv4",
  4429. SignerProperties: func() smithy.Properties {
  4430. var sp smithy.Properties
  4431. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4432. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4433. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4434. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  4435. return sp
  4436. }(),
  4437. },
  4438. })
  4439. return out
  4440. }(),
  4441. }, nil
  4442. }
  4443. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid region: region was not a valid DNS name.")
  4444. }
  4445. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  4446. }
  4447. }
  4448. }
  4449. }
  4450. }
  4451. }
  4452. }
  4453. }
  4454. if _ForcePathStyle == false {
  4455. if exprVal := awsrulesfn.ParseARN(_Bucket); exprVal != nil {
  4456. _bucketArn := *exprVal
  4457. _ = _bucketArn
  4458. if exprVal := _bucketArn.ResourceId.Get(0); exprVal != nil {
  4459. _arnType := *exprVal
  4460. _ = _arnType
  4461. if !(_arnType == "") {
  4462. if _bucketArn.Service == "s3-object-lambda" {
  4463. if _arnType == "accesspoint" {
  4464. if exprVal := _bucketArn.ResourceId.Get(1); exprVal != nil {
  4465. _accessPointName := *exprVal
  4466. _ = _accessPointName
  4467. if !(_accessPointName == "") {
  4468. if _UseDualStack == true {
  4469. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Object Lambda does not support Dual-stack")
  4470. }
  4471. if _Accelerate == true {
  4472. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Object Lambda does not support S3 Accelerate")
  4473. }
  4474. if !(_bucketArn.Region == "") {
  4475. if exprVal := params.DisableAccessPoints; exprVal != nil {
  4476. _DisableAccessPoints := *exprVal
  4477. _ = _DisableAccessPoints
  4478. if _DisableAccessPoints == true {
  4479. return endpoint, fmt.Errorf("endpoint rule error, %s", "Access points are not supported for this operation")
  4480. }
  4481. }
  4482. if !(_bucketArn.ResourceId.Get(2) != nil) {
  4483. if exprVal := params.UseArnRegion; exprVal != nil {
  4484. _UseArnRegion := *exprVal
  4485. _ = _UseArnRegion
  4486. if _UseArnRegion == false {
  4487. if !(_bucketArn.Region == _Region) {
  4488. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  4489. var out strings.Builder
  4490. out.WriteString("Invalid configuration: region from ARN `")
  4491. out.WriteString(_bucketArn.Region)
  4492. out.WriteString("` does not match client region `")
  4493. out.WriteString(_Region)
  4494. out.WriteString("` and UseArnRegion is `false`")
  4495. return out.String()
  4496. }())
  4497. }
  4498. }
  4499. }
  4500. if exprVal := awsrulesfn.GetPartition(_bucketArn.Region); exprVal != nil {
  4501. _bucketPartition := *exprVal
  4502. _ = _bucketPartition
  4503. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  4504. _partitionResult := *exprVal
  4505. _ = _partitionResult
  4506. if _bucketPartition.Name == _partitionResult.Name {
  4507. if rulesfn.IsValidHostLabel(_bucketArn.Region, true) {
  4508. if _bucketArn.AccountId == "" {
  4509. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: Missing account id")
  4510. }
  4511. if rulesfn.IsValidHostLabel(_bucketArn.AccountId, false) {
  4512. if rulesfn.IsValidHostLabel(_accessPointName, false) {
  4513. if exprVal := params.Endpoint; exprVal != nil {
  4514. _Endpoint := *exprVal
  4515. _ = _Endpoint
  4516. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  4517. _url := *exprVal
  4518. _ = _url
  4519. uriString := func() string {
  4520. var out strings.Builder
  4521. out.WriteString(_url.Scheme)
  4522. out.WriteString("://")
  4523. out.WriteString(_accessPointName)
  4524. out.WriteString("-")
  4525. out.WriteString(_bucketArn.AccountId)
  4526. out.WriteString(".")
  4527. out.WriteString(_url.Authority)
  4528. out.WriteString(_url.Path)
  4529. return out.String()
  4530. }()
  4531. uri, err := url.Parse(uriString)
  4532. if err != nil {
  4533. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4534. }
  4535. return smithyendpoints.Endpoint{
  4536. URI: *uri,
  4537. Headers: http.Header{},
  4538. Properties: func() smithy.Properties {
  4539. var out smithy.Properties
  4540. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4541. {
  4542. SchemeID: "aws.auth#sigv4",
  4543. SignerProperties: func() smithy.Properties {
  4544. var sp smithy.Properties
  4545. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4546. smithyhttp.SetSigV4SigningName(&sp, "s3-object-lambda")
  4547. smithyhttp.SetSigV4ASigningName(&sp, "s3-object-lambda")
  4548. smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region)
  4549. return sp
  4550. }(),
  4551. },
  4552. })
  4553. return out
  4554. }(),
  4555. }, nil
  4556. }
  4557. }
  4558. if _UseFIPS == true {
  4559. uriString := func() string {
  4560. var out strings.Builder
  4561. out.WriteString("https://")
  4562. out.WriteString(_accessPointName)
  4563. out.WriteString("-")
  4564. out.WriteString(_bucketArn.AccountId)
  4565. out.WriteString(".s3-object-lambda-fips.")
  4566. out.WriteString(_bucketArn.Region)
  4567. out.WriteString(".")
  4568. out.WriteString(_bucketPartition.DnsSuffix)
  4569. return out.String()
  4570. }()
  4571. uri, err := url.Parse(uriString)
  4572. if err != nil {
  4573. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4574. }
  4575. return smithyendpoints.Endpoint{
  4576. URI: *uri,
  4577. Headers: http.Header{},
  4578. Properties: func() smithy.Properties {
  4579. var out smithy.Properties
  4580. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4581. {
  4582. SchemeID: "aws.auth#sigv4",
  4583. SignerProperties: func() smithy.Properties {
  4584. var sp smithy.Properties
  4585. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4586. smithyhttp.SetSigV4SigningName(&sp, "s3-object-lambda")
  4587. smithyhttp.SetSigV4ASigningName(&sp, "s3-object-lambda")
  4588. smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region)
  4589. return sp
  4590. }(),
  4591. },
  4592. })
  4593. return out
  4594. }(),
  4595. }, nil
  4596. }
  4597. uriString := func() string {
  4598. var out strings.Builder
  4599. out.WriteString("https://")
  4600. out.WriteString(_accessPointName)
  4601. out.WriteString("-")
  4602. out.WriteString(_bucketArn.AccountId)
  4603. out.WriteString(".s3-object-lambda.")
  4604. out.WriteString(_bucketArn.Region)
  4605. out.WriteString(".")
  4606. out.WriteString(_bucketPartition.DnsSuffix)
  4607. return out.String()
  4608. }()
  4609. uri, err := url.Parse(uriString)
  4610. if err != nil {
  4611. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4612. }
  4613. return smithyendpoints.Endpoint{
  4614. URI: *uri,
  4615. Headers: http.Header{},
  4616. Properties: func() smithy.Properties {
  4617. var out smithy.Properties
  4618. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4619. {
  4620. SchemeID: "aws.auth#sigv4",
  4621. SignerProperties: func() smithy.Properties {
  4622. var sp smithy.Properties
  4623. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4624. smithyhttp.SetSigV4SigningName(&sp, "s3-object-lambda")
  4625. smithyhttp.SetSigV4ASigningName(&sp, "s3-object-lambda")
  4626. smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region)
  4627. return sp
  4628. }(),
  4629. },
  4630. })
  4631. return out
  4632. }(),
  4633. }, nil
  4634. }
  4635. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  4636. var out strings.Builder
  4637. out.WriteString("Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `")
  4638. out.WriteString(_accessPointName)
  4639. out.WriteString("`")
  4640. return out.String()
  4641. }())
  4642. }
  4643. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  4644. var out strings.Builder
  4645. out.WriteString("Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `")
  4646. out.WriteString(_bucketArn.AccountId)
  4647. out.WriteString("`")
  4648. return out.String()
  4649. }())
  4650. }
  4651. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  4652. var out strings.Builder
  4653. out.WriteString("Invalid region in ARN: `")
  4654. out.WriteString(_bucketArn.Region)
  4655. out.WriteString("` (invalid DNS name)")
  4656. return out.String()
  4657. }())
  4658. }
  4659. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  4660. var out strings.Builder
  4661. out.WriteString("Client was configured for partition `")
  4662. out.WriteString(_partitionResult.Name)
  4663. out.WriteString("` but ARN (`")
  4664. out.WriteString(_Bucket)
  4665. out.WriteString("`) has `")
  4666. out.WriteString(_bucketPartition.Name)
  4667. out.WriteString("`")
  4668. return out.String()
  4669. }())
  4670. }
  4671. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  4672. }
  4673. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  4674. }
  4675. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.")
  4676. }
  4677. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: bucket ARN is missing a region")
  4678. }
  4679. }
  4680. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided")
  4681. }
  4682. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  4683. var out strings.Builder
  4684. out.WriteString("Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `")
  4685. out.WriteString(_arnType)
  4686. out.WriteString("`")
  4687. return out.String()
  4688. }())
  4689. }
  4690. if _arnType == "accesspoint" {
  4691. if exprVal := _bucketArn.ResourceId.Get(1); exprVal != nil {
  4692. _accessPointName := *exprVal
  4693. _ = _accessPointName
  4694. if !(_accessPointName == "") {
  4695. if !(_bucketArn.Region == "") {
  4696. if _arnType == "accesspoint" {
  4697. if !(_bucketArn.Region == "") {
  4698. if exprVal := params.DisableAccessPoints; exprVal != nil {
  4699. _DisableAccessPoints := *exprVal
  4700. _ = _DisableAccessPoints
  4701. if _DisableAccessPoints == true {
  4702. return endpoint, fmt.Errorf("endpoint rule error, %s", "Access points are not supported for this operation")
  4703. }
  4704. }
  4705. if !(_bucketArn.ResourceId.Get(2) != nil) {
  4706. if exprVal := params.UseArnRegion; exprVal != nil {
  4707. _UseArnRegion := *exprVal
  4708. _ = _UseArnRegion
  4709. if _UseArnRegion == false {
  4710. if !(_bucketArn.Region == _Region) {
  4711. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  4712. var out strings.Builder
  4713. out.WriteString("Invalid configuration: region from ARN `")
  4714. out.WriteString(_bucketArn.Region)
  4715. out.WriteString("` does not match client region `")
  4716. out.WriteString(_Region)
  4717. out.WriteString("` and UseArnRegion is `false`")
  4718. return out.String()
  4719. }())
  4720. }
  4721. }
  4722. }
  4723. if exprVal := awsrulesfn.GetPartition(_bucketArn.Region); exprVal != nil {
  4724. _bucketPartition := *exprVal
  4725. _ = _bucketPartition
  4726. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  4727. _partitionResult := *exprVal
  4728. _ = _partitionResult
  4729. if _bucketPartition.Name == _partitionResult.Name {
  4730. if rulesfn.IsValidHostLabel(_bucketArn.Region, true) {
  4731. if _bucketArn.Service == "s3" {
  4732. if rulesfn.IsValidHostLabel(_bucketArn.AccountId, false) {
  4733. if rulesfn.IsValidHostLabel(_accessPointName, false) {
  4734. if _Accelerate == true {
  4735. return endpoint, fmt.Errorf("endpoint rule error, %s", "Access Points do not support S3 Accelerate")
  4736. }
  4737. if _UseFIPS == true {
  4738. if _UseDualStack == true {
  4739. uriString := func() string {
  4740. var out strings.Builder
  4741. out.WriteString("https://")
  4742. out.WriteString(_accessPointName)
  4743. out.WriteString("-")
  4744. out.WriteString(_bucketArn.AccountId)
  4745. out.WriteString(".s3-accesspoint-fips.dualstack.")
  4746. out.WriteString(_bucketArn.Region)
  4747. out.WriteString(".")
  4748. out.WriteString(_bucketPartition.DnsSuffix)
  4749. return out.String()
  4750. }()
  4751. uri, err := url.Parse(uriString)
  4752. if err != nil {
  4753. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4754. }
  4755. return smithyendpoints.Endpoint{
  4756. URI: *uri,
  4757. Headers: http.Header{},
  4758. Properties: func() smithy.Properties {
  4759. var out smithy.Properties
  4760. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4761. {
  4762. SchemeID: "aws.auth#sigv4",
  4763. SignerProperties: func() smithy.Properties {
  4764. var sp smithy.Properties
  4765. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4766. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4767. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4768. smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region)
  4769. return sp
  4770. }(),
  4771. },
  4772. })
  4773. return out
  4774. }(),
  4775. }, nil
  4776. }
  4777. }
  4778. if _UseFIPS == true {
  4779. if _UseDualStack == false {
  4780. uriString := func() string {
  4781. var out strings.Builder
  4782. out.WriteString("https://")
  4783. out.WriteString(_accessPointName)
  4784. out.WriteString("-")
  4785. out.WriteString(_bucketArn.AccountId)
  4786. out.WriteString(".s3-accesspoint-fips.")
  4787. out.WriteString(_bucketArn.Region)
  4788. out.WriteString(".")
  4789. out.WriteString(_bucketPartition.DnsSuffix)
  4790. return out.String()
  4791. }()
  4792. uri, err := url.Parse(uriString)
  4793. if err != nil {
  4794. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4795. }
  4796. return smithyendpoints.Endpoint{
  4797. URI: *uri,
  4798. Headers: http.Header{},
  4799. Properties: func() smithy.Properties {
  4800. var out smithy.Properties
  4801. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4802. {
  4803. SchemeID: "aws.auth#sigv4",
  4804. SignerProperties: func() smithy.Properties {
  4805. var sp smithy.Properties
  4806. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4807. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4808. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4809. smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region)
  4810. return sp
  4811. }(),
  4812. },
  4813. })
  4814. return out
  4815. }(),
  4816. }, nil
  4817. }
  4818. }
  4819. if _UseFIPS == false {
  4820. if _UseDualStack == true {
  4821. uriString := func() string {
  4822. var out strings.Builder
  4823. out.WriteString("https://")
  4824. out.WriteString(_accessPointName)
  4825. out.WriteString("-")
  4826. out.WriteString(_bucketArn.AccountId)
  4827. out.WriteString(".s3-accesspoint.dualstack.")
  4828. out.WriteString(_bucketArn.Region)
  4829. out.WriteString(".")
  4830. out.WriteString(_bucketPartition.DnsSuffix)
  4831. return out.String()
  4832. }()
  4833. uri, err := url.Parse(uriString)
  4834. if err != nil {
  4835. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4836. }
  4837. return smithyendpoints.Endpoint{
  4838. URI: *uri,
  4839. Headers: http.Header{},
  4840. Properties: func() smithy.Properties {
  4841. var out smithy.Properties
  4842. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4843. {
  4844. SchemeID: "aws.auth#sigv4",
  4845. SignerProperties: func() smithy.Properties {
  4846. var sp smithy.Properties
  4847. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4848. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4849. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4850. smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region)
  4851. return sp
  4852. }(),
  4853. },
  4854. })
  4855. return out
  4856. }(),
  4857. }, nil
  4858. }
  4859. }
  4860. if _UseFIPS == false {
  4861. if _UseDualStack == false {
  4862. if exprVal := params.Endpoint; exprVal != nil {
  4863. _Endpoint := *exprVal
  4864. _ = _Endpoint
  4865. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  4866. _url := *exprVal
  4867. _ = _url
  4868. uriString := func() string {
  4869. var out strings.Builder
  4870. out.WriteString(_url.Scheme)
  4871. out.WriteString("://")
  4872. out.WriteString(_accessPointName)
  4873. out.WriteString("-")
  4874. out.WriteString(_bucketArn.AccountId)
  4875. out.WriteString(".")
  4876. out.WriteString(_url.Authority)
  4877. out.WriteString(_url.Path)
  4878. return out.String()
  4879. }()
  4880. uri, err := url.Parse(uriString)
  4881. if err != nil {
  4882. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4883. }
  4884. return smithyendpoints.Endpoint{
  4885. URI: *uri,
  4886. Headers: http.Header{},
  4887. Properties: func() smithy.Properties {
  4888. var out smithy.Properties
  4889. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4890. {
  4891. SchemeID: "aws.auth#sigv4",
  4892. SignerProperties: func() smithy.Properties {
  4893. var sp smithy.Properties
  4894. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4895. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4896. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4897. smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region)
  4898. return sp
  4899. }(),
  4900. },
  4901. })
  4902. return out
  4903. }(),
  4904. }, nil
  4905. }
  4906. }
  4907. }
  4908. }
  4909. if _UseFIPS == false {
  4910. if _UseDualStack == false {
  4911. uriString := func() string {
  4912. var out strings.Builder
  4913. out.WriteString("https://")
  4914. out.WriteString(_accessPointName)
  4915. out.WriteString("-")
  4916. out.WriteString(_bucketArn.AccountId)
  4917. out.WriteString(".s3-accesspoint.")
  4918. out.WriteString(_bucketArn.Region)
  4919. out.WriteString(".")
  4920. out.WriteString(_bucketPartition.DnsSuffix)
  4921. return out.String()
  4922. }()
  4923. uri, err := url.Parse(uriString)
  4924. if err != nil {
  4925. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  4926. }
  4927. return smithyendpoints.Endpoint{
  4928. URI: *uri,
  4929. Headers: http.Header{},
  4930. Properties: func() smithy.Properties {
  4931. var out smithy.Properties
  4932. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  4933. {
  4934. SchemeID: "aws.auth#sigv4",
  4935. SignerProperties: func() smithy.Properties {
  4936. var sp smithy.Properties
  4937. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  4938. smithyhttp.SetSigV4SigningName(&sp, "s3")
  4939. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  4940. smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region)
  4941. return sp
  4942. }(),
  4943. },
  4944. })
  4945. return out
  4946. }(),
  4947. }, nil
  4948. }
  4949. }
  4950. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  4951. }
  4952. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  4953. var out strings.Builder
  4954. out.WriteString("Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `")
  4955. out.WriteString(_accessPointName)
  4956. out.WriteString("`")
  4957. return out.String()
  4958. }())
  4959. }
  4960. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  4961. var out strings.Builder
  4962. out.WriteString("Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `")
  4963. out.WriteString(_bucketArn.AccountId)
  4964. out.WriteString("`")
  4965. return out.String()
  4966. }())
  4967. }
  4968. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  4969. var out strings.Builder
  4970. out.WriteString("Invalid ARN: The ARN was not for the S3 service, found: ")
  4971. out.WriteString(_bucketArn.Service)
  4972. return out.String()
  4973. }())
  4974. }
  4975. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  4976. var out strings.Builder
  4977. out.WriteString("Invalid region in ARN: `")
  4978. out.WriteString(_bucketArn.Region)
  4979. out.WriteString("` (invalid DNS name)")
  4980. return out.String()
  4981. }())
  4982. }
  4983. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  4984. var out strings.Builder
  4985. out.WriteString("Client was configured for partition `")
  4986. out.WriteString(_partitionResult.Name)
  4987. out.WriteString("` but ARN (`")
  4988. out.WriteString(_Bucket)
  4989. out.WriteString("`) has `")
  4990. out.WriteString(_bucketPartition.Name)
  4991. out.WriteString("`")
  4992. return out.String()
  4993. }())
  4994. }
  4995. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  4996. }
  4997. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  4998. }
  4999. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.")
  5000. }
  5001. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  5002. }
  5003. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  5004. }
  5005. if rulesfn.IsValidHostLabel(_accessPointName, true) {
  5006. if _UseDualStack == true {
  5007. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 MRAP does not support dual-stack")
  5008. }
  5009. if _UseFIPS == true {
  5010. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 MRAP does not support FIPS")
  5011. }
  5012. if _Accelerate == true {
  5013. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 MRAP does not support S3 Accelerate")
  5014. }
  5015. if _DisableMultiRegionAccessPoints == true {
  5016. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid configuration: Multi-Region Access Point ARNs are disabled.")
  5017. }
  5018. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  5019. _mrapPartition := *exprVal
  5020. _ = _mrapPartition
  5021. if _mrapPartition.Name == _bucketArn.Partition {
  5022. uriString := func() string {
  5023. var out strings.Builder
  5024. out.WriteString("https://")
  5025. out.WriteString(_accessPointName)
  5026. out.WriteString(".accesspoint.s3-global.")
  5027. out.WriteString(_mrapPartition.DnsSuffix)
  5028. return out.String()
  5029. }()
  5030. uri, err := url.Parse(uriString)
  5031. if err != nil {
  5032. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5033. }
  5034. return smithyendpoints.Endpoint{
  5035. URI: *uri,
  5036. Headers: http.Header{},
  5037. Properties: func() smithy.Properties {
  5038. var out smithy.Properties
  5039. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5040. {
  5041. SchemeID: "aws.auth#sigv4a",
  5042. SignerProperties: func() smithy.Properties {
  5043. var sp smithy.Properties
  5044. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5045. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5046. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5047. smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"})
  5048. return sp
  5049. }(),
  5050. },
  5051. })
  5052. return out
  5053. }(),
  5054. }, nil
  5055. }
  5056. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  5057. var out strings.Builder
  5058. out.WriteString("Client was configured for partition `")
  5059. out.WriteString(_mrapPartition.Name)
  5060. out.WriteString("` but bucket referred to partition `")
  5061. out.WriteString(_bucketArn.Partition)
  5062. out.WriteString("`")
  5063. return out.String()
  5064. }())
  5065. }
  5066. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  5067. }
  5068. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Access Point Name")
  5069. }
  5070. }
  5071. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided")
  5072. }
  5073. if _bucketArn.Service == "s3-outposts" {
  5074. if _UseDualStack == true {
  5075. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Outposts does not support Dual-stack")
  5076. }
  5077. if _UseFIPS == true {
  5078. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Outposts does not support FIPS")
  5079. }
  5080. if _Accelerate == true {
  5081. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Outposts does not support S3 Accelerate")
  5082. }
  5083. if exprVal := _bucketArn.ResourceId.Get(4); exprVal != nil {
  5084. _var_321 := *exprVal
  5085. _ = _var_321
  5086. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Arn: Outpost Access Point ARN contains sub resources")
  5087. }
  5088. if exprVal := _bucketArn.ResourceId.Get(1); exprVal != nil {
  5089. _outpostId := *exprVal
  5090. _ = _outpostId
  5091. if rulesfn.IsValidHostLabel(_outpostId, false) {
  5092. if exprVal := params.UseArnRegion; exprVal != nil {
  5093. _UseArnRegion := *exprVal
  5094. _ = _UseArnRegion
  5095. if _UseArnRegion == false {
  5096. if !(_bucketArn.Region == _Region) {
  5097. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  5098. var out strings.Builder
  5099. out.WriteString("Invalid configuration: region from ARN `")
  5100. out.WriteString(_bucketArn.Region)
  5101. out.WriteString("` does not match client region `")
  5102. out.WriteString(_Region)
  5103. out.WriteString("` and UseArnRegion is `false`")
  5104. return out.String()
  5105. }())
  5106. }
  5107. }
  5108. }
  5109. if exprVal := awsrulesfn.GetPartition(_bucketArn.Region); exprVal != nil {
  5110. _bucketPartition := *exprVal
  5111. _ = _bucketPartition
  5112. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  5113. _partitionResult := *exprVal
  5114. _ = _partitionResult
  5115. if _bucketPartition.Name == _partitionResult.Name {
  5116. if rulesfn.IsValidHostLabel(_bucketArn.Region, true) {
  5117. if rulesfn.IsValidHostLabel(_bucketArn.AccountId, false) {
  5118. if exprVal := _bucketArn.ResourceId.Get(2); exprVal != nil {
  5119. _outpostType := *exprVal
  5120. _ = _outpostType
  5121. if exprVal := _bucketArn.ResourceId.Get(3); exprVal != nil {
  5122. _accessPointName := *exprVal
  5123. _ = _accessPointName
  5124. if _outpostType == "accesspoint" {
  5125. if exprVal := params.Endpoint; exprVal != nil {
  5126. _Endpoint := *exprVal
  5127. _ = _Endpoint
  5128. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  5129. _url := *exprVal
  5130. _ = _url
  5131. uriString := func() string {
  5132. var out strings.Builder
  5133. out.WriteString("https://")
  5134. out.WriteString(_accessPointName)
  5135. out.WriteString("-")
  5136. out.WriteString(_bucketArn.AccountId)
  5137. out.WriteString(".")
  5138. out.WriteString(_outpostId)
  5139. out.WriteString(".")
  5140. out.WriteString(_url.Authority)
  5141. return out.String()
  5142. }()
  5143. uri, err := url.Parse(uriString)
  5144. if err != nil {
  5145. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5146. }
  5147. return smithyendpoints.Endpoint{
  5148. URI: *uri,
  5149. Headers: http.Header{},
  5150. Properties: func() smithy.Properties {
  5151. var out smithy.Properties
  5152. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5153. {
  5154. SchemeID: "aws.auth#sigv4a",
  5155. SignerProperties: func() smithy.Properties {
  5156. var sp smithy.Properties
  5157. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5158. smithyhttp.SetSigV4SigningName(&sp, "s3-outposts")
  5159. smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts")
  5160. smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"})
  5161. return sp
  5162. }(),
  5163. },
  5164. {
  5165. SchemeID: "aws.auth#sigv4",
  5166. SignerProperties: func() smithy.Properties {
  5167. var sp smithy.Properties
  5168. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5169. smithyhttp.SetSigV4SigningName(&sp, "s3-outposts")
  5170. smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts")
  5171. smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region)
  5172. return sp
  5173. }(),
  5174. },
  5175. })
  5176. return out
  5177. }(),
  5178. }, nil
  5179. }
  5180. }
  5181. uriString := func() string {
  5182. var out strings.Builder
  5183. out.WriteString("https://")
  5184. out.WriteString(_accessPointName)
  5185. out.WriteString("-")
  5186. out.WriteString(_bucketArn.AccountId)
  5187. out.WriteString(".")
  5188. out.WriteString(_outpostId)
  5189. out.WriteString(".s3-outposts.")
  5190. out.WriteString(_bucketArn.Region)
  5191. out.WriteString(".")
  5192. out.WriteString(_bucketPartition.DnsSuffix)
  5193. return out.String()
  5194. }()
  5195. uri, err := url.Parse(uriString)
  5196. if err != nil {
  5197. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5198. }
  5199. return smithyendpoints.Endpoint{
  5200. URI: *uri,
  5201. Headers: http.Header{},
  5202. Properties: func() smithy.Properties {
  5203. var out smithy.Properties
  5204. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5205. {
  5206. SchemeID: "aws.auth#sigv4a",
  5207. SignerProperties: func() smithy.Properties {
  5208. var sp smithy.Properties
  5209. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5210. smithyhttp.SetSigV4SigningName(&sp, "s3-outposts")
  5211. smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts")
  5212. smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"})
  5213. return sp
  5214. }(),
  5215. },
  5216. {
  5217. SchemeID: "aws.auth#sigv4",
  5218. SignerProperties: func() smithy.Properties {
  5219. var sp smithy.Properties
  5220. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5221. smithyhttp.SetSigV4SigningName(&sp, "s3-outposts")
  5222. smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts")
  5223. smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region)
  5224. return sp
  5225. }(),
  5226. },
  5227. })
  5228. return out
  5229. }(),
  5230. }, nil
  5231. }
  5232. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  5233. var out strings.Builder
  5234. out.WriteString("Expected an outpost type `accesspoint`, found ")
  5235. out.WriteString(_outpostType)
  5236. return out.String()
  5237. }())
  5238. }
  5239. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: expected an access point name")
  5240. }
  5241. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: Expected a 4-component resource")
  5242. }
  5243. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  5244. var out strings.Builder
  5245. out.WriteString("Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `")
  5246. out.WriteString(_bucketArn.AccountId)
  5247. out.WriteString("`")
  5248. return out.String()
  5249. }())
  5250. }
  5251. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  5252. var out strings.Builder
  5253. out.WriteString("Invalid region in ARN: `")
  5254. out.WriteString(_bucketArn.Region)
  5255. out.WriteString("` (invalid DNS name)")
  5256. return out.String()
  5257. }())
  5258. }
  5259. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  5260. var out strings.Builder
  5261. out.WriteString("Client was configured for partition `")
  5262. out.WriteString(_partitionResult.Name)
  5263. out.WriteString("` but ARN (`")
  5264. out.WriteString(_Bucket)
  5265. out.WriteString("`) has `")
  5266. out.WriteString(_bucketPartition.Name)
  5267. out.WriteString("`")
  5268. return out.String()
  5269. }())
  5270. }
  5271. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  5272. }
  5273. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  5274. }
  5275. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  5276. var out strings.Builder
  5277. out.WriteString("Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `")
  5278. out.WriteString(_outpostId)
  5279. out.WriteString("`")
  5280. return out.String()
  5281. }())
  5282. }
  5283. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: The Outpost Id was not set")
  5284. }
  5285. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  5286. var out strings.Builder
  5287. out.WriteString("Invalid ARN: Unrecognized format: ")
  5288. out.WriteString(_Bucket)
  5289. out.WriteString(" (type: ")
  5290. out.WriteString(_arnType)
  5291. out.WriteString(")")
  5292. return out.String()
  5293. }())
  5294. }
  5295. }
  5296. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: No ARN type specified")
  5297. }
  5298. }
  5299. if exprVal := rulesfn.SubString(_Bucket, 0, 4, false); exprVal != nil {
  5300. _arnPrefix := *exprVal
  5301. _ = _arnPrefix
  5302. if _arnPrefix == "arn:" {
  5303. if !(awsrulesfn.ParseARN(_Bucket) != nil) {
  5304. return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
  5305. var out strings.Builder
  5306. out.WriteString("Invalid ARN: `")
  5307. out.WriteString(_Bucket)
  5308. out.WriteString("` was not a valid ARN")
  5309. return out.String()
  5310. }())
  5311. }
  5312. }
  5313. }
  5314. if _ForcePathStyle == true {
  5315. if exprVal := awsrulesfn.ParseARN(_Bucket); exprVal != nil {
  5316. _var_334 := *exprVal
  5317. _ = _var_334
  5318. return endpoint, fmt.Errorf("endpoint rule error, %s", "Path-style addressing cannot be used with ARN buckets")
  5319. }
  5320. }
  5321. _uri_encoded_bucket := rulesfn.URIEncode(_Bucket)
  5322. _ = _uri_encoded_bucket
  5323. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  5324. _partitionResult := *exprVal
  5325. _ = _partitionResult
  5326. if _Accelerate == false {
  5327. if _UseDualStack == true {
  5328. if !(params.Endpoint != nil) {
  5329. if _UseFIPS == true {
  5330. if _Region == "aws-global" {
  5331. uriString := func() string {
  5332. var out strings.Builder
  5333. out.WriteString("https://s3-fips.dualstack.us-east-1.")
  5334. out.WriteString(_partitionResult.DnsSuffix)
  5335. out.WriteString("/")
  5336. out.WriteString(_uri_encoded_bucket)
  5337. return out.String()
  5338. }()
  5339. uri, err := url.Parse(uriString)
  5340. if err != nil {
  5341. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5342. }
  5343. return smithyendpoints.Endpoint{
  5344. URI: *uri,
  5345. Headers: http.Header{},
  5346. Properties: func() smithy.Properties {
  5347. var out smithy.Properties
  5348. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5349. {
  5350. SchemeID: "aws.auth#sigv4",
  5351. SignerProperties: func() smithy.Properties {
  5352. var sp smithy.Properties
  5353. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5354. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5355. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5356. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  5357. return sp
  5358. }(),
  5359. },
  5360. })
  5361. return out
  5362. }(),
  5363. }, nil
  5364. }
  5365. }
  5366. }
  5367. }
  5368. if _UseDualStack == true {
  5369. if !(params.Endpoint != nil) {
  5370. if _UseFIPS == true {
  5371. if !(_Region == "aws-global") {
  5372. if _UseGlobalEndpoint == true {
  5373. uriString := func() string {
  5374. var out strings.Builder
  5375. out.WriteString("https://s3-fips.dualstack.")
  5376. out.WriteString(_Region)
  5377. out.WriteString(".")
  5378. out.WriteString(_partitionResult.DnsSuffix)
  5379. out.WriteString("/")
  5380. out.WriteString(_uri_encoded_bucket)
  5381. return out.String()
  5382. }()
  5383. uri, err := url.Parse(uriString)
  5384. if err != nil {
  5385. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5386. }
  5387. return smithyendpoints.Endpoint{
  5388. URI: *uri,
  5389. Headers: http.Header{},
  5390. Properties: func() smithy.Properties {
  5391. var out smithy.Properties
  5392. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5393. {
  5394. SchemeID: "aws.auth#sigv4",
  5395. SignerProperties: func() smithy.Properties {
  5396. var sp smithy.Properties
  5397. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5398. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5399. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5400. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  5401. return sp
  5402. }(),
  5403. },
  5404. })
  5405. return out
  5406. }(),
  5407. }, nil
  5408. }
  5409. }
  5410. }
  5411. }
  5412. }
  5413. if _UseDualStack == true {
  5414. if !(params.Endpoint != nil) {
  5415. if _UseFIPS == true {
  5416. if !(_Region == "aws-global") {
  5417. if _UseGlobalEndpoint == false {
  5418. uriString := func() string {
  5419. var out strings.Builder
  5420. out.WriteString("https://s3-fips.dualstack.")
  5421. out.WriteString(_Region)
  5422. out.WriteString(".")
  5423. out.WriteString(_partitionResult.DnsSuffix)
  5424. out.WriteString("/")
  5425. out.WriteString(_uri_encoded_bucket)
  5426. return out.String()
  5427. }()
  5428. uri, err := url.Parse(uriString)
  5429. if err != nil {
  5430. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5431. }
  5432. return smithyendpoints.Endpoint{
  5433. URI: *uri,
  5434. Headers: http.Header{},
  5435. Properties: func() smithy.Properties {
  5436. var out smithy.Properties
  5437. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5438. {
  5439. SchemeID: "aws.auth#sigv4",
  5440. SignerProperties: func() smithy.Properties {
  5441. var sp smithy.Properties
  5442. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5443. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5444. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5445. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  5446. return sp
  5447. }(),
  5448. },
  5449. })
  5450. return out
  5451. }(),
  5452. }, nil
  5453. }
  5454. }
  5455. }
  5456. }
  5457. }
  5458. if _UseDualStack == false {
  5459. if !(params.Endpoint != nil) {
  5460. if _UseFIPS == true {
  5461. if _Region == "aws-global" {
  5462. uriString := func() string {
  5463. var out strings.Builder
  5464. out.WriteString("https://s3-fips.us-east-1.")
  5465. out.WriteString(_partitionResult.DnsSuffix)
  5466. out.WriteString("/")
  5467. out.WriteString(_uri_encoded_bucket)
  5468. return out.String()
  5469. }()
  5470. uri, err := url.Parse(uriString)
  5471. if err != nil {
  5472. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5473. }
  5474. return smithyendpoints.Endpoint{
  5475. URI: *uri,
  5476. Headers: http.Header{},
  5477. Properties: func() smithy.Properties {
  5478. var out smithy.Properties
  5479. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5480. {
  5481. SchemeID: "aws.auth#sigv4",
  5482. SignerProperties: func() smithy.Properties {
  5483. var sp smithy.Properties
  5484. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5485. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5486. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5487. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  5488. return sp
  5489. }(),
  5490. },
  5491. })
  5492. return out
  5493. }(),
  5494. }, nil
  5495. }
  5496. }
  5497. }
  5498. }
  5499. if _UseDualStack == false {
  5500. if !(params.Endpoint != nil) {
  5501. if _UseFIPS == true {
  5502. if !(_Region == "aws-global") {
  5503. if _UseGlobalEndpoint == true {
  5504. uriString := func() string {
  5505. var out strings.Builder
  5506. out.WriteString("https://s3-fips.")
  5507. out.WriteString(_Region)
  5508. out.WriteString(".")
  5509. out.WriteString(_partitionResult.DnsSuffix)
  5510. out.WriteString("/")
  5511. out.WriteString(_uri_encoded_bucket)
  5512. return out.String()
  5513. }()
  5514. uri, err := url.Parse(uriString)
  5515. if err != nil {
  5516. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5517. }
  5518. return smithyendpoints.Endpoint{
  5519. URI: *uri,
  5520. Headers: http.Header{},
  5521. Properties: func() smithy.Properties {
  5522. var out smithy.Properties
  5523. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5524. {
  5525. SchemeID: "aws.auth#sigv4",
  5526. SignerProperties: func() smithy.Properties {
  5527. var sp smithy.Properties
  5528. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5529. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5530. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5531. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  5532. return sp
  5533. }(),
  5534. },
  5535. })
  5536. return out
  5537. }(),
  5538. }, nil
  5539. }
  5540. }
  5541. }
  5542. }
  5543. }
  5544. if _UseDualStack == false {
  5545. if !(params.Endpoint != nil) {
  5546. if _UseFIPS == true {
  5547. if !(_Region == "aws-global") {
  5548. if _UseGlobalEndpoint == false {
  5549. uriString := func() string {
  5550. var out strings.Builder
  5551. out.WriteString("https://s3-fips.")
  5552. out.WriteString(_Region)
  5553. out.WriteString(".")
  5554. out.WriteString(_partitionResult.DnsSuffix)
  5555. out.WriteString("/")
  5556. out.WriteString(_uri_encoded_bucket)
  5557. return out.String()
  5558. }()
  5559. uri, err := url.Parse(uriString)
  5560. if err != nil {
  5561. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5562. }
  5563. return smithyendpoints.Endpoint{
  5564. URI: *uri,
  5565. Headers: http.Header{},
  5566. Properties: func() smithy.Properties {
  5567. var out smithy.Properties
  5568. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5569. {
  5570. SchemeID: "aws.auth#sigv4",
  5571. SignerProperties: func() smithy.Properties {
  5572. var sp smithy.Properties
  5573. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5574. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5575. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5576. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  5577. return sp
  5578. }(),
  5579. },
  5580. })
  5581. return out
  5582. }(),
  5583. }, nil
  5584. }
  5585. }
  5586. }
  5587. }
  5588. }
  5589. if _UseDualStack == true {
  5590. if !(params.Endpoint != nil) {
  5591. if _UseFIPS == false {
  5592. if _Region == "aws-global" {
  5593. uriString := func() string {
  5594. var out strings.Builder
  5595. out.WriteString("https://s3.dualstack.us-east-1.")
  5596. out.WriteString(_partitionResult.DnsSuffix)
  5597. out.WriteString("/")
  5598. out.WriteString(_uri_encoded_bucket)
  5599. return out.String()
  5600. }()
  5601. uri, err := url.Parse(uriString)
  5602. if err != nil {
  5603. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5604. }
  5605. return smithyendpoints.Endpoint{
  5606. URI: *uri,
  5607. Headers: http.Header{},
  5608. Properties: func() smithy.Properties {
  5609. var out smithy.Properties
  5610. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5611. {
  5612. SchemeID: "aws.auth#sigv4",
  5613. SignerProperties: func() smithy.Properties {
  5614. var sp smithy.Properties
  5615. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5616. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5617. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5618. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  5619. return sp
  5620. }(),
  5621. },
  5622. })
  5623. return out
  5624. }(),
  5625. }, nil
  5626. }
  5627. }
  5628. }
  5629. }
  5630. if _UseDualStack == true {
  5631. if !(params.Endpoint != nil) {
  5632. if _UseFIPS == false {
  5633. if !(_Region == "aws-global") {
  5634. if _UseGlobalEndpoint == true {
  5635. uriString := func() string {
  5636. var out strings.Builder
  5637. out.WriteString("https://s3.dualstack.")
  5638. out.WriteString(_Region)
  5639. out.WriteString(".")
  5640. out.WriteString(_partitionResult.DnsSuffix)
  5641. out.WriteString("/")
  5642. out.WriteString(_uri_encoded_bucket)
  5643. return out.String()
  5644. }()
  5645. uri, err := url.Parse(uriString)
  5646. if err != nil {
  5647. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5648. }
  5649. return smithyendpoints.Endpoint{
  5650. URI: *uri,
  5651. Headers: http.Header{},
  5652. Properties: func() smithy.Properties {
  5653. var out smithy.Properties
  5654. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5655. {
  5656. SchemeID: "aws.auth#sigv4",
  5657. SignerProperties: func() smithy.Properties {
  5658. var sp smithy.Properties
  5659. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5660. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5661. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5662. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  5663. return sp
  5664. }(),
  5665. },
  5666. })
  5667. return out
  5668. }(),
  5669. }, nil
  5670. }
  5671. }
  5672. }
  5673. }
  5674. }
  5675. if _UseDualStack == true {
  5676. if !(params.Endpoint != nil) {
  5677. if _UseFIPS == false {
  5678. if !(_Region == "aws-global") {
  5679. if _UseGlobalEndpoint == false {
  5680. uriString := func() string {
  5681. var out strings.Builder
  5682. out.WriteString("https://s3.dualstack.")
  5683. out.WriteString(_Region)
  5684. out.WriteString(".")
  5685. out.WriteString(_partitionResult.DnsSuffix)
  5686. out.WriteString("/")
  5687. out.WriteString(_uri_encoded_bucket)
  5688. return out.String()
  5689. }()
  5690. uri, err := url.Parse(uriString)
  5691. if err != nil {
  5692. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5693. }
  5694. return smithyendpoints.Endpoint{
  5695. URI: *uri,
  5696. Headers: http.Header{},
  5697. Properties: func() smithy.Properties {
  5698. var out smithy.Properties
  5699. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5700. {
  5701. SchemeID: "aws.auth#sigv4",
  5702. SignerProperties: func() smithy.Properties {
  5703. var sp smithy.Properties
  5704. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5705. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5706. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5707. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  5708. return sp
  5709. }(),
  5710. },
  5711. })
  5712. return out
  5713. }(),
  5714. }, nil
  5715. }
  5716. }
  5717. }
  5718. }
  5719. }
  5720. if _UseDualStack == false {
  5721. if exprVal := params.Endpoint; exprVal != nil {
  5722. _Endpoint := *exprVal
  5723. _ = _Endpoint
  5724. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  5725. _url := *exprVal
  5726. _ = _url
  5727. if _UseFIPS == false {
  5728. if _Region == "aws-global" {
  5729. uriString := func() string {
  5730. var out strings.Builder
  5731. out.WriteString(_url.Scheme)
  5732. out.WriteString("://")
  5733. out.WriteString(_url.Authority)
  5734. out.WriteString(_url.NormalizedPath)
  5735. out.WriteString(_uri_encoded_bucket)
  5736. return out.String()
  5737. }()
  5738. uri, err := url.Parse(uriString)
  5739. if err != nil {
  5740. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5741. }
  5742. return smithyendpoints.Endpoint{
  5743. URI: *uri,
  5744. Headers: http.Header{},
  5745. Properties: func() smithy.Properties {
  5746. var out smithy.Properties
  5747. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5748. {
  5749. SchemeID: "aws.auth#sigv4",
  5750. SignerProperties: func() smithy.Properties {
  5751. var sp smithy.Properties
  5752. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5753. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5754. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5755. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  5756. return sp
  5757. }(),
  5758. },
  5759. })
  5760. return out
  5761. }(),
  5762. }, nil
  5763. }
  5764. }
  5765. }
  5766. }
  5767. }
  5768. if _UseDualStack == false {
  5769. if exprVal := params.Endpoint; exprVal != nil {
  5770. _Endpoint := *exprVal
  5771. _ = _Endpoint
  5772. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  5773. _url := *exprVal
  5774. _ = _url
  5775. if _UseFIPS == false {
  5776. if !(_Region == "aws-global") {
  5777. if _UseGlobalEndpoint == true {
  5778. if _Region == "us-east-1" {
  5779. uriString := func() string {
  5780. var out strings.Builder
  5781. out.WriteString(_url.Scheme)
  5782. out.WriteString("://")
  5783. out.WriteString(_url.Authority)
  5784. out.WriteString(_url.NormalizedPath)
  5785. out.WriteString(_uri_encoded_bucket)
  5786. return out.String()
  5787. }()
  5788. uri, err := url.Parse(uriString)
  5789. if err != nil {
  5790. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5791. }
  5792. return smithyendpoints.Endpoint{
  5793. URI: *uri,
  5794. Headers: http.Header{},
  5795. Properties: func() smithy.Properties {
  5796. var out smithy.Properties
  5797. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5798. {
  5799. SchemeID: "aws.auth#sigv4",
  5800. SignerProperties: func() smithy.Properties {
  5801. var sp smithy.Properties
  5802. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5803. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5804. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5805. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  5806. return sp
  5807. }(),
  5808. },
  5809. })
  5810. return out
  5811. }(),
  5812. }, nil
  5813. }
  5814. uriString := func() string {
  5815. var out strings.Builder
  5816. out.WriteString(_url.Scheme)
  5817. out.WriteString("://")
  5818. out.WriteString(_url.Authority)
  5819. out.WriteString(_url.NormalizedPath)
  5820. out.WriteString(_uri_encoded_bucket)
  5821. return out.String()
  5822. }()
  5823. uri, err := url.Parse(uriString)
  5824. if err != nil {
  5825. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5826. }
  5827. return smithyendpoints.Endpoint{
  5828. URI: *uri,
  5829. Headers: http.Header{},
  5830. Properties: func() smithy.Properties {
  5831. var out smithy.Properties
  5832. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5833. {
  5834. SchemeID: "aws.auth#sigv4",
  5835. SignerProperties: func() smithy.Properties {
  5836. var sp smithy.Properties
  5837. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5838. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5839. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5840. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  5841. return sp
  5842. }(),
  5843. },
  5844. })
  5845. return out
  5846. }(),
  5847. }, nil
  5848. }
  5849. }
  5850. }
  5851. }
  5852. }
  5853. }
  5854. if _UseDualStack == false {
  5855. if exprVal := params.Endpoint; exprVal != nil {
  5856. _Endpoint := *exprVal
  5857. _ = _Endpoint
  5858. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  5859. _url := *exprVal
  5860. _ = _url
  5861. if _UseFIPS == false {
  5862. if !(_Region == "aws-global") {
  5863. if _UseGlobalEndpoint == false {
  5864. uriString := func() string {
  5865. var out strings.Builder
  5866. out.WriteString(_url.Scheme)
  5867. out.WriteString("://")
  5868. out.WriteString(_url.Authority)
  5869. out.WriteString(_url.NormalizedPath)
  5870. out.WriteString(_uri_encoded_bucket)
  5871. return out.String()
  5872. }()
  5873. uri, err := url.Parse(uriString)
  5874. if err != nil {
  5875. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5876. }
  5877. return smithyendpoints.Endpoint{
  5878. URI: *uri,
  5879. Headers: http.Header{},
  5880. Properties: func() smithy.Properties {
  5881. var out smithy.Properties
  5882. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5883. {
  5884. SchemeID: "aws.auth#sigv4",
  5885. SignerProperties: func() smithy.Properties {
  5886. var sp smithy.Properties
  5887. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5888. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5889. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5890. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  5891. return sp
  5892. }(),
  5893. },
  5894. })
  5895. return out
  5896. }(),
  5897. }, nil
  5898. }
  5899. }
  5900. }
  5901. }
  5902. }
  5903. }
  5904. if _UseDualStack == false {
  5905. if !(params.Endpoint != nil) {
  5906. if _UseFIPS == false {
  5907. if _Region == "aws-global" {
  5908. uriString := func() string {
  5909. var out strings.Builder
  5910. out.WriteString("https://s3.")
  5911. out.WriteString(_partitionResult.DnsSuffix)
  5912. out.WriteString("/")
  5913. out.WriteString(_uri_encoded_bucket)
  5914. return out.String()
  5915. }()
  5916. uri, err := url.Parse(uriString)
  5917. if err != nil {
  5918. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5919. }
  5920. return smithyendpoints.Endpoint{
  5921. URI: *uri,
  5922. Headers: http.Header{},
  5923. Properties: func() smithy.Properties {
  5924. var out smithy.Properties
  5925. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5926. {
  5927. SchemeID: "aws.auth#sigv4",
  5928. SignerProperties: func() smithy.Properties {
  5929. var sp smithy.Properties
  5930. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5931. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5932. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5933. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  5934. return sp
  5935. }(),
  5936. },
  5937. })
  5938. return out
  5939. }(),
  5940. }, nil
  5941. }
  5942. }
  5943. }
  5944. }
  5945. if _UseDualStack == false {
  5946. if !(params.Endpoint != nil) {
  5947. if _UseFIPS == false {
  5948. if !(_Region == "aws-global") {
  5949. if _UseGlobalEndpoint == true {
  5950. if _Region == "us-east-1" {
  5951. uriString := func() string {
  5952. var out strings.Builder
  5953. out.WriteString("https://s3.")
  5954. out.WriteString(_partitionResult.DnsSuffix)
  5955. out.WriteString("/")
  5956. out.WriteString(_uri_encoded_bucket)
  5957. return out.String()
  5958. }()
  5959. uri, err := url.Parse(uriString)
  5960. if err != nil {
  5961. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5962. }
  5963. return smithyendpoints.Endpoint{
  5964. URI: *uri,
  5965. Headers: http.Header{},
  5966. Properties: func() smithy.Properties {
  5967. var out smithy.Properties
  5968. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  5969. {
  5970. SchemeID: "aws.auth#sigv4",
  5971. SignerProperties: func() smithy.Properties {
  5972. var sp smithy.Properties
  5973. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  5974. smithyhttp.SetSigV4SigningName(&sp, "s3")
  5975. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  5976. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  5977. return sp
  5978. }(),
  5979. },
  5980. })
  5981. return out
  5982. }(),
  5983. }, nil
  5984. }
  5985. uriString := func() string {
  5986. var out strings.Builder
  5987. out.WriteString("https://s3.")
  5988. out.WriteString(_Region)
  5989. out.WriteString(".")
  5990. out.WriteString(_partitionResult.DnsSuffix)
  5991. out.WriteString("/")
  5992. out.WriteString(_uri_encoded_bucket)
  5993. return out.String()
  5994. }()
  5995. uri, err := url.Parse(uriString)
  5996. if err != nil {
  5997. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  5998. }
  5999. return smithyendpoints.Endpoint{
  6000. URI: *uri,
  6001. Headers: http.Header{},
  6002. Properties: func() smithy.Properties {
  6003. var out smithy.Properties
  6004. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6005. {
  6006. SchemeID: "aws.auth#sigv4",
  6007. SignerProperties: func() smithy.Properties {
  6008. var sp smithy.Properties
  6009. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6010. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6011. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6012. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6013. return sp
  6014. }(),
  6015. },
  6016. })
  6017. return out
  6018. }(),
  6019. }, nil
  6020. }
  6021. }
  6022. }
  6023. }
  6024. }
  6025. if _UseDualStack == false {
  6026. if !(params.Endpoint != nil) {
  6027. if _UseFIPS == false {
  6028. if !(_Region == "aws-global") {
  6029. if _UseGlobalEndpoint == false {
  6030. uriString := func() string {
  6031. var out strings.Builder
  6032. out.WriteString("https://s3.")
  6033. out.WriteString(_Region)
  6034. out.WriteString(".")
  6035. out.WriteString(_partitionResult.DnsSuffix)
  6036. out.WriteString("/")
  6037. out.WriteString(_uri_encoded_bucket)
  6038. return out.String()
  6039. }()
  6040. uri, err := url.Parse(uriString)
  6041. if err != nil {
  6042. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6043. }
  6044. return smithyendpoints.Endpoint{
  6045. URI: *uri,
  6046. Headers: http.Header{},
  6047. Properties: func() smithy.Properties {
  6048. var out smithy.Properties
  6049. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6050. {
  6051. SchemeID: "aws.auth#sigv4",
  6052. SignerProperties: func() smithy.Properties {
  6053. var sp smithy.Properties
  6054. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6055. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6056. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6057. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6058. return sp
  6059. }(),
  6060. },
  6061. })
  6062. return out
  6063. }(),
  6064. }, nil
  6065. }
  6066. }
  6067. }
  6068. }
  6069. }
  6070. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  6071. }
  6072. return endpoint, fmt.Errorf("endpoint rule error, %s", "Path-style addressing cannot be used with S3 Accelerate")
  6073. }
  6074. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  6075. }
  6076. if exprVal := params.UseObjectLambdaEndpoint; exprVal != nil {
  6077. _UseObjectLambdaEndpoint := *exprVal
  6078. _ = _UseObjectLambdaEndpoint
  6079. if _UseObjectLambdaEndpoint == true {
  6080. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  6081. _partitionResult := *exprVal
  6082. _ = _partitionResult
  6083. if rulesfn.IsValidHostLabel(_Region, true) {
  6084. if _UseDualStack == true {
  6085. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Object Lambda does not support Dual-stack")
  6086. }
  6087. if _Accelerate == true {
  6088. return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Object Lambda does not support S3 Accelerate")
  6089. }
  6090. if exprVal := params.Endpoint; exprVal != nil {
  6091. _Endpoint := *exprVal
  6092. _ = _Endpoint
  6093. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  6094. _url := *exprVal
  6095. _ = _url
  6096. uriString := func() string {
  6097. var out strings.Builder
  6098. out.WriteString(_url.Scheme)
  6099. out.WriteString("://")
  6100. out.WriteString(_url.Authority)
  6101. out.WriteString(_url.Path)
  6102. return out.String()
  6103. }()
  6104. uri, err := url.Parse(uriString)
  6105. if err != nil {
  6106. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6107. }
  6108. return smithyendpoints.Endpoint{
  6109. URI: *uri,
  6110. Headers: http.Header{},
  6111. Properties: func() smithy.Properties {
  6112. var out smithy.Properties
  6113. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6114. {
  6115. SchemeID: "aws.auth#sigv4",
  6116. SignerProperties: func() smithy.Properties {
  6117. var sp smithy.Properties
  6118. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6119. smithyhttp.SetSigV4SigningName(&sp, "s3-object-lambda")
  6120. smithyhttp.SetSigV4ASigningName(&sp, "s3-object-lambda")
  6121. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6122. return sp
  6123. }(),
  6124. },
  6125. })
  6126. return out
  6127. }(),
  6128. }, nil
  6129. }
  6130. }
  6131. if _UseFIPS == true {
  6132. uriString := func() string {
  6133. var out strings.Builder
  6134. out.WriteString("https://s3-object-lambda-fips.")
  6135. out.WriteString(_Region)
  6136. out.WriteString(".")
  6137. out.WriteString(_partitionResult.DnsSuffix)
  6138. return out.String()
  6139. }()
  6140. uri, err := url.Parse(uriString)
  6141. if err != nil {
  6142. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6143. }
  6144. return smithyendpoints.Endpoint{
  6145. URI: *uri,
  6146. Headers: http.Header{},
  6147. Properties: func() smithy.Properties {
  6148. var out smithy.Properties
  6149. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6150. {
  6151. SchemeID: "aws.auth#sigv4",
  6152. SignerProperties: func() smithy.Properties {
  6153. var sp smithy.Properties
  6154. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6155. smithyhttp.SetSigV4SigningName(&sp, "s3-object-lambda")
  6156. smithyhttp.SetSigV4ASigningName(&sp, "s3-object-lambda")
  6157. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6158. return sp
  6159. }(),
  6160. },
  6161. })
  6162. return out
  6163. }(),
  6164. }, nil
  6165. }
  6166. uriString := func() string {
  6167. var out strings.Builder
  6168. out.WriteString("https://s3-object-lambda.")
  6169. out.WriteString(_Region)
  6170. out.WriteString(".")
  6171. out.WriteString(_partitionResult.DnsSuffix)
  6172. return out.String()
  6173. }()
  6174. uri, err := url.Parse(uriString)
  6175. if err != nil {
  6176. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6177. }
  6178. return smithyendpoints.Endpoint{
  6179. URI: *uri,
  6180. Headers: http.Header{},
  6181. Properties: func() smithy.Properties {
  6182. var out smithy.Properties
  6183. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6184. {
  6185. SchemeID: "aws.auth#sigv4",
  6186. SignerProperties: func() smithy.Properties {
  6187. var sp smithy.Properties
  6188. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6189. smithyhttp.SetSigV4SigningName(&sp, "s3-object-lambda")
  6190. smithyhttp.SetSigV4ASigningName(&sp, "s3-object-lambda")
  6191. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6192. return sp
  6193. }(),
  6194. },
  6195. })
  6196. return out
  6197. }(),
  6198. }, nil
  6199. }
  6200. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid region: region was not a valid DNS name.")
  6201. }
  6202. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  6203. }
  6204. }
  6205. if !(params.Bucket != nil) {
  6206. if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
  6207. _partitionResult := *exprVal
  6208. _ = _partitionResult
  6209. if rulesfn.IsValidHostLabel(_Region, true) {
  6210. if _UseFIPS == true {
  6211. if _UseDualStack == true {
  6212. if !(params.Endpoint != nil) {
  6213. if _Region == "aws-global" {
  6214. uriString := func() string {
  6215. var out strings.Builder
  6216. out.WriteString("https://s3-fips.dualstack.us-east-1.")
  6217. out.WriteString(_partitionResult.DnsSuffix)
  6218. return out.String()
  6219. }()
  6220. uri, err := url.Parse(uriString)
  6221. if err != nil {
  6222. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6223. }
  6224. return smithyendpoints.Endpoint{
  6225. URI: *uri,
  6226. Headers: http.Header{},
  6227. Properties: func() smithy.Properties {
  6228. var out smithy.Properties
  6229. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6230. {
  6231. SchemeID: "aws.auth#sigv4",
  6232. SignerProperties: func() smithy.Properties {
  6233. var sp smithy.Properties
  6234. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6235. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6236. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6237. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  6238. return sp
  6239. }(),
  6240. },
  6241. })
  6242. return out
  6243. }(),
  6244. }, nil
  6245. }
  6246. }
  6247. }
  6248. }
  6249. if _UseFIPS == true {
  6250. if _UseDualStack == true {
  6251. if !(params.Endpoint != nil) {
  6252. if !(_Region == "aws-global") {
  6253. if _UseGlobalEndpoint == true {
  6254. uriString := func() string {
  6255. var out strings.Builder
  6256. out.WriteString("https://s3-fips.dualstack.")
  6257. out.WriteString(_Region)
  6258. out.WriteString(".")
  6259. out.WriteString(_partitionResult.DnsSuffix)
  6260. return out.String()
  6261. }()
  6262. uri, err := url.Parse(uriString)
  6263. if err != nil {
  6264. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6265. }
  6266. return smithyendpoints.Endpoint{
  6267. URI: *uri,
  6268. Headers: http.Header{},
  6269. Properties: func() smithy.Properties {
  6270. var out smithy.Properties
  6271. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6272. {
  6273. SchemeID: "aws.auth#sigv4",
  6274. SignerProperties: func() smithy.Properties {
  6275. var sp smithy.Properties
  6276. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6277. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6278. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6279. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6280. return sp
  6281. }(),
  6282. },
  6283. })
  6284. return out
  6285. }(),
  6286. }, nil
  6287. }
  6288. }
  6289. }
  6290. }
  6291. }
  6292. if _UseFIPS == true {
  6293. if _UseDualStack == true {
  6294. if !(params.Endpoint != nil) {
  6295. if !(_Region == "aws-global") {
  6296. if _UseGlobalEndpoint == false {
  6297. uriString := func() string {
  6298. var out strings.Builder
  6299. out.WriteString("https://s3-fips.dualstack.")
  6300. out.WriteString(_Region)
  6301. out.WriteString(".")
  6302. out.WriteString(_partitionResult.DnsSuffix)
  6303. return out.String()
  6304. }()
  6305. uri, err := url.Parse(uriString)
  6306. if err != nil {
  6307. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6308. }
  6309. return smithyendpoints.Endpoint{
  6310. URI: *uri,
  6311. Headers: http.Header{},
  6312. Properties: func() smithy.Properties {
  6313. var out smithy.Properties
  6314. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6315. {
  6316. SchemeID: "aws.auth#sigv4",
  6317. SignerProperties: func() smithy.Properties {
  6318. var sp smithy.Properties
  6319. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6320. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6321. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6322. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6323. return sp
  6324. }(),
  6325. },
  6326. })
  6327. return out
  6328. }(),
  6329. }, nil
  6330. }
  6331. }
  6332. }
  6333. }
  6334. }
  6335. if _UseFIPS == true {
  6336. if _UseDualStack == false {
  6337. if !(params.Endpoint != nil) {
  6338. if _Region == "aws-global" {
  6339. uriString := func() string {
  6340. var out strings.Builder
  6341. out.WriteString("https://s3-fips.us-east-1.")
  6342. out.WriteString(_partitionResult.DnsSuffix)
  6343. return out.String()
  6344. }()
  6345. uri, err := url.Parse(uriString)
  6346. if err != nil {
  6347. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6348. }
  6349. return smithyendpoints.Endpoint{
  6350. URI: *uri,
  6351. Headers: http.Header{},
  6352. Properties: func() smithy.Properties {
  6353. var out smithy.Properties
  6354. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6355. {
  6356. SchemeID: "aws.auth#sigv4",
  6357. SignerProperties: func() smithy.Properties {
  6358. var sp smithy.Properties
  6359. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6360. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6361. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6362. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  6363. return sp
  6364. }(),
  6365. },
  6366. })
  6367. return out
  6368. }(),
  6369. }, nil
  6370. }
  6371. }
  6372. }
  6373. }
  6374. if _UseFIPS == true {
  6375. if _UseDualStack == false {
  6376. if !(params.Endpoint != nil) {
  6377. if !(_Region == "aws-global") {
  6378. if _UseGlobalEndpoint == true {
  6379. uriString := func() string {
  6380. var out strings.Builder
  6381. out.WriteString("https://s3-fips.")
  6382. out.WriteString(_Region)
  6383. out.WriteString(".")
  6384. out.WriteString(_partitionResult.DnsSuffix)
  6385. return out.String()
  6386. }()
  6387. uri, err := url.Parse(uriString)
  6388. if err != nil {
  6389. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6390. }
  6391. return smithyendpoints.Endpoint{
  6392. URI: *uri,
  6393. Headers: http.Header{},
  6394. Properties: func() smithy.Properties {
  6395. var out smithy.Properties
  6396. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6397. {
  6398. SchemeID: "aws.auth#sigv4",
  6399. SignerProperties: func() smithy.Properties {
  6400. var sp smithy.Properties
  6401. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6402. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6403. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6404. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6405. return sp
  6406. }(),
  6407. },
  6408. })
  6409. return out
  6410. }(),
  6411. }, nil
  6412. }
  6413. }
  6414. }
  6415. }
  6416. }
  6417. if _UseFIPS == true {
  6418. if _UseDualStack == false {
  6419. if !(params.Endpoint != nil) {
  6420. if !(_Region == "aws-global") {
  6421. if _UseGlobalEndpoint == false {
  6422. uriString := func() string {
  6423. var out strings.Builder
  6424. out.WriteString("https://s3-fips.")
  6425. out.WriteString(_Region)
  6426. out.WriteString(".")
  6427. out.WriteString(_partitionResult.DnsSuffix)
  6428. return out.String()
  6429. }()
  6430. uri, err := url.Parse(uriString)
  6431. if err != nil {
  6432. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6433. }
  6434. return smithyendpoints.Endpoint{
  6435. URI: *uri,
  6436. Headers: http.Header{},
  6437. Properties: func() smithy.Properties {
  6438. var out smithy.Properties
  6439. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6440. {
  6441. SchemeID: "aws.auth#sigv4",
  6442. SignerProperties: func() smithy.Properties {
  6443. var sp smithy.Properties
  6444. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6445. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6446. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6447. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6448. return sp
  6449. }(),
  6450. },
  6451. })
  6452. return out
  6453. }(),
  6454. }, nil
  6455. }
  6456. }
  6457. }
  6458. }
  6459. }
  6460. if _UseFIPS == false {
  6461. if _UseDualStack == true {
  6462. if !(params.Endpoint != nil) {
  6463. if _Region == "aws-global" {
  6464. uriString := func() string {
  6465. var out strings.Builder
  6466. out.WriteString("https://s3.dualstack.us-east-1.")
  6467. out.WriteString(_partitionResult.DnsSuffix)
  6468. return out.String()
  6469. }()
  6470. uri, err := url.Parse(uriString)
  6471. if err != nil {
  6472. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6473. }
  6474. return smithyendpoints.Endpoint{
  6475. URI: *uri,
  6476. Headers: http.Header{},
  6477. Properties: func() smithy.Properties {
  6478. var out smithy.Properties
  6479. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6480. {
  6481. SchemeID: "aws.auth#sigv4",
  6482. SignerProperties: func() smithy.Properties {
  6483. var sp smithy.Properties
  6484. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6485. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6486. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6487. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  6488. return sp
  6489. }(),
  6490. },
  6491. })
  6492. return out
  6493. }(),
  6494. }, nil
  6495. }
  6496. }
  6497. }
  6498. }
  6499. if _UseFIPS == false {
  6500. if _UseDualStack == true {
  6501. if !(params.Endpoint != nil) {
  6502. if !(_Region == "aws-global") {
  6503. if _UseGlobalEndpoint == true {
  6504. uriString := func() string {
  6505. var out strings.Builder
  6506. out.WriteString("https://s3.dualstack.")
  6507. out.WriteString(_Region)
  6508. out.WriteString(".")
  6509. out.WriteString(_partitionResult.DnsSuffix)
  6510. return out.String()
  6511. }()
  6512. uri, err := url.Parse(uriString)
  6513. if err != nil {
  6514. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6515. }
  6516. return smithyendpoints.Endpoint{
  6517. URI: *uri,
  6518. Headers: http.Header{},
  6519. Properties: func() smithy.Properties {
  6520. var out smithy.Properties
  6521. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6522. {
  6523. SchemeID: "aws.auth#sigv4",
  6524. SignerProperties: func() smithy.Properties {
  6525. var sp smithy.Properties
  6526. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6527. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6528. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6529. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6530. return sp
  6531. }(),
  6532. },
  6533. })
  6534. return out
  6535. }(),
  6536. }, nil
  6537. }
  6538. }
  6539. }
  6540. }
  6541. }
  6542. if _UseFIPS == false {
  6543. if _UseDualStack == true {
  6544. if !(params.Endpoint != nil) {
  6545. if !(_Region == "aws-global") {
  6546. if _UseGlobalEndpoint == false {
  6547. uriString := func() string {
  6548. var out strings.Builder
  6549. out.WriteString("https://s3.dualstack.")
  6550. out.WriteString(_Region)
  6551. out.WriteString(".")
  6552. out.WriteString(_partitionResult.DnsSuffix)
  6553. return out.String()
  6554. }()
  6555. uri, err := url.Parse(uriString)
  6556. if err != nil {
  6557. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6558. }
  6559. return smithyendpoints.Endpoint{
  6560. URI: *uri,
  6561. Headers: http.Header{},
  6562. Properties: func() smithy.Properties {
  6563. var out smithy.Properties
  6564. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6565. {
  6566. SchemeID: "aws.auth#sigv4",
  6567. SignerProperties: func() smithy.Properties {
  6568. var sp smithy.Properties
  6569. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6570. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6571. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6572. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6573. return sp
  6574. }(),
  6575. },
  6576. })
  6577. return out
  6578. }(),
  6579. }, nil
  6580. }
  6581. }
  6582. }
  6583. }
  6584. }
  6585. if _UseFIPS == false {
  6586. if _UseDualStack == false {
  6587. if exprVal := params.Endpoint; exprVal != nil {
  6588. _Endpoint := *exprVal
  6589. _ = _Endpoint
  6590. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  6591. _url := *exprVal
  6592. _ = _url
  6593. if _Region == "aws-global" {
  6594. uriString := func() string {
  6595. var out strings.Builder
  6596. out.WriteString(_url.Scheme)
  6597. out.WriteString("://")
  6598. out.WriteString(_url.Authority)
  6599. out.WriteString(_url.Path)
  6600. return out.String()
  6601. }()
  6602. uri, err := url.Parse(uriString)
  6603. if err != nil {
  6604. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6605. }
  6606. return smithyendpoints.Endpoint{
  6607. URI: *uri,
  6608. Headers: http.Header{},
  6609. Properties: func() smithy.Properties {
  6610. var out smithy.Properties
  6611. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6612. {
  6613. SchemeID: "aws.auth#sigv4",
  6614. SignerProperties: func() smithy.Properties {
  6615. var sp smithy.Properties
  6616. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6617. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6618. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6619. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  6620. return sp
  6621. }(),
  6622. },
  6623. })
  6624. return out
  6625. }(),
  6626. }, nil
  6627. }
  6628. }
  6629. }
  6630. }
  6631. }
  6632. if _UseFIPS == false {
  6633. if _UseDualStack == false {
  6634. if exprVal := params.Endpoint; exprVal != nil {
  6635. _Endpoint := *exprVal
  6636. _ = _Endpoint
  6637. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  6638. _url := *exprVal
  6639. _ = _url
  6640. if !(_Region == "aws-global") {
  6641. if _UseGlobalEndpoint == true {
  6642. if _Region == "us-east-1" {
  6643. uriString := func() string {
  6644. var out strings.Builder
  6645. out.WriteString(_url.Scheme)
  6646. out.WriteString("://")
  6647. out.WriteString(_url.Authority)
  6648. out.WriteString(_url.Path)
  6649. return out.String()
  6650. }()
  6651. uri, err := url.Parse(uriString)
  6652. if err != nil {
  6653. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6654. }
  6655. return smithyendpoints.Endpoint{
  6656. URI: *uri,
  6657. Headers: http.Header{},
  6658. Properties: func() smithy.Properties {
  6659. var out smithy.Properties
  6660. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6661. {
  6662. SchemeID: "aws.auth#sigv4",
  6663. SignerProperties: func() smithy.Properties {
  6664. var sp smithy.Properties
  6665. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6666. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6667. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6668. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6669. return sp
  6670. }(),
  6671. },
  6672. })
  6673. return out
  6674. }(),
  6675. }, nil
  6676. }
  6677. uriString := func() string {
  6678. var out strings.Builder
  6679. out.WriteString(_url.Scheme)
  6680. out.WriteString("://")
  6681. out.WriteString(_url.Authority)
  6682. out.WriteString(_url.Path)
  6683. return out.String()
  6684. }()
  6685. uri, err := url.Parse(uriString)
  6686. if err != nil {
  6687. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6688. }
  6689. return smithyendpoints.Endpoint{
  6690. URI: *uri,
  6691. Headers: http.Header{},
  6692. Properties: func() smithy.Properties {
  6693. var out smithy.Properties
  6694. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6695. {
  6696. SchemeID: "aws.auth#sigv4",
  6697. SignerProperties: func() smithy.Properties {
  6698. var sp smithy.Properties
  6699. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6700. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6701. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6702. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6703. return sp
  6704. }(),
  6705. },
  6706. })
  6707. return out
  6708. }(),
  6709. }, nil
  6710. }
  6711. }
  6712. }
  6713. }
  6714. }
  6715. }
  6716. if _UseFIPS == false {
  6717. if _UseDualStack == false {
  6718. if exprVal := params.Endpoint; exprVal != nil {
  6719. _Endpoint := *exprVal
  6720. _ = _Endpoint
  6721. if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
  6722. _url := *exprVal
  6723. _ = _url
  6724. if !(_Region == "aws-global") {
  6725. if _UseGlobalEndpoint == false {
  6726. uriString := func() string {
  6727. var out strings.Builder
  6728. out.WriteString(_url.Scheme)
  6729. out.WriteString("://")
  6730. out.WriteString(_url.Authority)
  6731. out.WriteString(_url.Path)
  6732. return out.String()
  6733. }()
  6734. uri, err := url.Parse(uriString)
  6735. if err != nil {
  6736. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6737. }
  6738. return smithyendpoints.Endpoint{
  6739. URI: *uri,
  6740. Headers: http.Header{},
  6741. Properties: func() smithy.Properties {
  6742. var out smithy.Properties
  6743. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6744. {
  6745. SchemeID: "aws.auth#sigv4",
  6746. SignerProperties: func() smithy.Properties {
  6747. var sp smithy.Properties
  6748. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6749. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6750. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6751. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6752. return sp
  6753. }(),
  6754. },
  6755. })
  6756. return out
  6757. }(),
  6758. }, nil
  6759. }
  6760. }
  6761. }
  6762. }
  6763. }
  6764. }
  6765. if _UseFIPS == false {
  6766. if _UseDualStack == false {
  6767. if !(params.Endpoint != nil) {
  6768. if _Region == "aws-global" {
  6769. uriString := func() string {
  6770. var out strings.Builder
  6771. out.WriteString("https://s3.")
  6772. out.WriteString(_partitionResult.DnsSuffix)
  6773. return out.String()
  6774. }()
  6775. uri, err := url.Parse(uriString)
  6776. if err != nil {
  6777. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6778. }
  6779. return smithyendpoints.Endpoint{
  6780. URI: *uri,
  6781. Headers: http.Header{},
  6782. Properties: func() smithy.Properties {
  6783. var out smithy.Properties
  6784. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6785. {
  6786. SchemeID: "aws.auth#sigv4",
  6787. SignerProperties: func() smithy.Properties {
  6788. var sp smithy.Properties
  6789. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6790. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6791. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6792. smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
  6793. return sp
  6794. }(),
  6795. },
  6796. })
  6797. return out
  6798. }(),
  6799. }, nil
  6800. }
  6801. }
  6802. }
  6803. }
  6804. if _UseFIPS == false {
  6805. if _UseDualStack == false {
  6806. if !(params.Endpoint != nil) {
  6807. if !(_Region == "aws-global") {
  6808. if _UseGlobalEndpoint == true {
  6809. if _Region == "us-east-1" {
  6810. uriString := func() string {
  6811. var out strings.Builder
  6812. out.WriteString("https://s3.")
  6813. out.WriteString(_partitionResult.DnsSuffix)
  6814. return out.String()
  6815. }()
  6816. uri, err := url.Parse(uriString)
  6817. if err != nil {
  6818. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6819. }
  6820. return smithyendpoints.Endpoint{
  6821. URI: *uri,
  6822. Headers: http.Header{},
  6823. Properties: func() smithy.Properties {
  6824. var out smithy.Properties
  6825. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6826. {
  6827. SchemeID: "aws.auth#sigv4",
  6828. SignerProperties: func() smithy.Properties {
  6829. var sp smithy.Properties
  6830. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6831. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6832. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6833. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6834. return sp
  6835. }(),
  6836. },
  6837. })
  6838. return out
  6839. }(),
  6840. }, nil
  6841. }
  6842. uriString := func() string {
  6843. var out strings.Builder
  6844. out.WriteString("https://s3.")
  6845. out.WriteString(_Region)
  6846. out.WriteString(".")
  6847. out.WriteString(_partitionResult.DnsSuffix)
  6848. return out.String()
  6849. }()
  6850. uri, err := url.Parse(uriString)
  6851. if err != nil {
  6852. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6853. }
  6854. return smithyendpoints.Endpoint{
  6855. URI: *uri,
  6856. Headers: http.Header{},
  6857. Properties: func() smithy.Properties {
  6858. var out smithy.Properties
  6859. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6860. {
  6861. SchemeID: "aws.auth#sigv4",
  6862. SignerProperties: func() smithy.Properties {
  6863. var sp smithy.Properties
  6864. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6865. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6866. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6867. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6868. return sp
  6869. }(),
  6870. },
  6871. })
  6872. return out
  6873. }(),
  6874. }, nil
  6875. }
  6876. }
  6877. }
  6878. }
  6879. }
  6880. if _UseFIPS == false {
  6881. if _UseDualStack == false {
  6882. if !(params.Endpoint != nil) {
  6883. if !(_Region == "aws-global") {
  6884. if _UseGlobalEndpoint == false {
  6885. uriString := func() string {
  6886. var out strings.Builder
  6887. out.WriteString("https://s3.")
  6888. out.WriteString(_Region)
  6889. out.WriteString(".")
  6890. out.WriteString(_partitionResult.DnsSuffix)
  6891. return out.String()
  6892. }()
  6893. uri, err := url.Parse(uriString)
  6894. if err != nil {
  6895. return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
  6896. }
  6897. return smithyendpoints.Endpoint{
  6898. URI: *uri,
  6899. Headers: http.Header{},
  6900. Properties: func() smithy.Properties {
  6901. var out smithy.Properties
  6902. smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
  6903. {
  6904. SchemeID: "aws.auth#sigv4",
  6905. SignerProperties: func() smithy.Properties {
  6906. var sp smithy.Properties
  6907. smithyhttp.SetDisableDoubleEncoding(&sp, true)
  6908. smithyhttp.SetSigV4SigningName(&sp, "s3")
  6909. smithyhttp.SetSigV4ASigningName(&sp, "s3")
  6910. smithyhttp.SetSigV4SigningRegion(&sp, _Region)
  6911. return sp
  6912. }(),
  6913. },
  6914. })
  6915. return out
  6916. }(),
  6917. }, nil
  6918. }
  6919. }
  6920. }
  6921. }
  6922. }
  6923. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  6924. }
  6925. return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid region: region was not a valid DNS name.")
  6926. }
  6927. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  6928. }
  6929. return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
  6930. }
  6931. return endpoint, fmt.Errorf("endpoint rule error, %s", "A region must be set when sending requests to S3.")
  6932. }
  6933. type endpointParamsBinder interface {
  6934. bindEndpointParams(*EndpointParameters)
  6935. }
  6936. func bindEndpointParams(ctx context.Context, input interface{}, options Options) *EndpointParameters {
  6937. params := &EndpointParameters{}
  6938. params.Region = bindRegion(options.Region)
  6939. params.UseFIPS = aws.Bool(options.EndpointOptions.UseFIPSEndpoint == aws.FIPSEndpointStateEnabled)
  6940. params.UseDualStack = aws.Bool(options.EndpointOptions.UseDualStackEndpoint == aws.DualStackEndpointStateEnabled)
  6941. params.Endpoint = options.BaseEndpoint
  6942. params.ForcePathStyle = aws.Bool(options.UsePathStyle)
  6943. params.Accelerate = aws.Bool(options.UseAccelerate)
  6944. params.DisableMultiRegionAccessPoints = aws.Bool(options.DisableMultiRegionAccessPoints)
  6945. params.UseArnRegion = aws.Bool(options.UseARNRegion)
  6946. params.DisableS3ExpressSessionAuth = options.DisableS3ExpressSessionAuth
  6947. if b, ok := input.(endpointParamsBinder); ok {
  6948. b.bindEndpointParams(params)
  6949. }
  6950. return params
  6951. }
  6952. type resolveEndpointV2Middleware struct {
  6953. options Options
  6954. }
  6955. func (*resolveEndpointV2Middleware) ID() string {
  6956. return "ResolveEndpointV2"
  6957. }
  6958. func (m *resolveEndpointV2Middleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) (
  6959. out middleware.FinalizeOutput, metadata middleware.Metadata, err error,
  6960. ) {
  6961. _, span := tracing.StartSpan(ctx, "ResolveEndpoint")
  6962. defer span.End()
  6963. if awsmiddleware.GetRequiresLegacyEndpoints(ctx) {
  6964. return next.HandleFinalize(ctx, in)
  6965. }
  6966. req, ok := in.Request.(*smithyhttp.Request)
  6967. if !ok {
  6968. return out, metadata, fmt.Errorf("unknown transport type %T", in.Request)
  6969. }
  6970. if m.options.EndpointResolverV2 == nil {
  6971. return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil")
  6972. }
  6973. params := bindEndpointParams(ctx, getOperationInput(ctx), m.options)
  6974. endpt, err := timeOperationMetric(ctx, "client.call.resolve_endpoint_duration",
  6975. func() (smithyendpoints.Endpoint, error) {
  6976. return m.options.EndpointResolverV2.ResolveEndpoint(ctx, *params)
  6977. })
  6978. if err != nil {
  6979. return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err)
  6980. }
  6981. span.SetProperty("client.call.resolved_endpoint", endpt.URI.String())
  6982. if endpt.URI.RawPath == "" && req.URL.RawPath != "" {
  6983. endpt.URI.RawPath = endpt.URI.Path
  6984. }
  6985. req.URL.Scheme = endpt.URI.Scheme
  6986. req.URL.Host = endpt.URI.Host
  6987. req.URL.Path = smithyhttp.JoinPath(endpt.URI.Path, req.URL.Path)
  6988. req.URL.RawPath = smithyhttp.JoinPath(endpt.URI.RawPath, req.URL.RawPath)
  6989. for k := range endpt.Headers {
  6990. req.Header.Set(k, endpt.Headers.Get(k))
  6991. }
  6992. rscheme := getResolvedAuthScheme(ctx)
  6993. if rscheme == nil {
  6994. return out, metadata, fmt.Errorf("no resolved auth scheme")
  6995. }
  6996. opts, _ := smithyauth.GetAuthOptions(&endpt.Properties)
  6997. for _, o := range opts {
  6998. rscheme.SignerProperties.SetAll(&o.SignerProperties)
  6999. }
  7000. ctx = setS3ResolvedURI(ctx, endpt.URI.String())
  7001. backend := s3cust.GetPropertiesBackend(&endpt.Properties)
  7002. ctx = internalcontext.SetS3Backend(ctx, backend)
  7003. span.End()
  7004. return next.HandleFinalize(ctx, in)
  7005. }