S3Client.h 887 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192
  1. /**
  2. * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
  3. * SPDX-License-Identifier: Apache-2.0.
  4. */
  5. #pragma once
  6. #include <aws/s3/S3_EXPORTS.h>
  7. #include <aws/s3/S3Errors.h>
  8. #include <aws/core/client/AWSError.h>
  9. #include <aws/core/client/ClientConfiguration.h>
  10. #include <aws/core/client/AWSClient.h>
  11. #include <aws/core/auth/AWSAuthSigner.h>
  12. #include <aws/core/utils/memory/stl/AWSString.h>
  13. #include <aws/core/utils/xml/XmlSerializer.h>
  14. #include <aws/core/utils/DNS.h>
  15. #include <aws/s3/model/AbortMultipartUploadResult.h>
  16. #include <aws/s3/model/CompleteMultipartUploadResult.h>
  17. #include <aws/s3/model/CopyObjectResult.h>
  18. #include <aws/s3/model/CreateBucketResult.h>
  19. #include <aws/s3/model/CreateMultipartUploadResult.h>
  20. #include <aws/s3/model/DeleteObjectResult.h>
  21. #include <aws/s3/model/DeleteObjectTaggingResult.h>
  22. #include <aws/s3/model/DeleteObjectsResult.h>
  23. #include <aws/s3/model/GetBucketAccelerateConfigurationResult.h>
  24. #include <aws/s3/model/GetBucketAclResult.h>
  25. #include <aws/s3/model/GetBucketAnalyticsConfigurationResult.h>
  26. #include <aws/s3/model/GetBucketCorsResult.h>
  27. #include <aws/s3/model/GetBucketEncryptionResult.h>
  28. #include <aws/s3/model/GetBucketIntelligentTieringConfigurationResult.h>
  29. #include <aws/s3/model/GetBucketInventoryConfigurationResult.h>
  30. #include <aws/s3/model/GetBucketLifecycleConfigurationResult.h>
  31. #include <aws/s3/model/GetBucketLocationResult.h>
  32. #include <aws/s3/model/GetBucketLoggingResult.h>
  33. #include <aws/s3/model/GetBucketMetricsConfigurationResult.h>
  34. #include <aws/s3/model/GetBucketNotificationConfigurationResult.h>
  35. #include <aws/s3/model/GetBucketOwnershipControlsResult.h>
  36. #include <aws/s3/model/GetBucketPolicyResult.h>
  37. #include <aws/s3/model/GetBucketPolicyStatusResult.h>
  38. #include <aws/s3/model/GetBucketReplicationResult.h>
  39. #include <aws/s3/model/GetBucketRequestPaymentResult.h>
  40. #include <aws/s3/model/GetBucketTaggingResult.h>
  41. #include <aws/s3/model/GetBucketVersioningResult.h>
  42. #include <aws/s3/model/GetBucketWebsiteResult.h>
  43. #include <aws/s3/model/GetObjectResult.h>
  44. #include <aws/s3/model/GetObjectAclResult.h>
  45. #include <aws/s3/model/GetObjectLegalHoldResult.h>
  46. #include <aws/s3/model/GetObjectLockConfigurationResult.h>
  47. #include <aws/s3/model/GetObjectRetentionResult.h>
  48. #include <aws/s3/model/GetObjectTaggingResult.h>
  49. #include <aws/s3/model/GetObjectTorrentResult.h>
  50. #include <aws/s3/model/GetPublicAccessBlockResult.h>
  51. #include <aws/s3/model/HeadObjectResult.h>
  52. #include <aws/s3/model/ListBucketAnalyticsConfigurationsResult.h>
  53. #include <aws/s3/model/ListBucketIntelligentTieringConfigurationsResult.h>
  54. #include <aws/s3/model/ListBucketInventoryConfigurationsResult.h>
  55. #include <aws/s3/model/ListBucketMetricsConfigurationsResult.h>
  56. #include <aws/s3/model/ListBucketsResult.h>
  57. #include <aws/s3/model/ListMultipartUploadsResult.h>
  58. #include <aws/s3/model/ListObjectVersionsResult.h>
  59. #include <aws/s3/model/ListObjectsResult.h>
  60. #include <aws/s3/model/ListObjectsV2Result.h>
  61. #include <aws/s3/model/ListPartsResult.h>
  62. #include <aws/s3/model/PutObjectResult.h>
  63. #include <aws/s3/model/PutObjectAclResult.h>
  64. #include <aws/s3/model/PutObjectLegalHoldResult.h>
  65. #include <aws/s3/model/PutObjectLockConfigurationResult.h>
  66. #include <aws/s3/model/PutObjectRetentionResult.h>
  67. #include <aws/s3/model/PutObjectTaggingResult.h>
  68. #include <aws/s3/model/RestoreObjectResult.h>
  69. #include <aws/s3/model/UploadPartResult.h>
  70. #include <aws/s3/model/UploadPartCopyResult.h>
  71. #include <aws/core/NoResult.h>
  72. #include <aws/core/client/AsyncCallerContext.h>
  73. #include <aws/core/http/HttpTypes.h>
  74. #include <future>
  75. #include <functional>
  76. namespace Aws
  77. {
  78. namespace Http
  79. {
  80. class HttpClient;
  81. class HttpClientFactory;
  82. } // namespace Http
  83. namespace Utils
  84. {
  85. template< typename R, typename E> class Outcome;
  86. namespace Threading
  87. {
  88. class Executor;
  89. } // namespace Threading
  90. namespace Xml
  91. {
  92. class XmlDocument;
  93. } // namespace Xml
  94. } // namespace Utils
  95. namespace Auth
  96. {
  97. class AWSCredentials;
  98. class AWSCredentialsProvider;
  99. } // namespace Auth
  100. namespace Client
  101. {
  102. class RetryStrategy;
  103. } // namespace Client
  104. namespace S3
  105. {
  106. namespace Model
  107. {
  108. class AbortMultipartUploadRequest;
  109. class CompleteMultipartUploadRequest;
  110. class CopyObjectRequest;
  111. class CreateBucketRequest;
  112. class CreateMultipartUploadRequest;
  113. class DeleteBucketRequest;
  114. class DeleteBucketAnalyticsConfigurationRequest;
  115. class DeleteBucketCorsRequest;
  116. class DeleteBucketEncryptionRequest;
  117. class DeleteBucketIntelligentTieringConfigurationRequest;
  118. class DeleteBucketInventoryConfigurationRequest;
  119. class DeleteBucketLifecycleRequest;
  120. class DeleteBucketMetricsConfigurationRequest;
  121. class DeleteBucketOwnershipControlsRequest;
  122. class DeleteBucketPolicyRequest;
  123. class DeleteBucketReplicationRequest;
  124. class DeleteBucketTaggingRequest;
  125. class DeleteBucketWebsiteRequest;
  126. class DeleteObjectRequest;
  127. class DeleteObjectTaggingRequest;
  128. class DeleteObjectsRequest;
  129. class DeletePublicAccessBlockRequest;
  130. class GetBucketAccelerateConfigurationRequest;
  131. class GetBucketAclRequest;
  132. class GetBucketAnalyticsConfigurationRequest;
  133. class GetBucketCorsRequest;
  134. class GetBucketEncryptionRequest;
  135. class GetBucketIntelligentTieringConfigurationRequest;
  136. class GetBucketInventoryConfigurationRequest;
  137. class GetBucketLifecycleConfigurationRequest;
  138. class GetBucketLocationRequest;
  139. class GetBucketLoggingRequest;
  140. class GetBucketMetricsConfigurationRequest;
  141. class GetBucketNotificationConfigurationRequest;
  142. class GetBucketOwnershipControlsRequest;
  143. class GetBucketPolicyRequest;
  144. class GetBucketPolicyStatusRequest;
  145. class GetBucketReplicationRequest;
  146. class GetBucketRequestPaymentRequest;
  147. class GetBucketTaggingRequest;
  148. class GetBucketVersioningRequest;
  149. class GetBucketWebsiteRequest;
  150. class GetObjectRequest;
  151. class GetObjectAclRequest;
  152. class GetObjectLegalHoldRequest;
  153. class GetObjectLockConfigurationRequest;
  154. class GetObjectRetentionRequest;
  155. class GetObjectTaggingRequest;
  156. class GetObjectTorrentRequest;
  157. class GetPublicAccessBlockRequest;
  158. class HeadBucketRequest;
  159. class HeadObjectRequest;
  160. class ListBucketAnalyticsConfigurationsRequest;
  161. class ListBucketIntelligentTieringConfigurationsRequest;
  162. class ListBucketInventoryConfigurationsRequest;
  163. class ListBucketMetricsConfigurationsRequest;
  164. class ListMultipartUploadsRequest;
  165. class ListObjectVersionsRequest;
  166. class ListObjectsRequest;
  167. class ListObjectsV2Request;
  168. class ListPartsRequest;
  169. class PutBucketAccelerateConfigurationRequest;
  170. class PutBucketAclRequest;
  171. class PutBucketAnalyticsConfigurationRequest;
  172. class PutBucketCorsRequest;
  173. class PutBucketEncryptionRequest;
  174. class PutBucketIntelligentTieringConfigurationRequest;
  175. class PutBucketInventoryConfigurationRequest;
  176. class PutBucketLifecycleConfigurationRequest;
  177. class PutBucketLoggingRequest;
  178. class PutBucketMetricsConfigurationRequest;
  179. class PutBucketNotificationConfigurationRequest;
  180. class PutBucketOwnershipControlsRequest;
  181. class PutBucketPolicyRequest;
  182. class PutBucketReplicationRequest;
  183. class PutBucketRequestPaymentRequest;
  184. class PutBucketTaggingRequest;
  185. class PutBucketVersioningRequest;
  186. class PutBucketWebsiteRequest;
  187. class PutObjectRequest;
  188. class PutObjectAclRequest;
  189. class PutObjectLegalHoldRequest;
  190. class PutObjectLockConfigurationRequest;
  191. class PutObjectRetentionRequest;
  192. class PutObjectTaggingRequest;
  193. class PutPublicAccessBlockRequest;
  194. class RestoreObjectRequest;
  195. class SelectObjectContentRequest;
  196. class UploadPartRequest;
  197. class UploadPartCopyRequest;
  198. class WriteGetObjectResponseRequest;
  199. typedef Aws::Utils::Outcome<AbortMultipartUploadResult, S3Error> AbortMultipartUploadOutcome;
  200. typedef Aws::Utils::Outcome<CompleteMultipartUploadResult, S3Error> CompleteMultipartUploadOutcome;
  201. typedef Aws::Utils::Outcome<CopyObjectResult, S3Error> CopyObjectOutcome;
  202. typedef Aws::Utils::Outcome<CreateBucketResult, S3Error> CreateBucketOutcome;
  203. typedef Aws::Utils::Outcome<CreateMultipartUploadResult, S3Error> CreateMultipartUploadOutcome;
  204. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketOutcome;
  205. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketAnalyticsConfigurationOutcome;
  206. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketCorsOutcome;
  207. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketEncryptionOutcome;
  208. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketIntelligentTieringConfigurationOutcome;
  209. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketInventoryConfigurationOutcome;
  210. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketLifecycleOutcome;
  211. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketMetricsConfigurationOutcome;
  212. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketOwnershipControlsOutcome;
  213. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketPolicyOutcome;
  214. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketReplicationOutcome;
  215. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketTaggingOutcome;
  216. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketWebsiteOutcome;
  217. typedef Aws::Utils::Outcome<DeleteObjectResult, S3Error> DeleteObjectOutcome;
  218. typedef Aws::Utils::Outcome<DeleteObjectTaggingResult, S3Error> DeleteObjectTaggingOutcome;
  219. typedef Aws::Utils::Outcome<DeleteObjectsResult, S3Error> DeleteObjectsOutcome;
  220. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeletePublicAccessBlockOutcome;
  221. typedef Aws::Utils::Outcome<GetBucketAccelerateConfigurationResult, S3Error> GetBucketAccelerateConfigurationOutcome;
  222. typedef Aws::Utils::Outcome<GetBucketAclResult, S3Error> GetBucketAclOutcome;
  223. typedef Aws::Utils::Outcome<GetBucketAnalyticsConfigurationResult, S3Error> GetBucketAnalyticsConfigurationOutcome;
  224. typedef Aws::Utils::Outcome<GetBucketCorsResult, S3Error> GetBucketCorsOutcome;
  225. typedef Aws::Utils::Outcome<GetBucketEncryptionResult, S3Error> GetBucketEncryptionOutcome;
  226. typedef Aws::Utils::Outcome<GetBucketIntelligentTieringConfigurationResult, S3Error> GetBucketIntelligentTieringConfigurationOutcome;
  227. typedef Aws::Utils::Outcome<GetBucketInventoryConfigurationResult, S3Error> GetBucketInventoryConfigurationOutcome;
  228. typedef Aws::Utils::Outcome<GetBucketLifecycleConfigurationResult, S3Error> GetBucketLifecycleConfigurationOutcome;
  229. typedef Aws::Utils::Outcome<GetBucketLocationResult, S3Error> GetBucketLocationOutcome;
  230. typedef Aws::Utils::Outcome<GetBucketLoggingResult, S3Error> GetBucketLoggingOutcome;
  231. typedef Aws::Utils::Outcome<GetBucketMetricsConfigurationResult, S3Error> GetBucketMetricsConfigurationOutcome;
  232. typedef Aws::Utils::Outcome<GetBucketNotificationConfigurationResult, S3Error> GetBucketNotificationConfigurationOutcome;
  233. typedef Aws::Utils::Outcome<GetBucketOwnershipControlsResult, S3Error> GetBucketOwnershipControlsOutcome;
  234. typedef Aws::Utils::Outcome<GetBucketPolicyResult, S3Error> GetBucketPolicyOutcome;
  235. typedef Aws::Utils::Outcome<GetBucketPolicyStatusResult, S3Error> GetBucketPolicyStatusOutcome;
  236. typedef Aws::Utils::Outcome<GetBucketReplicationResult, S3Error> GetBucketReplicationOutcome;
  237. typedef Aws::Utils::Outcome<GetBucketRequestPaymentResult, S3Error> GetBucketRequestPaymentOutcome;
  238. typedef Aws::Utils::Outcome<GetBucketTaggingResult, S3Error> GetBucketTaggingOutcome;
  239. typedef Aws::Utils::Outcome<GetBucketVersioningResult, S3Error> GetBucketVersioningOutcome;
  240. typedef Aws::Utils::Outcome<GetBucketWebsiteResult, S3Error> GetBucketWebsiteOutcome;
  241. typedef Aws::Utils::Outcome<GetObjectResult, S3Error> GetObjectOutcome;
  242. typedef Aws::Utils::Outcome<GetObjectAclResult, S3Error> GetObjectAclOutcome;
  243. typedef Aws::Utils::Outcome<GetObjectLegalHoldResult, S3Error> GetObjectLegalHoldOutcome;
  244. typedef Aws::Utils::Outcome<GetObjectLockConfigurationResult, S3Error> GetObjectLockConfigurationOutcome;
  245. typedef Aws::Utils::Outcome<GetObjectRetentionResult, S3Error> GetObjectRetentionOutcome;
  246. typedef Aws::Utils::Outcome<GetObjectTaggingResult, S3Error> GetObjectTaggingOutcome;
  247. typedef Aws::Utils::Outcome<GetObjectTorrentResult, S3Error> GetObjectTorrentOutcome;
  248. typedef Aws::Utils::Outcome<GetPublicAccessBlockResult, S3Error> GetPublicAccessBlockOutcome;
  249. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> HeadBucketOutcome;
  250. typedef Aws::Utils::Outcome<HeadObjectResult, S3Error> HeadObjectOutcome;
  251. typedef Aws::Utils::Outcome<ListBucketAnalyticsConfigurationsResult, S3Error> ListBucketAnalyticsConfigurationsOutcome;
  252. typedef Aws::Utils::Outcome<ListBucketIntelligentTieringConfigurationsResult, S3Error> ListBucketIntelligentTieringConfigurationsOutcome;
  253. typedef Aws::Utils::Outcome<ListBucketInventoryConfigurationsResult, S3Error> ListBucketInventoryConfigurationsOutcome;
  254. typedef Aws::Utils::Outcome<ListBucketMetricsConfigurationsResult, S3Error> ListBucketMetricsConfigurationsOutcome;
  255. typedef Aws::Utils::Outcome<ListBucketsResult, S3Error> ListBucketsOutcome;
  256. typedef Aws::Utils::Outcome<ListMultipartUploadsResult, S3Error> ListMultipartUploadsOutcome;
  257. typedef Aws::Utils::Outcome<ListObjectVersionsResult, S3Error> ListObjectVersionsOutcome;
  258. typedef Aws::Utils::Outcome<ListObjectsResult, S3Error> ListObjectsOutcome;
  259. typedef Aws::Utils::Outcome<ListObjectsV2Result, S3Error> ListObjectsV2Outcome;
  260. typedef Aws::Utils::Outcome<ListPartsResult, S3Error> ListPartsOutcome;
  261. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketAccelerateConfigurationOutcome;
  262. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketAclOutcome;
  263. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketAnalyticsConfigurationOutcome;
  264. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketCorsOutcome;
  265. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketEncryptionOutcome;
  266. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketIntelligentTieringConfigurationOutcome;
  267. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketInventoryConfigurationOutcome;
  268. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketLifecycleConfigurationOutcome;
  269. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketLoggingOutcome;
  270. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketMetricsConfigurationOutcome;
  271. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketNotificationConfigurationOutcome;
  272. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketOwnershipControlsOutcome;
  273. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketPolicyOutcome;
  274. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketReplicationOutcome;
  275. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketRequestPaymentOutcome;
  276. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketTaggingOutcome;
  277. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketVersioningOutcome;
  278. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketWebsiteOutcome;
  279. typedef Aws::Utils::Outcome<PutObjectResult, S3Error> PutObjectOutcome;
  280. typedef Aws::Utils::Outcome<PutObjectAclResult, S3Error> PutObjectAclOutcome;
  281. typedef Aws::Utils::Outcome<PutObjectLegalHoldResult, S3Error> PutObjectLegalHoldOutcome;
  282. typedef Aws::Utils::Outcome<PutObjectLockConfigurationResult, S3Error> PutObjectLockConfigurationOutcome;
  283. typedef Aws::Utils::Outcome<PutObjectRetentionResult, S3Error> PutObjectRetentionOutcome;
  284. typedef Aws::Utils::Outcome<PutObjectTaggingResult, S3Error> PutObjectTaggingOutcome;
  285. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutPublicAccessBlockOutcome;
  286. typedef Aws::Utils::Outcome<RestoreObjectResult, S3Error> RestoreObjectOutcome;
  287. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> SelectObjectContentOutcome;
  288. typedef Aws::Utils::Outcome<UploadPartResult, S3Error> UploadPartOutcome;
  289. typedef Aws::Utils::Outcome<UploadPartCopyResult, S3Error> UploadPartCopyOutcome;
  290. typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> WriteGetObjectResponseOutcome;
  291. typedef std::future<AbortMultipartUploadOutcome> AbortMultipartUploadOutcomeCallable;
  292. typedef std::future<CompleteMultipartUploadOutcome> CompleteMultipartUploadOutcomeCallable;
  293. typedef std::future<CopyObjectOutcome> CopyObjectOutcomeCallable;
  294. typedef std::future<CreateBucketOutcome> CreateBucketOutcomeCallable;
  295. typedef std::future<CreateMultipartUploadOutcome> CreateMultipartUploadOutcomeCallable;
  296. typedef std::future<DeleteBucketOutcome> DeleteBucketOutcomeCallable;
  297. typedef std::future<DeleteBucketAnalyticsConfigurationOutcome> DeleteBucketAnalyticsConfigurationOutcomeCallable;
  298. typedef std::future<DeleteBucketCorsOutcome> DeleteBucketCorsOutcomeCallable;
  299. typedef std::future<DeleteBucketEncryptionOutcome> DeleteBucketEncryptionOutcomeCallable;
  300. typedef std::future<DeleteBucketIntelligentTieringConfigurationOutcome> DeleteBucketIntelligentTieringConfigurationOutcomeCallable;
  301. typedef std::future<DeleteBucketInventoryConfigurationOutcome> DeleteBucketInventoryConfigurationOutcomeCallable;
  302. typedef std::future<DeleteBucketLifecycleOutcome> DeleteBucketLifecycleOutcomeCallable;
  303. typedef std::future<DeleteBucketMetricsConfigurationOutcome> DeleteBucketMetricsConfigurationOutcomeCallable;
  304. typedef std::future<DeleteBucketOwnershipControlsOutcome> DeleteBucketOwnershipControlsOutcomeCallable;
  305. typedef std::future<DeleteBucketPolicyOutcome> DeleteBucketPolicyOutcomeCallable;
  306. typedef std::future<DeleteBucketReplicationOutcome> DeleteBucketReplicationOutcomeCallable;
  307. typedef std::future<DeleteBucketTaggingOutcome> DeleteBucketTaggingOutcomeCallable;
  308. typedef std::future<DeleteBucketWebsiteOutcome> DeleteBucketWebsiteOutcomeCallable;
  309. typedef std::future<DeleteObjectOutcome> DeleteObjectOutcomeCallable;
  310. typedef std::future<DeleteObjectTaggingOutcome> DeleteObjectTaggingOutcomeCallable;
  311. typedef std::future<DeleteObjectsOutcome> DeleteObjectsOutcomeCallable;
  312. typedef std::future<DeletePublicAccessBlockOutcome> DeletePublicAccessBlockOutcomeCallable;
  313. typedef std::future<GetBucketAccelerateConfigurationOutcome> GetBucketAccelerateConfigurationOutcomeCallable;
  314. typedef std::future<GetBucketAclOutcome> GetBucketAclOutcomeCallable;
  315. typedef std::future<GetBucketAnalyticsConfigurationOutcome> GetBucketAnalyticsConfigurationOutcomeCallable;
  316. typedef std::future<GetBucketCorsOutcome> GetBucketCorsOutcomeCallable;
  317. typedef std::future<GetBucketEncryptionOutcome> GetBucketEncryptionOutcomeCallable;
  318. typedef std::future<GetBucketIntelligentTieringConfigurationOutcome> GetBucketIntelligentTieringConfigurationOutcomeCallable;
  319. typedef std::future<GetBucketInventoryConfigurationOutcome> GetBucketInventoryConfigurationOutcomeCallable;
  320. typedef std::future<GetBucketLifecycleConfigurationOutcome> GetBucketLifecycleConfigurationOutcomeCallable;
  321. typedef std::future<GetBucketLocationOutcome> GetBucketLocationOutcomeCallable;
  322. typedef std::future<GetBucketLoggingOutcome> GetBucketLoggingOutcomeCallable;
  323. typedef std::future<GetBucketMetricsConfigurationOutcome> GetBucketMetricsConfigurationOutcomeCallable;
  324. typedef std::future<GetBucketNotificationConfigurationOutcome> GetBucketNotificationConfigurationOutcomeCallable;
  325. typedef std::future<GetBucketOwnershipControlsOutcome> GetBucketOwnershipControlsOutcomeCallable;
  326. typedef std::future<GetBucketPolicyOutcome> GetBucketPolicyOutcomeCallable;
  327. typedef std::future<GetBucketPolicyStatusOutcome> GetBucketPolicyStatusOutcomeCallable;
  328. typedef std::future<GetBucketReplicationOutcome> GetBucketReplicationOutcomeCallable;
  329. typedef std::future<GetBucketRequestPaymentOutcome> GetBucketRequestPaymentOutcomeCallable;
  330. typedef std::future<GetBucketTaggingOutcome> GetBucketTaggingOutcomeCallable;
  331. typedef std::future<GetBucketVersioningOutcome> GetBucketVersioningOutcomeCallable;
  332. typedef std::future<GetBucketWebsiteOutcome> GetBucketWebsiteOutcomeCallable;
  333. typedef std::future<GetObjectOutcome> GetObjectOutcomeCallable;
  334. typedef std::future<GetObjectAclOutcome> GetObjectAclOutcomeCallable;
  335. typedef std::future<GetObjectLegalHoldOutcome> GetObjectLegalHoldOutcomeCallable;
  336. typedef std::future<GetObjectLockConfigurationOutcome> GetObjectLockConfigurationOutcomeCallable;
  337. typedef std::future<GetObjectRetentionOutcome> GetObjectRetentionOutcomeCallable;
  338. typedef std::future<GetObjectTaggingOutcome> GetObjectTaggingOutcomeCallable;
  339. typedef std::future<GetObjectTorrentOutcome> GetObjectTorrentOutcomeCallable;
  340. typedef std::future<GetPublicAccessBlockOutcome> GetPublicAccessBlockOutcomeCallable;
  341. typedef std::future<HeadBucketOutcome> HeadBucketOutcomeCallable;
  342. typedef std::future<HeadObjectOutcome> HeadObjectOutcomeCallable;
  343. typedef std::future<ListBucketAnalyticsConfigurationsOutcome> ListBucketAnalyticsConfigurationsOutcomeCallable;
  344. typedef std::future<ListBucketIntelligentTieringConfigurationsOutcome> ListBucketIntelligentTieringConfigurationsOutcomeCallable;
  345. typedef std::future<ListBucketInventoryConfigurationsOutcome> ListBucketInventoryConfigurationsOutcomeCallable;
  346. typedef std::future<ListBucketMetricsConfigurationsOutcome> ListBucketMetricsConfigurationsOutcomeCallable;
  347. typedef std::future<ListBucketsOutcome> ListBucketsOutcomeCallable;
  348. typedef std::future<ListMultipartUploadsOutcome> ListMultipartUploadsOutcomeCallable;
  349. typedef std::future<ListObjectVersionsOutcome> ListObjectVersionsOutcomeCallable;
  350. typedef std::future<ListObjectsOutcome> ListObjectsOutcomeCallable;
  351. typedef std::future<ListObjectsV2Outcome> ListObjectsV2OutcomeCallable;
  352. typedef std::future<ListPartsOutcome> ListPartsOutcomeCallable;
  353. typedef std::future<PutBucketAccelerateConfigurationOutcome> PutBucketAccelerateConfigurationOutcomeCallable;
  354. typedef std::future<PutBucketAclOutcome> PutBucketAclOutcomeCallable;
  355. typedef std::future<PutBucketAnalyticsConfigurationOutcome> PutBucketAnalyticsConfigurationOutcomeCallable;
  356. typedef std::future<PutBucketCorsOutcome> PutBucketCorsOutcomeCallable;
  357. typedef std::future<PutBucketEncryptionOutcome> PutBucketEncryptionOutcomeCallable;
  358. typedef std::future<PutBucketIntelligentTieringConfigurationOutcome> PutBucketIntelligentTieringConfigurationOutcomeCallable;
  359. typedef std::future<PutBucketInventoryConfigurationOutcome> PutBucketInventoryConfigurationOutcomeCallable;
  360. typedef std::future<PutBucketLifecycleConfigurationOutcome> PutBucketLifecycleConfigurationOutcomeCallable;
  361. typedef std::future<PutBucketLoggingOutcome> PutBucketLoggingOutcomeCallable;
  362. typedef std::future<PutBucketMetricsConfigurationOutcome> PutBucketMetricsConfigurationOutcomeCallable;
  363. typedef std::future<PutBucketNotificationConfigurationOutcome> PutBucketNotificationConfigurationOutcomeCallable;
  364. typedef std::future<PutBucketOwnershipControlsOutcome> PutBucketOwnershipControlsOutcomeCallable;
  365. typedef std::future<PutBucketPolicyOutcome> PutBucketPolicyOutcomeCallable;
  366. typedef std::future<PutBucketReplicationOutcome> PutBucketReplicationOutcomeCallable;
  367. typedef std::future<PutBucketRequestPaymentOutcome> PutBucketRequestPaymentOutcomeCallable;
  368. typedef std::future<PutBucketTaggingOutcome> PutBucketTaggingOutcomeCallable;
  369. typedef std::future<PutBucketVersioningOutcome> PutBucketVersioningOutcomeCallable;
  370. typedef std::future<PutBucketWebsiteOutcome> PutBucketWebsiteOutcomeCallable;
  371. typedef std::future<PutObjectOutcome> PutObjectOutcomeCallable;
  372. typedef std::future<PutObjectAclOutcome> PutObjectAclOutcomeCallable;
  373. typedef std::future<PutObjectLegalHoldOutcome> PutObjectLegalHoldOutcomeCallable;
  374. typedef std::future<PutObjectLockConfigurationOutcome> PutObjectLockConfigurationOutcomeCallable;
  375. typedef std::future<PutObjectRetentionOutcome> PutObjectRetentionOutcomeCallable;
  376. typedef std::future<PutObjectTaggingOutcome> PutObjectTaggingOutcomeCallable;
  377. typedef std::future<PutPublicAccessBlockOutcome> PutPublicAccessBlockOutcomeCallable;
  378. typedef std::future<RestoreObjectOutcome> RestoreObjectOutcomeCallable;
  379. typedef std::future<SelectObjectContentOutcome> SelectObjectContentOutcomeCallable;
  380. typedef std::future<UploadPartOutcome> UploadPartOutcomeCallable;
  381. typedef std::future<UploadPartCopyOutcome> UploadPartCopyOutcomeCallable;
  382. typedef std::future<WriteGetObjectResponseOutcome> WriteGetObjectResponseOutcomeCallable;
  383. } // namespace Model
  384. namespace SSEHeaders
  385. {
  386. static const char SERVER_SIDE_ENCRYPTION[] = "x-amz-server-side-encryption";
  387. static const char SERVER_SIDE_ENCRYPTION_AWS_KMS_KEY_ID[] = "x-amz-server-side-encryption-aws-kms-key-id";
  388. static const char SERVER_SIDE_ENCRYPTION_CUSTOMER_ALGORITHM[] = "x-amz-server-side-encryption-customer-algorithm";
  389. static const char SERVER_SIDE_ENCRYPTION_CUSTOMER_KEY[] = "x-amz-server-side-encryption-customer-key";
  390. static const char SERVER_SIDE_ENCRYPTION_CUSTOMER_KEY_MD5[] = "x-amz-server-side-encryption-customer-key-MD5";
  391. } // SS3Headers
  392. class S3Client;
  393. typedef std::function<void(const S3Client*, const Model::AbortMultipartUploadRequest&, const Model::AbortMultipartUploadOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AbortMultipartUploadResponseReceivedHandler;
  394. typedef std::function<void(const S3Client*, const Model::CompleteMultipartUploadRequest&, const Model::CompleteMultipartUploadOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CompleteMultipartUploadResponseReceivedHandler;
  395. typedef std::function<void(const S3Client*, const Model::CopyObjectRequest&, const Model::CopyObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CopyObjectResponseReceivedHandler;
  396. typedef std::function<void(const S3Client*, const Model::CreateBucketRequest&, const Model::CreateBucketOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateBucketResponseReceivedHandler;
  397. typedef std::function<void(const S3Client*, const Model::CreateMultipartUploadRequest&, const Model::CreateMultipartUploadOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateMultipartUploadResponseReceivedHandler;
  398. typedef std::function<void(const S3Client*, const Model::DeleteBucketRequest&, const Model::DeleteBucketOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketResponseReceivedHandler;
  399. typedef std::function<void(const S3Client*, const Model::DeleteBucketAnalyticsConfigurationRequest&, const Model::DeleteBucketAnalyticsConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketAnalyticsConfigurationResponseReceivedHandler;
  400. typedef std::function<void(const S3Client*, const Model::DeleteBucketCorsRequest&, const Model::DeleteBucketCorsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketCorsResponseReceivedHandler;
  401. typedef std::function<void(const S3Client*, const Model::DeleteBucketEncryptionRequest&, const Model::DeleteBucketEncryptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketEncryptionResponseReceivedHandler;
  402. typedef std::function<void(const S3Client*, const Model::DeleteBucketIntelligentTieringConfigurationRequest&, const Model::DeleteBucketIntelligentTieringConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketIntelligentTieringConfigurationResponseReceivedHandler;
  403. typedef std::function<void(const S3Client*, const Model::DeleteBucketInventoryConfigurationRequest&, const Model::DeleteBucketInventoryConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketInventoryConfigurationResponseReceivedHandler;
  404. typedef std::function<void(const S3Client*, const Model::DeleteBucketLifecycleRequest&, const Model::DeleteBucketLifecycleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketLifecycleResponseReceivedHandler;
  405. typedef std::function<void(const S3Client*, const Model::DeleteBucketMetricsConfigurationRequest&, const Model::DeleteBucketMetricsConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketMetricsConfigurationResponseReceivedHandler;
  406. typedef std::function<void(const S3Client*, const Model::DeleteBucketOwnershipControlsRequest&, const Model::DeleteBucketOwnershipControlsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketOwnershipControlsResponseReceivedHandler;
  407. typedef std::function<void(const S3Client*, const Model::DeleteBucketPolicyRequest&, const Model::DeleteBucketPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketPolicyResponseReceivedHandler;
  408. typedef std::function<void(const S3Client*, const Model::DeleteBucketReplicationRequest&, const Model::DeleteBucketReplicationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketReplicationResponseReceivedHandler;
  409. typedef std::function<void(const S3Client*, const Model::DeleteBucketTaggingRequest&, const Model::DeleteBucketTaggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketTaggingResponseReceivedHandler;
  410. typedef std::function<void(const S3Client*, const Model::DeleteBucketWebsiteRequest&, const Model::DeleteBucketWebsiteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketWebsiteResponseReceivedHandler;
  411. typedef std::function<void(const S3Client*, const Model::DeleteObjectRequest&, const Model::DeleteObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteObjectResponseReceivedHandler;
  412. typedef std::function<void(const S3Client*, const Model::DeleteObjectTaggingRequest&, const Model::DeleteObjectTaggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteObjectTaggingResponseReceivedHandler;
  413. typedef std::function<void(const S3Client*, const Model::DeleteObjectsRequest&, const Model::DeleteObjectsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteObjectsResponseReceivedHandler;
  414. typedef std::function<void(const S3Client*, const Model::DeletePublicAccessBlockRequest&, const Model::DeletePublicAccessBlockOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeletePublicAccessBlockResponseReceivedHandler;
  415. typedef std::function<void(const S3Client*, const Model::GetBucketAccelerateConfigurationRequest&, const Model::GetBucketAccelerateConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketAccelerateConfigurationResponseReceivedHandler;
  416. typedef std::function<void(const S3Client*, const Model::GetBucketAclRequest&, const Model::GetBucketAclOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketAclResponseReceivedHandler;
  417. typedef std::function<void(const S3Client*, const Model::GetBucketAnalyticsConfigurationRequest&, const Model::GetBucketAnalyticsConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketAnalyticsConfigurationResponseReceivedHandler;
  418. typedef std::function<void(const S3Client*, const Model::GetBucketCorsRequest&, const Model::GetBucketCorsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketCorsResponseReceivedHandler;
  419. typedef std::function<void(const S3Client*, const Model::GetBucketEncryptionRequest&, const Model::GetBucketEncryptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketEncryptionResponseReceivedHandler;
  420. typedef std::function<void(const S3Client*, const Model::GetBucketIntelligentTieringConfigurationRequest&, const Model::GetBucketIntelligentTieringConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketIntelligentTieringConfigurationResponseReceivedHandler;
  421. typedef std::function<void(const S3Client*, const Model::GetBucketInventoryConfigurationRequest&, const Model::GetBucketInventoryConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketInventoryConfigurationResponseReceivedHandler;
  422. typedef std::function<void(const S3Client*, const Model::GetBucketLifecycleConfigurationRequest&, const Model::GetBucketLifecycleConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketLifecycleConfigurationResponseReceivedHandler;
  423. typedef std::function<void(const S3Client*, const Model::GetBucketLocationRequest&, const Model::GetBucketLocationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketLocationResponseReceivedHandler;
  424. typedef std::function<void(const S3Client*, const Model::GetBucketLoggingRequest&, const Model::GetBucketLoggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketLoggingResponseReceivedHandler;
  425. typedef std::function<void(const S3Client*, const Model::GetBucketMetricsConfigurationRequest&, const Model::GetBucketMetricsConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketMetricsConfigurationResponseReceivedHandler;
  426. typedef std::function<void(const S3Client*, const Model::GetBucketNotificationConfigurationRequest&, const Model::GetBucketNotificationConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketNotificationConfigurationResponseReceivedHandler;
  427. typedef std::function<void(const S3Client*, const Model::GetBucketOwnershipControlsRequest&, const Model::GetBucketOwnershipControlsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketOwnershipControlsResponseReceivedHandler;
  428. typedef std::function<void(const S3Client*, const Model::GetBucketPolicyRequest&, Model::GetBucketPolicyOutcome, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketPolicyResponseReceivedHandler;
  429. typedef std::function<void(const S3Client*, const Model::GetBucketPolicyStatusRequest&, const Model::GetBucketPolicyStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketPolicyStatusResponseReceivedHandler;
  430. typedef std::function<void(const S3Client*, const Model::GetBucketReplicationRequest&, const Model::GetBucketReplicationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketReplicationResponseReceivedHandler;
  431. typedef std::function<void(const S3Client*, const Model::GetBucketRequestPaymentRequest&, const Model::GetBucketRequestPaymentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketRequestPaymentResponseReceivedHandler;
  432. typedef std::function<void(const S3Client*, const Model::GetBucketTaggingRequest&, const Model::GetBucketTaggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketTaggingResponseReceivedHandler;
  433. typedef std::function<void(const S3Client*, const Model::GetBucketVersioningRequest&, const Model::GetBucketVersioningOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketVersioningResponseReceivedHandler;
  434. typedef std::function<void(const S3Client*, const Model::GetBucketWebsiteRequest&, const Model::GetBucketWebsiteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketWebsiteResponseReceivedHandler;
  435. typedef std::function<void(const S3Client*, const Model::GetObjectRequest&, Model::GetObjectOutcome, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectResponseReceivedHandler;
  436. typedef std::function<void(const S3Client*, const Model::GetObjectAclRequest&, const Model::GetObjectAclOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectAclResponseReceivedHandler;
  437. typedef std::function<void(const S3Client*, const Model::GetObjectLegalHoldRequest&, const Model::GetObjectLegalHoldOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectLegalHoldResponseReceivedHandler;
  438. typedef std::function<void(const S3Client*, const Model::GetObjectLockConfigurationRequest&, const Model::GetObjectLockConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectLockConfigurationResponseReceivedHandler;
  439. typedef std::function<void(const S3Client*, const Model::GetObjectRetentionRequest&, const Model::GetObjectRetentionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectRetentionResponseReceivedHandler;
  440. typedef std::function<void(const S3Client*, const Model::GetObjectTaggingRequest&, const Model::GetObjectTaggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectTaggingResponseReceivedHandler;
  441. typedef std::function<void(const S3Client*, const Model::GetObjectTorrentRequest&, Model::GetObjectTorrentOutcome, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectTorrentResponseReceivedHandler;
  442. typedef std::function<void(const S3Client*, const Model::GetPublicAccessBlockRequest&, const Model::GetPublicAccessBlockOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetPublicAccessBlockResponseReceivedHandler;
  443. typedef std::function<void(const S3Client*, const Model::HeadBucketRequest&, const Model::HeadBucketOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > HeadBucketResponseReceivedHandler;
  444. typedef std::function<void(const S3Client*, const Model::HeadObjectRequest&, const Model::HeadObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > HeadObjectResponseReceivedHandler;
  445. typedef std::function<void(const S3Client*, const Model::ListBucketAnalyticsConfigurationsRequest&, const Model::ListBucketAnalyticsConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBucketAnalyticsConfigurationsResponseReceivedHandler;
  446. typedef std::function<void(const S3Client*, const Model::ListBucketIntelligentTieringConfigurationsRequest&, const Model::ListBucketIntelligentTieringConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBucketIntelligentTieringConfigurationsResponseReceivedHandler;
  447. typedef std::function<void(const S3Client*, const Model::ListBucketInventoryConfigurationsRequest&, const Model::ListBucketInventoryConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBucketInventoryConfigurationsResponseReceivedHandler;
  448. typedef std::function<void(const S3Client*, const Model::ListBucketMetricsConfigurationsRequest&, const Model::ListBucketMetricsConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBucketMetricsConfigurationsResponseReceivedHandler;
  449. typedef std::function<void(const S3Client*, const Model::ListBucketsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBucketsResponseReceivedHandler;
  450. typedef std::function<void(const S3Client*, const Model::ListMultipartUploadsRequest&, const Model::ListMultipartUploadsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListMultipartUploadsResponseReceivedHandler;
  451. typedef std::function<void(const S3Client*, const Model::ListObjectVersionsRequest&, const Model::ListObjectVersionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListObjectVersionsResponseReceivedHandler;
  452. typedef std::function<void(const S3Client*, const Model::ListObjectsRequest&, const Model::ListObjectsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListObjectsResponseReceivedHandler;
  453. typedef std::function<void(const S3Client*, const Model::ListObjectsV2Request&, const Model::ListObjectsV2Outcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListObjectsV2ResponseReceivedHandler;
  454. typedef std::function<void(const S3Client*, const Model::ListPartsRequest&, const Model::ListPartsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListPartsResponseReceivedHandler;
  455. typedef std::function<void(const S3Client*, const Model::PutBucketAccelerateConfigurationRequest&, const Model::PutBucketAccelerateConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketAccelerateConfigurationResponseReceivedHandler;
  456. typedef std::function<void(const S3Client*, const Model::PutBucketAclRequest&, const Model::PutBucketAclOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketAclResponseReceivedHandler;
  457. typedef std::function<void(const S3Client*, const Model::PutBucketAnalyticsConfigurationRequest&, const Model::PutBucketAnalyticsConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketAnalyticsConfigurationResponseReceivedHandler;
  458. typedef std::function<void(const S3Client*, const Model::PutBucketCorsRequest&, const Model::PutBucketCorsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketCorsResponseReceivedHandler;
  459. typedef std::function<void(const S3Client*, const Model::PutBucketEncryptionRequest&, const Model::PutBucketEncryptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketEncryptionResponseReceivedHandler;
  460. typedef std::function<void(const S3Client*, const Model::PutBucketIntelligentTieringConfigurationRequest&, const Model::PutBucketIntelligentTieringConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketIntelligentTieringConfigurationResponseReceivedHandler;
  461. typedef std::function<void(const S3Client*, const Model::PutBucketInventoryConfigurationRequest&, const Model::PutBucketInventoryConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketInventoryConfigurationResponseReceivedHandler;
  462. typedef std::function<void(const S3Client*, const Model::PutBucketLifecycleConfigurationRequest&, const Model::PutBucketLifecycleConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketLifecycleConfigurationResponseReceivedHandler;
  463. typedef std::function<void(const S3Client*, const Model::PutBucketLoggingRequest&, const Model::PutBucketLoggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketLoggingResponseReceivedHandler;
  464. typedef std::function<void(const S3Client*, const Model::PutBucketMetricsConfigurationRequest&, const Model::PutBucketMetricsConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketMetricsConfigurationResponseReceivedHandler;
  465. typedef std::function<void(const S3Client*, const Model::PutBucketNotificationConfigurationRequest&, const Model::PutBucketNotificationConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketNotificationConfigurationResponseReceivedHandler;
  466. typedef std::function<void(const S3Client*, const Model::PutBucketOwnershipControlsRequest&, const Model::PutBucketOwnershipControlsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketOwnershipControlsResponseReceivedHandler;
  467. typedef std::function<void(const S3Client*, const Model::PutBucketPolicyRequest&, const Model::PutBucketPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketPolicyResponseReceivedHandler;
  468. typedef std::function<void(const S3Client*, const Model::PutBucketReplicationRequest&, const Model::PutBucketReplicationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketReplicationResponseReceivedHandler;
  469. typedef std::function<void(const S3Client*, const Model::PutBucketRequestPaymentRequest&, const Model::PutBucketRequestPaymentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketRequestPaymentResponseReceivedHandler;
  470. typedef std::function<void(const S3Client*, const Model::PutBucketTaggingRequest&, const Model::PutBucketTaggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketTaggingResponseReceivedHandler;
  471. typedef std::function<void(const S3Client*, const Model::PutBucketVersioningRequest&, const Model::PutBucketVersioningOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketVersioningResponseReceivedHandler;
  472. typedef std::function<void(const S3Client*, const Model::PutBucketWebsiteRequest&, const Model::PutBucketWebsiteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketWebsiteResponseReceivedHandler;
  473. typedef std::function<void(const S3Client*, const Model::PutObjectRequest&, const Model::PutObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutObjectResponseReceivedHandler;
  474. typedef std::function<void(const S3Client*, const Model::PutObjectAclRequest&, const Model::PutObjectAclOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutObjectAclResponseReceivedHandler;
  475. typedef std::function<void(const S3Client*, const Model::PutObjectLegalHoldRequest&, const Model::PutObjectLegalHoldOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutObjectLegalHoldResponseReceivedHandler;
  476. typedef std::function<void(const S3Client*, const Model::PutObjectLockConfigurationRequest&, const Model::PutObjectLockConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutObjectLockConfigurationResponseReceivedHandler;
  477. typedef std::function<void(const S3Client*, const Model::PutObjectRetentionRequest&, const Model::PutObjectRetentionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutObjectRetentionResponseReceivedHandler;
  478. typedef std::function<void(const S3Client*, const Model::PutObjectTaggingRequest&, const Model::PutObjectTaggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutObjectTaggingResponseReceivedHandler;
  479. typedef std::function<void(const S3Client*, const Model::PutPublicAccessBlockRequest&, const Model::PutPublicAccessBlockOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutPublicAccessBlockResponseReceivedHandler;
  480. typedef std::function<void(const S3Client*, const Model::RestoreObjectRequest&, const Model::RestoreObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RestoreObjectResponseReceivedHandler;
  481. typedef std::function<void(const S3Client*, const Model::SelectObjectContentRequest&, const Model::SelectObjectContentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SelectObjectContentResponseReceivedHandler;
  482. typedef std::function<void(const S3Client*, const Model::UploadPartRequest&, const Model::UploadPartOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UploadPartResponseReceivedHandler;
  483. typedef std::function<void(const S3Client*, const Model::UploadPartCopyRequest&, const Model::UploadPartCopyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UploadPartCopyResponseReceivedHandler;
  484. typedef std::function<void(const S3Client*, const Model::WriteGetObjectResponseRequest&, const Model::WriteGetObjectResponseOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > WriteGetObjectResponseResponseReceivedHandler;
  485. // Get endpoint, signer region and signer service name after computing the endpoint.
  486. struct ComputeEndpointResult
  487. {
  488. ComputeEndpointResult(const Aws::String& endpointName = {}, const Aws::String& region = {}, const Aws::String& serviceName = {}) :
  489. endpoint(endpointName), signerRegion(region), signerServiceName(serviceName) {}
  490. Aws::String endpoint;
  491. Aws::String signerRegion;
  492. Aws::String signerServiceName;
  493. };
  494. typedef Aws::Utils::Outcome<ComputeEndpointResult, Aws::Client::AWSError<S3Errors>> ComputeEndpointOutcome;
  495. //max expiration for presigned urls in s3 is 7 days.
  496. static const unsigned MAX_EXPIRATION_SECONDS = 7 * 24 * 60 * 60;
  497. /**
  498. * <p/>
  499. */
  500. enum class US_EAST_1_REGIONAL_ENDPOINT_OPTION
  501. {
  502. NOT_SET,
  503. LEGACY, //stands for using global endpoint for us-east-1,
  504. REGIONAL //stands for using regional endpoint for us-east-1
  505. };
  506. class AWS_S3_API S3Client : public Aws::Client::AWSXMLClient
  507. {
  508. public:
  509. typedef Aws::Client::AWSXMLClient BASECLASS;
  510. /**
  511. * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
  512. * is not specified, it will be initialized to default values.
  513. */
  514. S3Client(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration(), Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy signPayloads = Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy::Never, bool useVirtualAddressing = true, Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION USEast1RegionalEndPointOption = Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION::NOT_SET);
  515. /**
  516. * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
  517. * is not specified, it will be initialized to default values.
  518. */
  519. S3Client(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration(), Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy signPayloads = Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy::Never, bool useVirtualAddressing = true, Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION USEast1RegionalEndPointOption = Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION::NOT_SET);
  520. /**
  521. * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
  522. * the default http client factory will be used
  523. */
  524. S3Client(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
  525. const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration(), Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy signPayloads = Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy::Never, bool useVirtualAddressing = true, Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION USEast1RegionalEndPointOption = Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION::NOT_SET);
  526. virtual ~S3Client();
  527. /**
  528. * <p>This action aborts a multipart upload. After a multipart upload is aborted,
  529. * no additional parts can be uploaded using that upload ID. The storage consumed
  530. * by any previously uploaded parts will be freed. However, if any part uploads are
  531. * currently in progress, those part uploads might or might not succeed. As a
  532. * result, it might be necessary to abort a given multipart upload multiple times
  533. * in order to completely free all storage consumed by all parts. </p> <p>To verify
  534. * that all parts have been removed, so you don't get charged for the part storage,
  535. * you should call the <a
  536. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  537. * action and ensure that the parts list is empty.</p> <p>For information about
  538. * permissions required to use the multipart upload, see <a
  539. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  540. * Upload and Permissions</a>.</p> <p>The following operations are related to
  541. * <code>AbortMultipartUpload</code>:</p> <ul> <li> <p> <a
  542. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  543. * </p> </li> <li> <p> <a
  544. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  545. * </p> </li> <li> <p> <a
  546. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  547. * </p> </li> <li> <p> <a
  548. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  549. * </p> </li> <li> <p> <a
  550. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  551. * </p> </li> </ul><p><h3>See Also:</h3> <a
  552. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortMultipartUpload">AWS
  553. * API Reference</a></p>
  554. */
  555. virtual Model::AbortMultipartUploadOutcome AbortMultipartUpload(const Model::AbortMultipartUploadRequest& request) const;
  556. /**
  557. * <p>This action aborts a multipart upload. After a multipart upload is aborted,
  558. * no additional parts can be uploaded using that upload ID. The storage consumed
  559. * by any previously uploaded parts will be freed. However, if any part uploads are
  560. * currently in progress, those part uploads might or might not succeed. As a
  561. * result, it might be necessary to abort a given multipart upload multiple times
  562. * in order to completely free all storage consumed by all parts. </p> <p>To verify
  563. * that all parts have been removed, so you don't get charged for the part storage,
  564. * you should call the <a
  565. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  566. * action and ensure that the parts list is empty.</p> <p>For information about
  567. * permissions required to use the multipart upload, see <a
  568. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  569. * Upload and Permissions</a>.</p> <p>The following operations are related to
  570. * <code>AbortMultipartUpload</code>:</p> <ul> <li> <p> <a
  571. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  572. * </p> </li> <li> <p> <a
  573. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  574. * </p> </li> <li> <p> <a
  575. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  576. * </p> </li> <li> <p> <a
  577. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  578. * </p> </li> <li> <p> <a
  579. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  580. * </p> </li> </ul><p><h3>See Also:</h3> <a
  581. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortMultipartUpload">AWS
  582. * API Reference</a></p>
  583. *
  584. * returns a future to the operation so that it can be executed in parallel to other requests.
  585. */
  586. virtual Model::AbortMultipartUploadOutcomeCallable AbortMultipartUploadCallable(const Model::AbortMultipartUploadRequest& request) const;
  587. /**
  588. * <p>This action aborts a multipart upload. After a multipart upload is aborted,
  589. * no additional parts can be uploaded using that upload ID. The storage consumed
  590. * by any previously uploaded parts will be freed. However, if any part uploads are
  591. * currently in progress, those part uploads might or might not succeed. As a
  592. * result, it might be necessary to abort a given multipart upload multiple times
  593. * in order to completely free all storage consumed by all parts. </p> <p>To verify
  594. * that all parts have been removed, so you don't get charged for the part storage,
  595. * you should call the <a
  596. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  597. * action and ensure that the parts list is empty.</p> <p>For information about
  598. * permissions required to use the multipart upload, see <a
  599. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  600. * Upload and Permissions</a>.</p> <p>The following operations are related to
  601. * <code>AbortMultipartUpload</code>:</p> <ul> <li> <p> <a
  602. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  603. * </p> </li> <li> <p> <a
  604. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  605. * </p> </li> <li> <p> <a
  606. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  607. * </p> </li> <li> <p> <a
  608. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  609. * </p> </li> <li> <p> <a
  610. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  611. * </p> </li> </ul><p><h3>See Also:</h3> <a
  612. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortMultipartUpload">AWS
  613. * API Reference</a></p>
  614. *
  615. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  616. */
  617. virtual void AbortMultipartUploadAsync(const Model::AbortMultipartUploadRequest& request, const AbortMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  618. /**
  619. * <p>Completes a multipart upload by assembling previously uploaded parts.</p>
  620. * <p>You first initiate the multipart upload and then upload all parts using the
  621. * <a
  622. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  623. * operation. After successfully uploading all relevant parts of an upload, you
  624. * call this action to complete the upload. Upon receiving this request, Amazon S3
  625. * concatenates all the parts in ascending order by part number to create a new
  626. * object. In the Complete Multipart Upload request, you must provide the parts
  627. * list. You must ensure that the parts list is complete. This action concatenates
  628. * the parts that you provide in the list. For each part in the list, you must
  629. * provide the part number and the <code>ETag</code> value, returned after that
  630. * part was uploaded.</p> <p>Processing of a Complete Multipart Upload request
  631. * could take several minutes to complete. After Amazon S3 begins processing the
  632. * request, it sends an HTTP response header that specifies a 200 OK response.
  633. * While processing is in progress, Amazon S3 periodically sends white space
  634. * characters to keep the connection from timing out. Because a request could fail
  635. * after the initial 200 OK response has been sent, it is important that you check
  636. * the response body to determine whether the request succeeded.</p> <p>Note that
  637. * if <code>CompleteMultipartUpload</code> fails, applications should be prepared
  638. * to retry the failed requests. For more information, see <a
  639. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html">Amazon
  640. * S3 Error Best Practices</a>.</p> <p>For more information about multipart
  641. * uploads, see <a
  642. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
  643. * Objects Using Multipart Upload</a>.</p> <p>For information about permissions
  644. * required to use the multipart upload API, see <a
  645. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  646. * Upload and Permissions</a>.</p> <p> <code>CompleteMultipartUpload</code> has the
  647. * following special errors:</p> <ul> <li> <p>Error code:
  648. * <code>EntityTooSmall</code> </p> <ul> <li> <p>Description: Your proposed upload
  649. * is smaller than the minimum allowed object size. Each part must be at least 5 MB
  650. * in size, except the last part.</p> </li> <li> <p>400 Bad Request</p> </li> </ul>
  651. * </li> <li> <p>Error code: <code>InvalidPart</code> </p> <ul> <li>
  652. * <p>Description: One or more of the specified parts could not be found. The part
  653. * might not have been uploaded, or the specified entity tag might not have matched
  654. * the part's entity tag.</p> </li> <li> <p>400 Bad Request</p> </li> </ul> </li>
  655. * <li> <p>Error code: <code>InvalidPartOrder</code> </p> <ul> <li> <p>Description:
  656. * The list of parts was not in ascending order. The parts list must be specified
  657. * in order by part number.</p> </li> <li> <p>400 Bad Request</p> </li> </ul> </li>
  658. * <li> <p>Error code: <code>NoSuchUpload</code> </p> <ul> <li> <p>Description: The
  659. * specified multipart upload does not exist. The upload ID might be invalid, or
  660. * the multipart upload might have been aborted or completed.</p> </li> <li> <p>404
  661. * Not Found</p> </li> </ul> </li> </ul> <p>The following operations are related to
  662. * <code>CompleteMultipartUpload</code>:</p> <ul> <li> <p> <a
  663. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  664. * </p> </li> <li> <p> <a
  665. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  666. * </p> </li> <li> <p> <a
  667. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  668. * </p> </li> <li> <p> <a
  669. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  670. * </p> </li> <li> <p> <a
  671. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  672. * </p> </li> </ul><p><h3>See Also:</h3> <a
  673. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompleteMultipartUpload">AWS
  674. * API Reference</a></p>
  675. */
  676. virtual Model::CompleteMultipartUploadOutcome CompleteMultipartUpload(const Model::CompleteMultipartUploadRequest& request) const;
  677. /**
  678. * <p>Completes a multipart upload by assembling previously uploaded parts.</p>
  679. * <p>You first initiate the multipart upload and then upload all parts using the
  680. * <a
  681. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  682. * operation. After successfully uploading all relevant parts of an upload, you
  683. * call this action to complete the upload. Upon receiving this request, Amazon S3
  684. * concatenates all the parts in ascending order by part number to create a new
  685. * object. In the Complete Multipart Upload request, you must provide the parts
  686. * list. You must ensure that the parts list is complete. This action concatenates
  687. * the parts that you provide in the list. For each part in the list, you must
  688. * provide the part number and the <code>ETag</code> value, returned after that
  689. * part was uploaded.</p> <p>Processing of a Complete Multipart Upload request
  690. * could take several minutes to complete. After Amazon S3 begins processing the
  691. * request, it sends an HTTP response header that specifies a 200 OK response.
  692. * While processing is in progress, Amazon S3 periodically sends white space
  693. * characters to keep the connection from timing out. Because a request could fail
  694. * after the initial 200 OK response has been sent, it is important that you check
  695. * the response body to determine whether the request succeeded.</p> <p>Note that
  696. * if <code>CompleteMultipartUpload</code> fails, applications should be prepared
  697. * to retry the failed requests. For more information, see <a
  698. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html">Amazon
  699. * S3 Error Best Practices</a>.</p> <p>For more information about multipart
  700. * uploads, see <a
  701. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
  702. * Objects Using Multipart Upload</a>.</p> <p>For information about permissions
  703. * required to use the multipart upload API, see <a
  704. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  705. * Upload and Permissions</a>.</p> <p> <code>CompleteMultipartUpload</code> has the
  706. * following special errors:</p> <ul> <li> <p>Error code:
  707. * <code>EntityTooSmall</code> </p> <ul> <li> <p>Description: Your proposed upload
  708. * is smaller than the minimum allowed object size. Each part must be at least 5 MB
  709. * in size, except the last part.</p> </li> <li> <p>400 Bad Request</p> </li> </ul>
  710. * </li> <li> <p>Error code: <code>InvalidPart</code> </p> <ul> <li>
  711. * <p>Description: One or more of the specified parts could not be found. The part
  712. * might not have been uploaded, or the specified entity tag might not have matched
  713. * the part's entity tag.</p> </li> <li> <p>400 Bad Request</p> </li> </ul> </li>
  714. * <li> <p>Error code: <code>InvalidPartOrder</code> </p> <ul> <li> <p>Description:
  715. * The list of parts was not in ascending order. The parts list must be specified
  716. * in order by part number.</p> </li> <li> <p>400 Bad Request</p> </li> </ul> </li>
  717. * <li> <p>Error code: <code>NoSuchUpload</code> </p> <ul> <li> <p>Description: The
  718. * specified multipart upload does not exist. The upload ID might be invalid, or
  719. * the multipart upload might have been aborted or completed.</p> </li> <li> <p>404
  720. * Not Found</p> </li> </ul> </li> </ul> <p>The following operations are related to
  721. * <code>CompleteMultipartUpload</code>:</p> <ul> <li> <p> <a
  722. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  723. * </p> </li> <li> <p> <a
  724. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  725. * </p> </li> <li> <p> <a
  726. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  727. * </p> </li> <li> <p> <a
  728. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  729. * </p> </li> <li> <p> <a
  730. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  731. * </p> </li> </ul><p><h3>See Also:</h3> <a
  732. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompleteMultipartUpload">AWS
  733. * API Reference</a></p>
  734. *
  735. * returns a future to the operation so that it can be executed in parallel to other requests.
  736. */
  737. virtual Model::CompleteMultipartUploadOutcomeCallable CompleteMultipartUploadCallable(const Model::CompleteMultipartUploadRequest& request) const;
  738. /**
  739. * <p>Completes a multipart upload by assembling previously uploaded parts.</p>
  740. * <p>You first initiate the multipart upload and then upload all parts using the
  741. * <a
  742. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  743. * operation. After successfully uploading all relevant parts of an upload, you
  744. * call this action to complete the upload. Upon receiving this request, Amazon S3
  745. * concatenates all the parts in ascending order by part number to create a new
  746. * object. In the Complete Multipart Upload request, you must provide the parts
  747. * list. You must ensure that the parts list is complete. This action concatenates
  748. * the parts that you provide in the list. For each part in the list, you must
  749. * provide the part number and the <code>ETag</code> value, returned after that
  750. * part was uploaded.</p> <p>Processing of a Complete Multipart Upload request
  751. * could take several minutes to complete. After Amazon S3 begins processing the
  752. * request, it sends an HTTP response header that specifies a 200 OK response.
  753. * While processing is in progress, Amazon S3 periodically sends white space
  754. * characters to keep the connection from timing out. Because a request could fail
  755. * after the initial 200 OK response has been sent, it is important that you check
  756. * the response body to determine whether the request succeeded.</p> <p>Note that
  757. * if <code>CompleteMultipartUpload</code> fails, applications should be prepared
  758. * to retry the failed requests. For more information, see <a
  759. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html">Amazon
  760. * S3 Error Best Practices</a>.</p> <p>For more information about multipart
  761. * uploads, see <a
  762. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
  763. * Objects Using Multipart Upload</a>.</p> <p>For information about permissions
  764. * required to use the multipart upload API, see <a
  765. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  766. * Upload and Permissions</a>.</p> <p> <code>CompleteMultipartUpload</code> has the
  767. * following special errors:</p> <ul> <li> <p>Error code:
  768. * <code>EntityTooSmall</code> </p> <ul> <li> <p>Description: Your proposed upload
  769. * is smaller than the minimum allowed object size. Each part must be at least 5 MB
  770. * in size, except the last part.</p> </li> <li> <p>400 Bad Request</p> </li> </ul>
  771. * </li> <li> <p>Error code: <code>InvalidPart</code> </p> <ul> <li>
  772. * <p>Description: One or more of the specified parts could not be found. The part
  773. * might not have been uploaded, or the specified entity tag might not have matched
  774. * the part's entity tag.</p> </li> <li> <p>400 Bad Request</p> </li> </ul> </li>
  775. * <li> <p>Error code: <code>InvalidPartOrder</code> </p> <ul> <li> <p>Description:
  776. * The list of parts was not in ascending order. The parts list must be specified
  777. * in order by part number.</p> </li> <li> <p>400 Bad Request</p> </li> </ul> </li>
  778. * <li> <p>Error code: <code>NoSuchUpload</code> </p> <ul> <li> <p>Description: The
  779. * specified multipart upload does not exist. The upload ID might be invalid, or
  780. * the multipart upload might have been aborted or completed.</p> </li> <li> <p>404
  781. * Not Found</p> </li> </ul> </li> </ul> <p>The following operations are related to
  782. * <code>CompleteMultipartUpload</code>:</p> <ul> <li> <p> <a
  783. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  784. * </p> </li> <li> <p> <a
  785. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  786. * </p> </li> <li> <p> <a
  787. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  788. * </p> </li> <li> <p> <a
  789. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  790. * </p> </li> <li> <p> <a
  791. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  792. * </p> </li> </ul><p><h3>See Also:</h3> <a
  793. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompleteMultipartUpload">AWS
  794. * API Reference</a></p>
  795. *
  796. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  797. */
  798. virtual void CompleteMultipartUploadAsync(const Model::CompleteMultipartUploadRequest& request, const CompleteMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  799. /**
  800. * <p>Creates a copy of an object that is already stored in Amazon S3.</p>
  801. * <p>You can store individual objects of up to 5 TB in Amazon S3. You create a
  802. * copy of your object up to 5 GB in size in a single atomic action using this API.
  803. * However, to copy an object greater than 5 GB, you must use the multipart upload
  804. * Upload Part - Copy API. For more information, see <a
  805. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html">Copy
  806. * Object Using the REST Multipart Upload API</a>.</p> <p>All copy requests
  807. * must be authenticated. Additionally, you must have <i>read</i> access to the
  808. * source object and <i>write</i> access to the destination bucket. For more
  809. * information, see <a
  810. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html">REST
  811. * Authentication</a>. Both the Region that you want to copy the object from and
  812. * the Region that you want to copy the object to must be enabled for your
  813. * account.</p> <p>A copy request might return an error when Amazon S3 receives the
  814. * copy request or while Amazon S3 is copying the files. If the error occurs before
  815. * the copy action starts, you receive a standard Amazon S3 error. If the error
  816. * occurs during the copy operation, the error response is embedded in the
  817. * <code>200 OK</code> response. This means that a <code>200 OK</code> response can
  818. * contain either a success or an error. Design your application to parse the
  819. * contents of the response and handle it appropriately.</p> <p>If the copy is
  820. * successful, you receive a response with information about the copied object.</p>
  821. * <p>If the request is an HTTP 1.1 request, the response is chunk encoded.
  822. * If it were not, it would not contain the content-length, and you would need to
  823. * read the entire body.</p> <p>The copy request charge is based on the
  824. * storage class and Region that you specify for the destination object. For
  825. * pricing information, see <a href="http://aws.amazon.com/s3/pricing/">Amazon S3
  826. * pricing</a>.</p> <p>Amazon S3 transfer acceleration does not support
  827. * cross-Region copies. If you request a cross-Region copy using a transfer
  828. * acceleration endpoint, you get a 400 <code>Bad Request</code> error. For more
  829. * information, see <a
  830. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
  831. * Acceleration</a>.</p> <p> <b>Metadata</b> </p> <p>When copying an
  832. * object, you can preserve all metadata (default) or specify new metadata.
  833. * However, the ACL is not preserved and is set to private for the user making the
  834. * request. To override the default ACL setting, specify a new ACL when generating
  835. * a copy request. For more information, see <a
  836. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
  837. * ACLs</a>. </p> <p>To specify whether you want the object metadata copied from
  838. * the source object or replaced with metadata provided in the request, you can
  839. * optionally add the <code>x-amz-metadata-directive</code> header. When you grant
  840. * permissions, you can use the <code>s3:x-amz-metadata-directive</code> condition
  841. * key to enforce certain metadata behavior when objects are uploaded. For more
  842. * information, see <a
  843. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html">Specifying
  844. * Conditions in a Policy</a> in the <i>Amazon S3 Developer Guide</i>. For a
  845. * complete list of Amazon S3-specific condition keys, see <a
  846. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html">Actions,
  847. * Resources, and Condition Keys for Amazon S3</a>.</p> <p> <b>
  848. * <code>x-amz-copy-source-if</code> Headers</b> </p> <p>To only copy an object
  849. * under certain conditions, such as whether the <code>Etag</code> matches or
  850. * whether the object was modified before or after a specified date, use the
  851. * following request parameters:</p> <ul> <li> <p>
  852. * <code>x-amz-copy-source-if-match</code> </p> </li> <li> <p>
  853. * <code>x-amz-copy-source-if-none-match</code> </p> </li> <li> <p>
  854. * <code>x-amz-copy-source-if-unmodified-since</code> </p> </li> <li> <p>
  855. * <code>x-amz-copy-source-if-modified-since</code> </p> </li> </ul> <p> If both
  856. * the <code>x-amz-copy-source-if-match</code> and
  857. * <code>x-amz-copy-source-if-unmodified-since</code> headers are present in the
  858. * request and evaluate as follows, Amazon S3 returns <code>200 OK</code> and
  859. * copies the data:</p> <ul> <li> <p> <code>x-amz-copy-source-if-match</code>
  860. * condition evaluates to true</p> </li> <li> <p>
  861. * <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to
  862. * false</p> </li> </ul> <p>If both the
  863. * <code>x-amz-copy-source-if-none-match</code> and
  864. * <code>x-amz-copy-source-if-modified-since</code> headers are present in the
  865. * request and evaluate as follows, Amazon S3 returns the <code>412 Precondition
  866. * Failed</code> response code:</p> <ul> <li> <p>
  867. * <code>x-amz-copy-source-if-none-match</code> condition evaluates to false</p>
  868. * </li> <li> <p> <code>x-amz-copy-source-if-modified-since</code> condition
  869. * evaluates to true</p> </li> </ul> <p>All headers with the
  870. * <code>x-amz-</code> prefix, including <code>x-amz-copy-source</code>, must be
  871. * signed.</p> <p> <b>Server-side encryption</b> </p> <p>When you perform a
  872. * CopyObject operation, you can optionally use the appropriate encryption-related
  873. * headers to encrypt the object using server-side encryption with AWS managed
  874. * encryption keys (SSE-S3 or SSE-KMS) or a customer-provided encryption key. With
  875. * server-side encryption, Amazon S3 encrypts your data as it writes it to disks in
  876. * its data centers and decrypts the data when you access it. For more information
  877. * about server-side encryption, see <a
  878. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Using
  879. * Server-Side Encryption</a>.</p> <p>If a target object uses SSE-KMS, you can
  880. * enable an S3 Bucket Key for the object. For more information, see <a
  881. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
  882. * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p> <b>Access Control
  883. * List (ACL)-Specific Request Headers</b> </p> <p>When copying an object, you can
  884. * optionally use headers to grant ACL-based permissions. By default, all objects
  885. * are private. Only the owner has full access control. When adding a new object,
  886. * you can grant permissions to individual AWS accounts or to predefined groups
  887. * defined by Amazon S3. These permissions are then added to the ACL on the object.
  888. * For more information, see <a
  889. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  890. * Control List (ACL) Overview</a> and <a
  891. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing
  892. * ACLs Using the REST API</a>. </p> <p> <b>Storage Class Options</b> </p> <p>You
  893. * can use the <code>CopyObject</code> action to change the storage class of an
  894. * object that is already stored in Amazon S3 using the <code>StorageClass</code>
  895. * parameter. For more information, see <a
  896. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage
  897. * Classes</a> in the <i>Amazon S3 Service Developer Guide</i>.</p> <p>
  898. * <b>Versioning</b> </p> <p>By default, <code>x-amz-copy-source</code> identifies
  899. * the current version of an object to copy. If the current version is a delete
  900. * marker, Amazon S3 behaves as if the object was deleted. To copy a different
  901. * version, use the <code>versionId</code> subresource.</p> <p>If you enable
  902. * versioning on the target bucket, Amazon S3 generates a unique version ID for the
  903. * object being copied. This version ID is different from the version ID of the
  904. * source object. Amazon S3 returns the version ID of the copied object in the
  905. * <code>x-amz-version-id</code> response header in the response.</p> <p>If you do
  906. * not enable versioning or suspend it on the target bucket, the version ID that
  907. * Amazon S3 generates is always null.</p> <p>If the source object's storage class
  908. * is GLACIER, you must restore a copy of this object before you can use it as a
  909. * source object for the copy operation. For more information, see <a
  910. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>.</p>
  911. * <p>The following operations are related to <code>CopyObject</code>:</p> <ul>
  912. * <li> <p> <a
  913. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  914. * </p> </li> <li> <p> <a
  915. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  916. * </p> </li> </ul> <p>For more information, see <a
  917. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html">Copying
  918. * Objects</a>.</p><p><h3>See Also:</h3> <a
  919. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObject">AWS API
  920. * Reference</a></p>
  921. */
  922. virtual Model::CopyObjectOutcome CopyObject(const Model::CopyObjectRequest& request) const;
  923. /**
  924. * <p>Creates a copy of an object that is already stored in Amazon S3.</p>
  925. * <p>You can store individual objects of up to 5 TB in Amazon S3. You create a
  926. * copy of your object up to 5 GB in size in a single atomic action using this API.
  927. * However, to copy an object greater than 5 GB, you must use the multipart upload
  928. * Upload Part - Copy API. For more information, see <a
  929. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html">Copy
  930. * Object Using the REST Multipart Upload API</a>.</p> <p>All copy requests
  931. * must be authenticated. Additionally, you must have <i>read</i> access to the
  932. * source object and <i>write</i> access to the destination bucket. For more
  933. * information, see <a
  934. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html">REST
  935. * Authentication</a>. Both the Region that you want to copy the object from and
  936. * the Region that you want to copy the object to must be enabled for your
  937. * account.</p> <p>A copy request might return an error when Amazon S3 receives the
  938. * copy request or while Amazon S3 is copying the files. If the error occurs before
  939. * the copy action starts, you receive a standard Amazon S3 error. If the error
  940. * occurs during the copy operation, the error response is embedded in the
  941. * <code>200 OK</code> response. This means that a <code>200 OK</code> response can
  942. * contain either a success or an error. Design your application to parse the
  943. * contents of the response and handle it appropriately.</p> <p>If the copy is
  944. * successful, you receive a response with information about the copied object.</p>
  945. * <p>If the request is an HTTP 1.1 request, the response is chunk encoded.
  946. * If it were not, it would not contain the content-length, and you would need to
  947. * read the entire body.</p> <p>The copy request charge is based on the
  948. * storage class and Region that you specify for the destination object. For
  949. * pricing information, see <a href="http://aws.amazon.com/s3/pricing/">Amazon S3
  950. * pricing</a>.</p> <p>Amazon S3 transfer acceleration does not support
  951. * cross-Region copies. If you request a cross-Region copy using a transfer
  952. * acceleration endpoint, you get a 400 <code>Bad Request</code> error. For more
  953. * information, see <a
  954. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
  955. * Acceleration</a>.</p> <p> <b>Metadata</b> </p> <p>When copying an
  956. * object, you can preserve all metadata (default) or specify new metadata.
  957. * However, the ACL is not preserved and is set to private for the user making the
  958. * request. To override the default ACL setting, specify a new ACL when generating
  959. * a copy request. For more information, see <a
  960. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
  961. * ACLs</a>. </p> <p>To specify whether you want the object metadata copied from
  962. * the source object or replaced with metadata provided in the request, you can
  963. * optionally add the <code>x-amz-metadata-directive</code> header. When you grant
  964. * permissions, you can use the <code>s3:x-amz-metadata-directive</code> condition
  965. * key to enforce certain metadata behavior when objects are uploaded. For more
  966. * information, see <a
  967. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html">Specifying
  968. * Conditions in a Policy</a> in the <i>Amazon S3 Developer Guide</i>. For a
  969. * complete list of Amazon S3-specific condition keys, see <a
  970. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html">Actions,
  971. * Resources, and Condition Keys for Amazon S3</a>.</p> <p> <b>
  972. * <code>x-amz-copy-source-if</code> Headers</b> </p> <p>To only copy an object
  973. * under certain conditions, such as whether the <code>Etag</code> matches or
  974. * whether the object was modified before or after a specified date, use the
  975. * following request parameters:</p> <ul> <li> <p>
  976. * <code>x-amz-copy-source-if-match</code> </p> </li> <li> <p>
  977. * <code>x-amz-copy-source-if-none-match</code> </p> </li> <li> <p>
  978. * <code>x-amz-copy-source-if-unmodified-since</code> </p> </li> <li> <p>
  979. * <code>x-amz-copy-source-if-modified-since</code> </p> </li> </ul> <p> If both
  980. * the <code>x-amz-copy-source-if-match</code> and
  981. * <code>x-amz-copy-source-if-unmodified-since</code> headers are present in the
  982. * request and evaluate as follows, Amazon S3 returns <code>200 OK</code> and
  983. * copies the data:</p> <ul> <li> <p> <code>x-amz-copy-source-if-match</code>
  984. * condition evaluates to true</p> </li> <li> <p>
  985. * <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to
  986. * false</p> </li> </ul> <p>If both the
  987. * <code>x-amz-copy-source-if-none-match</code> and
  988. * <code>x-amz-copy-source-if-modified-since</code> headers are present in the
  989. * request and evaluate as follows, Amazon S3 returns the <code>412 Precondition
  990. * Failed</code> response code:</p> <ul> <li> <p>
  991. * <code>x-amz-copy-source-if-none-match</code> condition evaluates to false</p>
  992. * </li> <li> <p> <code>x-amz-copy-source-if-modified-since</code> condition
  993. * evaluates to true</p> </li> </ul> <p>All headers with the
  994. * <code>x-amz-</code> prefix, including <code>x-amz-copy-source</code>, must be
  995. * signed.</p> <p> <b>Server-side encryption</b> </p> <p>When you perform a
  996. * CopyObject operation, you can optionally use the appropriate encryption-related
  997. * headers to encrypt the object using server-side encryption with AWS managed
  998. * encryption keys (SSE-S3 or SSE-KMS) or a customer-provided encryption key. With
  999. * server-side encryption, Amazon S3 encrypts your data as it writes it to disks in
  1000. * its data centers and decrypts the data when you access it. For more information
  1001. * about server-side encryption, see <a
  1002. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Using
  1003. * Server-Side Encryption</a>.</p> <p>If a target object uses SSE-KMS, you can
  1004. * enable an S3 Bucket Key for the object. For more information, see <a
  1005. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
  1006. * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p> <b>Access Control
  1007. * List (ACL)-Specific Request Headers</b> </p> <p>When copying an object, you can
  1008. * optionally use headers to grant ACL-based permissions. By default, all objects
  1009. * are private. Only the owner has full access control. When adding a new object,
  1010. * you can grant permissions to individual AWS accounts or to predefined groups
  1011. * defined by Amazon S3. These permissions are then added to the ACL on the object.
  1012. * For more information, see <a
  1013. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  1014. * Control List (ACL) Overview</a> and <a
  1015. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing
  1016. * ACLs Using the REST API</a>. </p> <p> <b>Storage Class Options</b> </p> <p>You
  1017. * can use the <code>CopyObject</code> action to change the storage class of an
  1018. * object that is already stored in Amazon S3 using the <code>StorageClass</code>
  1019. * parameter. For more information, see <a
  1020. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage
  1021. * Classes</a> in the <i>Amazon S3 Service Developer Guide</i>.</p> <p>
  1022. * <b>Versioning</b> </p> <p>By default, <code>x-amz-copy-source</code> identifies
  1023. * the current version of an object to copy. If the current version is a delete
  1024. * marker, Amazon S3 behaves as if the object was deleted. To copy a different
  1025. * version, use the <code>versionId</code> subresource.</p> <p>If you enable
  1026. * versioning on the target bucket, Amazon S3 generates a unique version ID for the
  1027. * object being copied. This version ID is different from the version ID of the
  1028. * source object. Amazon S3 returns the version ID of the copied object in the
  1029. * <code>x-amz-version-id</code> response header in the response.</p> <p>If you do
  1030. * not enable versioning or suspend it on the target bucket, the version ID that
  1031. * Amazon S3 generates is always null.</p> <p>If the source object's storage class
  1032. * is GLACIER, you must restore a copy of this object before you can use it as a
  1033. * source object for the copy operation. For more information, see <a
  1034. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>.</p>
  1035. * <p>The following operations are related to <code>CopyObject</code>:</p> <ul>
  1036. * <li> <p> <a
  1037. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  1038. * </p> </li> <li> <p> <a
  1039. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  1040. * </p> </li> </ul> <p>For more information, see <a
  1041. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html">Copying
  1042. * Objects</a>.</p><p><h3>See Also:</h3> <a
  1043. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObject">AWS API
  1044. * Reference</a></p>
  1045. *
  1046. * returns a future to the operation so that it can be executed in parallel to other requests.
  1047. */
  1048. virtual Model::CopyObjectOutcomeCallable CopyObjectCallable(const Model::CopyObjectRequest& request) const;
  1049. /**
  1050. * <p>Creates a copy of an object that is already stored in Amazon S3.</p>
  1051. * <p>You can store individual objects of up to 5 TB in Amazon S3. You create a
  1052. * copy of your object up to 5 GB in size in a single atomic action using this API.
  1053. * However, to copy an object greater than 5 GB, you must use the multipart upload
  1054. * Upload Part - Copy API. For more information, see <a
  1055. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html">Copy
  1056. * Object Using the REST Multipart Upload API</a>.</p> <p>All copy requests
  1057. * must be authenticated. Additionally, you must have <i>read</i> access to the
  1058. * source object and <i>write</i> access to the destination bucket. For more
  1059. * information, see <a
  1060. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html">REST
  1061. * Authentication</a>. Both the Region that you want to copy the object from and
  1062. * the Region that you want to copy the object to must be enabled for your
  1063. * account.</p> <p>A copy request might return an error when Amazon S3 receives the
  1064. * copy request or while Amazon S3 is copying the files. If the error occurs before
  1065. * the copy action starts, you receive a standard Amazon S3 error. If the error
  1066. * occurs during the copy operation, the error response is embedded in the
  1067. * <code>200 OK</code> response. This means that a <code>200 OK</code> response can
  1068. * contain either a success or an error. Design your application to parse the
  1069. * contents of the response and handle it appropriately.</p> <p>If the copy is
  1070. * successful, you receive a response with information about the copied object.</p>
  1071. * <p>If the request is an HTTP 1.1 request, the response is chunk encoded.
  1072. * If it were not, it would not contain the content-length, and you would need to
  1073. * read the entire body.</p> <p>The copy request charge is based on the
  1074. * storage class and Region that you specify for the destination object. For
  1075. * pricing information, see <a href="http://aws.amazon.com/s3/pricing/">Amazon S3
  1076. * pricing</a>.</p> <p>Amazon S3 transfer acceleration does not support
  1077. * cross-Region copies. If you request a cross-Region copy using a transfer
  1078. * acceleration endpoint, you get a 400 <code>Bad Request</code> error. For more
  1079. * information, see <a
  1080. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
  1081. * Acceleration</a>.</p> <p> <b>Metadata</b> </p> <p>When copying an
  1082. * object, you can preserve all metadata (default) or specify new metadata.
  1083. * However, the ACL is not preserved and is set to private for the user making the
  1084. * request. To override the default ACL setting, specify a new ACL when generating
  1085. * a copy request. For more information, see <a
  1086. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
  1087. * ACLs</a>. </p> <p>To specify whether you want the object metadata copied from
  1088. * the source object or replaced with metadata provided in the request, you can
  1089. * optionally add the <code>x-amz-metadata-directive</code> header. When you grant
  1090. * permissions, you can use the <code>s3:x-amz-metadata-directive</code> condition
  1091. * key to enforce certain metadata behavior when objects are uploaded. For more
  1092. * information, see <a
  1093. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html">Specifying
  1094. * Conditions in a Policy</a> in the <i>Amazon S3 Developer Guide</i>. For a
  1095. * complete list of Amazon S3-specific condition keys, see <a
  1096. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html">Actions,
  1097. * Resources, and Condition Keys for Amazon S3</a>.</p> <p> <b>
  1098. * <code>x-amz-copy-source-if</code> Headers</b> </p> <p>To only copy an object
  1099. * under certain conditions, such as whether the <code>Etag</code> matches or
  1100. * whether the object was modified before or after a specified date, use the
  1101. * following request parameters:</p> <ul> <li> <p>
  1102. * <code>x-amz-copy-source-if-match</code> </p> </li> <li> <p>
  1103. * <code>x-amz-copy-source-if-none-match</code> </p> </li> <li> <p>
  1104. * <code>x-amz-copy-source-if-unmodified-since</code> </p> </li> <li> <p>
  1105. * <code>x-amz-copy-source-if-modified-since</code> </p> </li> </ul> <p> If both
  1106. * the <code>x-amz-copy-source-if-match</code> and
  1107. * <code>x-amz-copy-source-if-unmodified-since</code> headers are present in the
  1108. * request and evaluate as follows, Amazon S3 returns <code>200 OK</code> and
  1109. * copies the data:</p> <ul> <li> <p> <code>x-amz-copy-source-if-match</code>
  1110. * condition evaluates to true</p> </li> <li> <p>
  1111. * <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to
  1112. * false</p> </li> </ul> <p>If both the
  1113. * <code>x-amz-copy-source-if-none-match</code> and
  1114. * <code>x-amz-copy-source-if-modified-since</code> headers are present in the
  1115. * request and evaluate as follows, Amazon S3 returns the <code>412 Precondition
  1116. * Failed</code> response code:</p> <ul> <li> <p>
  1117. * <code>x-amz-copy-source-if-none-match</code> condition evaluates to false</p>
  1118. * </li> <li> <p> <code>x-amz-copy-source-if-modified-since</code> condition
  1119. * evaluates to true</p> </li> </ul> <p>All headers with the
  1120. * <code>x-amz-</code> prefix, including <code>x-amz-copy-source</code>, must be
  1121. * signed.</p> <p> <b>Server-side encryption</b> </p> <p>When you perform a
  1122. * CopyObject operation, you can optionally use the appropriate encryption-related
  1123. * headers to encrypt the object using server-side encryption with AWS managed
  1124. * encryption keys (SSE-S3 or SSE-KMS) or a customer-provided encryption key. With
  1125. * server-side encryption, Amazon S3 encrypts your data as it writes it to disks in
  1126. * its data centers and decrypts the data when you access it. For more information
  1127. * about server-side encryption, see <a
  1128. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Using
  1129. * Server-Side Encryption</a>.</p> <p>If a target object uses SSE-KMS, you can
  1130. * enable an S3 Bucket Key for the object. For more information, see <a
  1131. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
  1132. * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p> <b>Access Control
  1133. * List (ACL)-Specific Request Headers</b> </p> <p>When copying an object, you can
  1134. * optionally use headers to grant ACL-based permissions. By default, all objects
  1135. * are private. Only the owner has full access control. When adding a new object,
  1136. * you can grant permissions to individual AWS accounts or to predefined groups
  1137. * defined by Amazon S3. These permissions are then added to the ACL on the object.
  1138. * For more information, see <a
  1139. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  1140. * Control List (ACL) Overview</a> and <a
  1141. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing
  1142. * ACLs Using the REST API</a>. </p> <p> <b>Storage Class Options</b> </p> <p>You
  1143. * can use the <code>CopyObject</code> action to change the storage class of an
  1144. * object that is already stored in Amazon S3 using the <code>StorageClass</code>
  1145. * parameter. For more information, see <a
  1146. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage
  1147. * Classes</a> in the <i>Amazon S3 Service Developer Guide</i>.</p> <p>
  1148. * <b>Versioning</b> </p> <p>By default, <code>x-amz-copy-source</code> identifies
  1149. * the current version of an object to copy. If the current version is a delete
  1150. * marker, Amazon S3 behaves as if the object was deleted. To copy a different
  1151. * version, use the <code>versionId</code> subresource.</p> <p>If you enable
  1152. * versioning on the target bucket, Amazon S3 generates a unique version ID for the
  1153. * object being copied. This version ID is different from the version ID of the
  1154. * source object. Amazon S3 returns the version ID of the copied object in the
  1155. * <code>x-amz-version-id</code> response header in the response.</p> <p>If you do
  1156. * not enable versioning or suspend it on the target bucket, the version ID that
  1157. * Amazon S3 generates is always null.</p> <p>If the source object's storage class
  1158. * is GLACIER, you must restore a copy of this object before you can use it as a
  1159. * source object for the copy operation. For more information, see <a
  1160. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>.</p>
  1161. * <p>The following operations are related to <code>CopyObject</code>:</p> <ul>
  1162. * <li> <p> <a
  1163. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  1164. * </p> </li> <li> <p> <a
  1165. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  1166. * </p> </li> </ul> <p>For more information, see <a
  1167. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html">Copying
  1168. * Objects</a>.</p><p><h3>See Also:</h3> <a
  1169. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObject">AWS API
  1170. * Reference</a></p>
  1171. *
  1172. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  1173. */
  1174. virtual void CopyObjectAsync(const Model::CopyObjectRequest& request, const CopyObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  1175. /**
  1176. * <p>Creates a new S3 bucket. To create a bucket, you must register with Amazon S3
  1177. * and have a valid AWS Access Key ID to authenticate requests. Anonymous requests
  1178. * are never allowed to create buckets. By creating the bucket, you become the
  1179. * bucket owner.</p> <p>Not every string is an acceptable bucket name. For
  1180. * information about bucket naming restrictions, see <a
  1181. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html">Working
  1182. * with Amazon S3 buckets</a>. </p> <p>If you want to create an Amazon S3 on
  1183. * Outposts bucket, see <a
  1184. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html">Create
  1185. * Bucket</a>. </p> <p>By default, the bucket is created in the US East (N.
  1186. * Virginia) Region. You can optionally specify a Region in the request body. You
  1187. * might choose a Region to optimize latency, minimize costs, or address regulatory
  1188. * requirements. For example, if you reside in Europe, you will probably find it
  1189. * advantageous to create buckets in the Europe (Ireland) Region. For more
  1190. * information, see <a
  1191. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro">Accessing
  1192. * a bucket</a>.</p> <p>If you send your create bucket request to the
  1193. * <code>s3.amazonaws.com</code> endpoint, the request goes to the us-east-1
  1194. * Region. Accordingly, the signature calculations in Signature Version 4 must use
  1195. * us-east-1 as the Region, even if the location constraint in the request
  1196. * specifies another Region where the bucket is to be created. If you create a
  1197. * bucket in a Region other than US East (N. Virginia), your application must be
  1198. * able to handle 307 redirect. For more information, see <a
  1199. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html">Virtual
  1200. * hosting of buckets</a>.</p> <p>When creating a bucket using this
  1201. * operation, you can optionally specify the accounts or groups that should be
  1202. * granted specific permissions on the bucket. There are two ways to grant the
  1203. * appropriate permissions using the request headers.</p> <ul> <li> <p>Specify a
  1204. * canned ACL using the <code>x-amz-acl</code> request header. Amazon S3 supports a
  1205. * set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a
  1206. * predefined set of grantees and permissions. For more information, see <a
  1207. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  1208. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly using the
  1209. * <code>x-amz-grant-read</code>, <code>x-amz-grant-write</code>,
  1210. * <code>x-amz-grant-read-acp</code>, <code>x-amz-grant-write-acp</code>, and
  1211. * <code>x-amz-grant-full-control</code> headers. These headers map to the set of
  1212. * permissions Amazon S3 supports in an ACL. For more information, see <a
  1213. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  1214. * control list (ACL) overview</a>.</p> <p>You specify each grantee as a type=value
  1215. * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
  1216. * – if the value specified is the canonical user ID of an AWS account</p> </li>
  1217. * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
  1218. * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
  1219. * the email address of an AWS account</p> <p>Using email addresses to
  1220. * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
  1221. * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
  1222. * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
  1223. * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
  1224. * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
  1225. * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
  1226. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  1227. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
  1228. * example, the following <code>x-amz-grant-read</code> header grants the AWS
  1229. * accounts identified by account IDs permissions to read object data and its
  1230. * metadata:</p> <p> <code>x-amz-grant-read: id="11112222333", id="444455556666"
  1231. * </code> </p> </li> </ul> <p>You can use either a canned ACL or specify
  1232. * access permissions explicitly. You cannot do both.</p> <p>The following
  1233. * operations are related to <code>CreateBucket</code>:</p> <ul> <li> <p> <a
  1234. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  1235. * </p> </li> <li> <p> <a
  1236. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  1237. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1238. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucket">AWS API
  1239. * Reference</a></p>
  1240. */
  1241. virtual Model::CreateBucketOutcome CreateBucket(const Model::CreateBucketRequest& request) const;
  1242. /**
  1243. * <p>Creates a new S3 bucket. To create a bucket, you must register with Amazon S3
  1244. * and have a valid AWS Access Key ID to authenticate requests. Anonymous requests
  1245. * are never allowed to create buckets. By creating the bucket, you become the
  1246. * bucket owner.</p> <p>Not every string is an acceptable bucket name. For
  1247. * information about bucket naming restrictions, see <a
  1248. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html">Working
  1249. * with Amazon S3 buckets</a>. </p> <p>If you want to create an Amazon S3 on
  1250. * Outposts bucket, see <a
  1251. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html">Create
  1252. * Bucket</a>. </p> <p>By default, the bucket is created in the US East (N.
  1253. * Virginia) Region. You can optionally specify a Region in the request body. You
  1254. * might choose a Region to optimize latency, minimize costs, or address regulatory
  1255. * requirements. For example, if you reside in Europe, you will probably find it
  1256. * advantageous to create buckets in the Europe (Ireland) Region. For more
  1257. * information, see <a
  1258. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro">Accessing
  1259. * a bucket</a>.</p> <p>If you send your create bucket request to the
  1260. * <code>s3.amazonaws.com</code> endpoint, the request goes to the us-east-1
  1261. * Region. Accordingly, the signature calculations in Signature Version 4 must use
  1262. * us-east-1 as the Region, even if the location constraint in the request
  1263. * specifies another Region where the bucket is to be created. If you create a
  1264. * bucket in a Region other than US East (N. Virginia), your application must be
  1265. * able to handle 307 redirect. For more information, see <a
  1266. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html">Virtual
  1267. * hosting of buckets</a>.</p> <p>When creating a bucket using this
  1268. * operation, you can optionally specify the accounts or groups that should be
  1269. * granted specific permissions on the bucket. There are two ways to grant the
  1270. * appropriate permissions using the request headers.</p> <ul> <li> <p>Specify a
  1271. * canned ACL using the <code>x-amz-acl</code> request header. Amazon S3 supports a
  1272. * set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a
  1273. * predefined set of grantees and permissions. For more information, see <a
  1274. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  1275. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly using the
  1276. * <code>x-amz-grant-read</code>, <code>x-amz-grant-write</code>,
  1277. * <code>x-amz-grant-read-acp</code>, <code>x-amz-grant-write-acp</code>, and
  1278. * <code>x-amz-grant-full-control</code> headers. These headers map to the set of
  1279. * permissions Amazon S3 supports in an ACL. For more information, see <a
  1280. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  1281. * control list (ACL) overview</a>.</p> <p>You specify each grantee as a type=value
  1282. * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
  1283. * – if the value specified is the canonical user ID of an AWS account</p> </li>
  1284. * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
  1285. * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
  1286. * the email address of an AWS account</p> <p>Using email addresses to
  1287. * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
  1288. * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
  1289. * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
  1290. * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
  1291. * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
  1292. * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
  1293. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  1294. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
  1295. * example, the following <code>x-amz-grant-read</code> header grants the AWS
  1296. * accounts identified by account IDs permissions to read object data and its
  1297. * metadata:</p> <p> <code>x-amz-grant-read: id="11112222333", id="444455556666"
  1298. * </code> </p> </li> </ul> <p>You can use either a canned ACL or specify
  1299. * access permissions explicitly. You cannot do both.</p> <p>The following
  1300. * operations are related to <code>CreateBucket</code>:</p> <ul> <li> <p> <a
  1301. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  1302. * </p> </li> <li> <p> <a
  1303. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  1304. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1305. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucket">AWS API
  1306. * Reference</a></p>
  1307. *
  1308. * returns a future to the operation so that it can be executed in parallel to other requests.
  1309. */
  1310. virtual Model::CreateBucketOutcomeCallable CreateBucketCallable(const Model::CreateBucketRequest& request) const;
  1311. /**
  1312. * <p>Creates a new S3 bucket. To create a bucket, you must register with Amazon S3
  1313. * and have a valid AWS Access Key ID to authenticate requests. Anonymous requests
  1314. * are never allowed to create buckets. By creating the bucket, you become the
  1315. * bucket owner.</p> <p>Not every string is an acceptable bucket name. For
  1316. * information about bucket naming restrictions, see <a
  1317. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html">Working
  1318. * with Amazon S3 buckets</a>. </p> <p>If you want to create an Amazon S3 on
  1319. * Outposts bucket, see <a
  1320. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html">Create
  1321. * Bucket</a>. </p> <p>By default, the bucket is created in the US East (N.
  1322. * Virginia) Region. You can optionally specify a Region in the request body. You
  1323. * might choose a Region to optimize latency, minimize costs, or address regulatory
  1324. * requirements. For example, if you reside in Europe, you will probably find it
  1325. * advantageous to create buckets in the Europe (Ireland) Region. For more
  1326. * information, see <a
  1327. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro">Accessing
  1328. * a bucket</a>.</p> <p>If you send your create bucket request to the
  1329. * <code>s3.amazonaws.com</code> endpoint, the request goes to the us-east-1
  1330. * Region. Accordingly, the signature calculations in Signature Version 4 must use
  1331. * us-east-1 as the Region, even if the location constraint in the request
  1332. * specifies another Region where the bucket is to be created. If you create a
  1333. * bucket in a Region other than US East (N. Virginia), your application must be
  1334. * able to handle 307 redirect. For more information, see <a
  1335. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html">Virtual
  1336. * hosting of buckets</a>.</p> <p>When creating a bucket using this
  1337. * operation, you can optionally specify the accounts or groups that should be
  1338. * granted specific permissions on the bucket. There are two ways to grant the
  1339. * appropriate permissions using the request headers.</p> <ul> <li> <p>Specify a
  1340. * canned ACL using the <code>x-amz-acl</code> request header. Amazon S3 supports a
  1341. * set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a
  1342. * predefined set of grantees and permissions. For more information, see <a
  1343. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  1344. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly using the
  1345. * <code>x-amz-grant-read</code>, <code>x-amz-grant-write</code>,
  1346. * <code>x-amz-grant-read-acp</code>, <code>x-amz-grant-write-acp</code>, and
  1347. * <code>x-amz-grant-full-control</code> headers. These headers map to the set of
  1348. * permissions Amazon S3 supports in an ACL. For more information, see <a
  1349. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  1350. * control list (ACL) overview</a>.</p> <p>You specify each grantee as a type=value
  1351. * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
  1352. * – if the value specified is the canonical user ID of an AWS account</p> </li>
  1353. * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
  1354. * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
  1355. * the email address of an AWS account</p> <p>Using email addresses to
  1356. * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
  1357. * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
  1358. * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
  1359. * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
  1360. * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
  1361. * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
  1362. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  1363. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
  1364. * example, the following <code>x-amz-grant-read</code> header grants the AWS
  1365. * accounts identified by account IDs permissions to read object data and its
  1366. * metadata:</p> <p> <code>x-amz-grant-read: id="11112222333", id="444455556666"
  1367. * </code> </p> </li> </ul> <p>You can use either a canned ACL or specify
  1368. * access permissions explicitly. You cannot do both.</p> <p>The following
  1369. * operations are related to <code>CreateBucket</code>:</p> <ul> <li> <p> <a
  1370. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  1371. * </p> </li> <li> <p> <a
  1372. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  1373. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1374. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucket">AWS API
  1375. * Reference</a></p>
  1376. *
  1377. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  1378. */
  1379. virtual void CreateBucketAsync(const Model::CreateBucketRequest& request, const CreateBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  1380. /**
  1381. * <p>This action initiates a multipart upload and returns an upload ID. This
  1382. * upload ID is used to associate all of the parts in the specific multipart
  1383. * upload. You specify this upload ID in each of your subsequent upload part
  1384. * requests (see <a
  1385. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>).
  1386. * You also include this upload ID in the final request to either complete or abort
  1387. * the multipart upload request.</p> <p>For more information about multipart
  1388. * uploads, see <a
  1389. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart
  1390. * Upload Overview</a>.</p> <p>If you have configured a lifecycle rule to abort
  1391. * incomplete multipart uploads, the upload must complete within the number of days
  1392. * specified in the bucket lifecycle configuration. Otherwise, the incomplete
  1393. * multipart upload becomes eligible for an abort action and Amazon S3 aborts the
  1394. * multipart upload. For more information, see <a
  1395. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">Aborting
  1396. * Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>.</p> <p>For
  1397. * information about the permissions required to use the multipart upload API, see
  1398. * <a
  1399. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  1400. * Upload and Permissions</a>.</p> <p>For request signing, multipart upload is just
  1401. * a series of regular requests. You initiate a multipart upload, send one or more
  1402. * requests to upload parts, and then complete the multipart upload process. You
  1403. * sign each request individually. There is nothing special about signing multipart
  1404. * upload requests. For more information about signing, see <a
  1405. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">Authenticating
  1406. * Requests (AWS Signature Version 4)</a>.</p> <p> After you initiate a
  1407. * multipart upload and upload one or more parts, to stop being charged for storing
  1408. * the uploaded parts, you must either complete or abort the multipart upload.
  1409. * Amazon S3 frees up the space used to store the parts and stop charging you for
  1410. * storing them only after you either complete or abort a multipart upload. </p>
  1411. * <p>You can optionally request server-side encryption. For server-side
  1412. * encryption, Amazon S3 encrypts your data as it writes it to disks in its data
  1413. * centers and decrypts it when you access it. You can provide your own encryption
  1414. * key, or use AWS Key Management Service (AWS KMS) customer master keys (CMKs) or
  1415. * Amazon S3-managed encryption keys. If you choose to provide your own encryption
  1416. * key, the request headers you provide in <a
  1417. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  1418. * and <a
  1419. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>
  1420. * requests must match the headers you used in the request to initiate the upload
  1421. * by using <code>CreateMultipartUpload</code>. </p> <p>To perform a multipart
  1422. * upload with encryption using an AWS KMS CMK, the requester must have permission
  1423. * to the <code>kms:Encrypt</code>, <code>kms:Decrypt</code>,
  1424. * <code>kms:ReEncrypt*</code>, <code>kms:GenerateDataKey*</code>, and
  1425. * <code>kms:DescribeKey</code> actions on the key. These permissions are required
  1426. * because Amazon S3 must decrypt and read data from the encrypted file parts
  1427. * before it completes the multipart upload.</p> <p>If your AWS Identity and Access
  1428. * Management (IAM) user or role is in the same AWS account as the AWS KMS CMK,
  1429. * then you must have these permissions on the key policy. If your IAM user or role
  1430. * belongs to a different account than the key, then you must have the permissions
  1431. * on both the key policy and your IAM user or role.</p> <p> For more information,
  1432. * see <a
  1433. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
  1434. * Data Using Server-Side Encryption</a>.</p> <dl> <dt>Access Permissions</dt> <dd>
  1435. * <p>When copying an object, you can optionally specify the accounts or groups
  1436. * that should be granted specific permissions on the new object. There are two
  1437. * ways to grant the permissions using the request headers:</p> <ul> <li>
  1438. * <p>Specify a canned ACL with the <code>x-amz-acl</code> request header. For more
  1439. * information, see <a
  1440. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  1441. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
  1442. * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
  1443. * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
  1444. * headers. These parameters map to the set of permissions that Amazon S3 supports
  1445. * in an ACL. For more information, see <a
  1446. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  1447. * Control List (ACL) Overview</a>.</p> </li> </ul> <p>You can use either a canned
  1448. * ACL or specify access permissions explicitly. You cannot do both.</p> </dd>
  1449. * <dt>Server-Side- Encryption-Specific Request Headers</dt> <dd> <p>You can
  1450. * optionally tell Amazon S3 to encrypt data at rest using server-side encryption.
  1451. * Server-side encryption is for data encryption at rest. Amazon S3 encrypts your
  1452. * data as it writes it to disks in its data centers and decrypts it when you
  1453. * access it. The option you use depends on whether you want to use AWS managed
  1454. * encryption keys or provide your own encryption key. </p> <ul> <li> <p>Use
  1455. * encryption keys managed by Amazon S3 or customer master keys (CMKs) stored in
  1456. * AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys used
  1457. * to encrypt data, specify the following headers in the request.</p> <ul> <li>
  1458. * <p>x-amz-server-side-encryption</p> </li> <li>
  1459. * <p>x-amz-server-side-encryption-aws-kms-key-id</p> </li> <li>
  1460. * <p>x-amz-server-side-encryption-context</p> </li> </ul> <p>If you specify
  1461. * <code>x-amz-server-side-encryption:aws:kms</code>, but don't provide
  1462. * <code>x-amz-server-side-encryption-aws-kms-key-id</code>, Amazon S3 uses the AWS
  1463. * managed CMK in AWS KMS to protect the data.</p> <p>All GET
  1464. * and PUT requests for an object protected by AWS KMS fail if you don't make them
  1465. * with SSL or by using SigV4.</p> <p>For more information about
  1466. * server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see <a
  1467. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting
  1468. * Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>.</p> </li>
  1469. * <li> <p>Use customer-provided encryption keys – If you want to manage your own
  1470. * encryption keys, provide all the following headers in the request.</p> <ul> <li>
  1471. * <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
  1472. * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
  1473. * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
  1474. * information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS),
  1475. * see <a
  1476. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting
  1477. * Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>.</p> </li>
  1478. * </ul> </dd> <dt>Access-Control-List (ACL)-Specific Request Headers</dt> <dd>
  1479. * <p>You also can use the following access control–related headers with this
  1480. * operation. By default, all objects are private. Only the owner has full access
  1481. * control. When adding a new object, you can grant permissions to individual AWS
  1482. * accounts or to predefined groups defined by Amazon S3. These permissions are
  1483. * then added to the access control list (ACL) on the object. For more information,
  1484. * see <a
  1485. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
  1486. * ACLs</a>. With this operation, you can grant access permissions using one of the
  1487. * following two methods:</p> <ul> <li> <p>Specify a canned ACL
  1488. * (<code>x-amz-acl</code>) — Amazon S3 supports a set of predefined ACLs, known as
  1489. * <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and
  1490. * permissions. For more information, see <a
  1491. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  1492. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly — To explicitly
  1493. * grant access permissions to specific AWS accounts or groups, use the following
  1494. * headers. Each header maps to specific permissions that Amazon S3 supports in an
  1495. * ACL. For more information, see <a
  1496. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  1497. * Control List (ACL) Overview</a>. In the header, you specify a list of grantees
  1498. * who get the specific permission. To grant permissions explicitly, use:</p> <ul>
  1499. * <li> <p>x-amz-grant-read</p> </li> <li> <p>x-amz-grant-write</p> </li> <li>
  1500. * <p>x-amz-grant-read-acp</p> </li> <li> <p>x-amz-grant-write-acp</p> </li> <li>
  1501. * <p>x-amz-grant-full-control</p> </li> </ul> <p>You specify each grantee as a
  1502. * type=value pair, where the type is one of the following:</p> <ul> <li> <p>
  1503. * <code>id</code> – if the value specified is the canonical user ID of an AWS
  1504. * account</p> </li> <li> <p> <code>uri</code> – if you are granting permissions to
  1505. * a predefined group</p> </li> <li> <p> <code>emailAddress</code> – if the value
  1506. * specified is the email address of an AWS account</p> <p>Using email
  1507. * addresses to specify a grantee is only supported in the following AWS Regions:
  1508. * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
  1509. * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
  1510. * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
  1511. * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
  1512. * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
  1513. * Regions and endpoints, see <a
  1514. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  1515. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
  1516. * example, the following <code>x-amz-grant-read</code> header grants the AWS
  1517. * accounts identified by account IDs permissions to read object data and its
  1518. * metadata:</p> <p> <code>x-amz-grant-read: id="11112222333", id="444455556666"
  1519. * </code> </p> </li> </ul> </dd> </dl> <p>The following operations are related to
  1520. * <code>CreateMultipartUpload</code>:</p> <ul> <li> <p> <a
  1521. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  1522. * </p> </li> <li> <p> <a
  1523. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  1524. * </p> </li> <li> <p> <a
  1525. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  1526. * </p> </li> <li> <p> <a
  1527. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  1528. * </p> </li> <li> <p> <a
  1529. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  1530. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1531. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUpload">AWS
  1532. * API Reference</a></p>
  1533. */
  1534. virtual Model::CreateMultipartUploadOutcome CreateMultipartUpload(const Model::CreateMultipartUploadRequest& request) const;
  1535. /**
  1536. * <p>This action initiates a multipart upload and returns an upload ID. This
  1537. * upload ID is used to associate all of the parts in the specific multipart
  1538. * upload. You specify this upload ID in each of your subsequent upload part
  1539. * requests (see <a
  1540. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>).
  1541. * You also include this upload ID in the final request to either complete or abort
  1542. * the multipart upload request.</p> <p>For more information about multipart
  1543. * uploads, see <a
  1544. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart
  1545. * Upload Overview</a>.</p> <p>If you have configured a lifecycle rule to abort
  1546. * incomplete multipart uploads, the upload must complete within the number of days
  1547. * specified in the bucket lifecycle configuration. Otherwise, the incomplete
  1548. * multipart upload becomes eligible for an abort action and Amazon S3 aborts the
  1549. * multipart upload. For more information, see <a
  1550. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">Aborting
  1551. * Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>.</p> <p>For
  1552. * information about the permissions required to use the multipart upload API, see
  1553. * <a
  1554. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  1555. * Upload and Permissions</a>.</p> <p>For request signing, multipart upload is just
  1556. * a series of regular requests. You initiate a multipart upload, send one or more
  1557. * requests to upload parts, and then complete the multipart upload process. You
  1558. * sign each request individually. There is nothing special about signing multipart
  1559. * upload requests. For more information about signing, see <a
  1560. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">Authenticating
  1561. * Requests (AWS Signature Version 4)</a>.</p> <p> After you initiate a
  1562. * multipart upload and upload one or more parts, to stop being charged for storing
  1563. * the uploaded parts, you must either complete or abort the multipart upload.
  1564. * Amazon S3 frees up the space used to store the parts and stop charging you for
  1565. * storing them only after you either complete or abort a multipart upload. </p>
  1566. * <p>You can optionally request server-side encryption. For server-side
  1567. * encryption, Amazon S3 encrypts your data as it writes it to disks in its data
  1568. * centers and decrypts it when you access it. You can provide your own encryption
  1569. * key, or use AWS Key Management Service (AWS KMS) customer master keys (CMKs) or
  1570. * Amazon S3-managed encryption keys. If you choose to provide your own encryption
  1571. * key, the request headers you provide in <a
  1572. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  1573. * and <a
  1574. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>
  1575. * requests must match the headers you used in the request to initiate the upload
  1576. * by using <code>CreateMultipartUpload</code>. </p> <p>To perform a multipart
  1577. * upload with encryption using an AWS KMS CMK, the requester must have permission
  1578. * to the <code>kms:Encrypt</code>, <code>kms:Decrypt</code>,
  1579. * <code>kms:ReEncrypt*</code>, <code>kms:GenerateDataKey*</code>, and
  1580. * <code>kms:DescribeKey</code> actions on the key. These permissions are required
  1581. * because Amazon S3 must decrypt and read data from the encrypted file parts
  1582. * before it completes the multipart upload.</p> <p>If your AWS Identity and Access
  1583. * Management (IAM) user or role is in the same AWS account as the AWS KMS CMK,
  1584. * then you must have these permissions on the key policy. If your IAM user or role
  1585. * belongs to a different account than the key, then you must have the permissions
  1586. * on both the key policy and your IAM user or role.</p> <p> For more information,
  1587. * see <a
  1588. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
  1589. * Data Using Server-Side Encryption</a>.</p> <dl> <dt>Access Permissions</dt> <dd>
  1590. * <p>When copying an object, you can optionally specify the accounts or groups
  1591. * that should be granted specific permissions on the new object. There are two
  1592. * ways to grant the permissions using the request headers:</p> <ul> <li>
  1593. * <p>Specify a canned ACL with the <code>x-amz-acl</code> request header. For more
  1594. * information, see <a
  1595. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  1596. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
  1597. * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
  1598. * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
  1599. * headers. These parameters map to the set of permissions that Amazon S3 supports
  1600. * in an ACL. For more information, see <a
  1601. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  1602. * Control List (ACL) Overview</a>.</p> </li> </ul> <p>You can use either a canned
  1603. * ACL or specify access permissions explicitly. You cannot do both.</p> </dd>
  1604. * <dt>Server-Side- Encryption-Specific Request Headers</dt> <dd> <p>You can
  1605. * optionally tell Amazon S3 to encrypt data at rest using server-side encryption.
  1606. * Server-side encryption is for data encryption at rest. Amazon S3 encrypts your
  1607. * data as it writes it to disks in its data centers and decrypts it when you
  1608. * access it. The option you use depends on whether you want to use AWS managed
  1609. * encryption keys or provide your own encryption key. </p> <ul> <li> <p>Use
  1610. * encryption keys managed by Amazon S3 or customer master keys (CMKs) stored in
  1611. * AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys used
  1612. * to encrypt data, specify the following headers in the request.</p> <ul> <li>
  1613. * <p>x-amz-server-side-encryption</p> </li> <li>
  1614. * <p>x-amz-server-side-encryption-aws-kms-key-id</p> </li> <li>
  1615. * <p>x-amz-server-side-encryption-context</p> </li> </ul> <p>If you specify
  1616. * <code>x-amz-server-side-encryption:aws:kms</code>, but don't provide
  1617. * <code>x-amz-server-side-encryption-aws-kms-key-id</code>, Amazon S3 uses the AWS
  1618. * managed CMK in AWS KMS to protect the data.</p> <p>All GET
  1619. * and PUT requests for an object protected by AWS KMS fail if you don't make them
  1620. * with SSL or by using SigV4.</p> <p>For more information about
  1621. * server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see <a
  1622. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting
  1623. * Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>.</p> </li>
  1624. * <li> <p>Use customer-provided encryption keys – If you want to manage your own
  1625. * encryption keys, provide all the following headers in the request.</p> <ul> <li>
  1626. * <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
  1627. * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
  1628. * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
  1629. * information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS),
  1630. * see <a
  1631. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting
  1632. * Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>.</p> </li>
  1633. * </ul> </dd> <dt>Access-Control-List (ACL)-Specific Request Headers</dt> <dd>
  1634. * <p>You also can use the following access control–related headers with this
  1635. * operation. By default, all objects are private. Only the owner has full access
  1636. * control. When adding a new object, you can grant permissions to individual AWS
  1637. * accounts or to predefined groups defined by Amazon S3. These permissions are
  1638. * then added to the access control list (ACL) on the object. For more information,
  1639. * see <a
  1640. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
  1641. * ACLs</a>. With this operation, you can grant access permissions using one of the
  1642. * following two methods:</p> <ul> <li> <p>Specify a canned ACL
  1643. * (<code>x-amz-acl</code>) — Amazon S3 supports a set of predefined ACLs, known as
  1644. * <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and
  1645. * permissions. For more information, see <a
  1646. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  1647. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly — To explicitly
  1648. * grant access permissions to specific AWS accounts or groups, use the following
  1649. * headers. Each header maps to specific permissions that Amazon S3 supports in an
  1650. * ACL. For more information, see <a
  1651. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  1652. * Control List (ACL) Overview</a>. In the header, you specify a list of grantees
  1653. * who get the specific permission. To grant permissions explicitly, use:</p> <ul>
  1654. * <li> <p>x-amz-grant-read</p> </li> <li> <p>x-amz-grant-write</p> </li> <li>
  1655. * <p>x-amz-grant-read-acp</p> </li> <li> <p>x-amz-grant-write-acp</p> </li> <li>
  1656. * <p>x-amz-grant-full-control</p> </li> </ul> <p>You specify each grantee as a
  1657. * type=value pair, where the type is one of the following:</p> <ul> <li> <p>
  1658. * <code>id</code> – if the value specified is the canonical user ID of an AWS
  1659. * account</p> </li> <li> <p> <code>uri</code> – if you are granting permissions to
  1660. * a predefined group</p> </li> <li> <p> <code>emailAddress</code> – if the value
  1661. * specified is the email address of an AWS account</p> <p>Using email
  1662. * addresses to specify a grantee is only supported in the following AWS Regions:
  1663. * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
  1664. * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
  1665. * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
  1666. * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
  1667. * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
  1668. * Regions and endpoints, see <a
  1669. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  1670. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
  1671. * example, the following <code>x-amz-grant-read</code> header grants the AWS
  1672. * accounts identified by account IDs permissions to read object data and its
  1673. * metadata:</p> <p> <code>x-amz-grant-read: id="11112222333", id="444455556666"
  1674. * </code> </p> </li> </ul> </dd> </dl> <p>The following operations are related to
  1675. * <code>CreateMultipartUpload</code>:</p> <ul> <li> <p> <a
  1676. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  1677. * </p> </li> <li> <p> <a
  1678. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  1679. * </p> </li> <li> <p> <a
  1680. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  1681. * </p> </li> <li> <p> <a
  1682. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  1683. * </p> </li> <li> <p> <a
  1684. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  1685. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1686. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUpload">AWS
  1687. * API Reference</a></p>
  1688. *
  1689. * returns a future to the operation so that it can be executed in parallel to other requests.
  1690. */
  1691. virtual Model::CreateMultipartUploadOutcomeCallable CreateMultipartUploadCallable(const Model::CreateMultipartUploadRequest& request) const;
  1692. /**
  1693. * <p>This action initiates a multipart upload and returns an upload ID. This
  1694. * upload ID is used to associate all of the parts in the specific multipart
  1695. * upload. You specify this upload ID in each of your subsequent upload part
  1696. * requests (see <a
  1697. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>).
  1698. * You also include this upload ID in the final request to either complete or abort
  1699. * the multipart upload request.</p> <p>For more information about multipart
  1700. * uploads, see <a
  1701. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart
  1702. * Upload Overview</a>.</p> <p>If you have configured a lifecycle rule to abort
  1703. * incomplete multipart uploads, the upload must complete within the number of days
  1704. * specified in the bucket lifecycle configuration. Otherwise, the incomplete
  1705. * multipart upload becomes eligible for an abort action and Amazon S3 aborts the
  1706. * multipart upload. For more information, see <a
  1707. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">Aborting
  1708. * Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>.</p> <p>For
  1709. * information about the permissions required to use the multipart upload API, see
  1710. * <a
  1711. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  1712. * Upload and Permissions</a>.</p> <p>For request signing, multipart upload is just
  1713. * a series of regular requests. You initiate a multipart upload, send one or more
  1714. * requests to upload parts, and then complete the multipart upload process. You
  1715. * sign each request individually. There is nothing special about signing multipart
  1716. * upload requests. For more information about signing, see <a
  1717. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">Authenticating
  1718. * Requests (AWS Signature Version 4)</a>.</p> <p> After you initiate a
  1719. * multipart upload and upload one or more parts, to stop being charged for storing
  1720. * the uploaded parts, you must either complete or abort the multipart upload.
  1721. * Amazon S3 frees up the space used to store the parts and stop charging you for
  1722. * storing them only after you either complete or abort a multipart upload. </p>
  1723. * <p>You can optionally request server-side encryption. For server-side
  1724. * encryption, Amazon S3 encrypts your data as it writes it to disks in its data
  1725. * centers and decrypts it when you access it. You can provide your own encryption
  1726. * key, or use AWS Key Management Service (AWS KMS) customer master keys (CMKs) or
  1727. * Amazon S3-managed encryption keys. If you choose to provide your own encryption
  1728. * key, the request headers you provide in <a
  1729. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  1730. * and <a
  1731. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>
  1732. * requests must match the headers you used in the request to initiate the upload
  1733. * by using <code>CreateMultipartUpload</code>. </p> <p>To perform a multipart
  1734. * upload with encryption using an AWS KMS CMK, the requester must have permission
  1735. * to the <code>kms:Encrypt</code>, <code>kms:Decrypt</code>,
  1736. * <code>kms:ReEncrypt*</code>, <code>kms:GenerateDataKey*</code>, and
  1737. * <code>kms:DescribeKey</code> actions on the key. These permissions are required
  1738. * because Amazon S3 must decrypt and read data from the encrypted file parts
  1739. * before it completes the multipart upload.</p> <p>If your AWS Identity and Access
  1740. * Management (IAM) user or role is in the same AWS account as the AWS KMS CMK,
  1741. * then you must have these permissions on the key policy. If your IAM user or role
  1742. * belongs to a different account than the key, then you must have the permissions
  1743. * on both the key policy and your IAM user or role.</p> <p> For more information,
  1744. * see <a
  1745. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
  1746. * Data Using Server-Side Encryption</a>.</p> <dl> <dt>Access Permissions</dt> <dd>
  1747. * <p>When copying an object, you can optionally specify the accounts or groups
  1748. * that should be granted specific permissions on the new object. There are two
  1749. * ways to grant the permissions using the request headers:</p> <ul> <li>
  1750. * <p>Specify a canned ACL with the <code>x-amz-acl</code> request header. For more
  1751. * information, see <a
  1752. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  1753. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
  1754. * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
  1755. * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
  1756. * headers. These parameters map to the set of permissions that Amazon S3 supports
  1757. * in an ACL. For more information, see <a
  1758. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  1759. * Control List (ACL) Overview</a>.</p> </li> </ul> <p>You can use either a canned
  1760. * ACL or specify access permissions explicitly. You cannot do both.</p> </dd>
  1761. * <dt>Server-Side- Encryption-Specific Request Headers</dt> <dd> <p>You can
  1762. * optionally tell Amazon S3 to encrypt data at rest using server-side encryption.
  1763. * Server-side encryption is for data encryption at rest. Amazon S3 encrypts your
  1764. * data as it writes it to disks in its data centers and decrypts it when you
  1765. * access it. The option you use depends on whether you want to use AWS managed
  1766. * encryption keys or provide your own encryption key. </p> <ul> <li> <p>Use
  1767. * encryption keys managed by Amazon S3 or customer master keys (CMKs) stored in
  1768. * AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys used
  1769. * to encrypt data, specify the following headers in the request.</p> <ul> <li>
  1770. * <p>x-amz-server-side-encryption</p> </li> <li>
  1771. * <p>x-amz-server-side-encryption-aws-kms-key-id</p> </li> <li>
  1772. * <p>x-amz-server-side-encryption-context</p> </li> </ul> <p>If you specify
  1773. * <code>x-amz-server-side-encryption:aws:kms</code>, but don't provide
  1774. * <code>x-amz-server-side-encryption-aws-kms-key-id</code>, Amazon S3 uses the AWS
  1775. * managed CMK in AWS KMS to protect the data.</p> <p>All GET
  1776. * and PUT requests for an object protected by AWS KMS fail if you don't make them
  1777. * with SSL or by using SigV4.</p> <p>For more information about
  1778. * server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see <a
  1779. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting
  1780. * Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>.</p> </li>
  1781. * <li> <p>Use customer-provided encryption keys – If you want to manage your own
  1782. * encryption keys, provide all the following headers in the request.</p> <ul> <li>
  1783. * <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
  1784. * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
  1785. * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
  1786. * information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS),
  1787. * see <a
  1788. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting
  1789. * Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>.</p> </li>
  1790. * </ul> </dd> <dt>Access-Control-List (ACL)-Specific Request Headers</dt> <dd>
  1791. * <p>You also can use the following access control–related headers with this
  1792. * operation. By default, all objects are private. Only the owner has full access
  1793. * control. When adding a new object, you can grant permissions to individual AWS
  1794. * accounts or to predefined groups defined by Amazon S3. These permissions are
  1795. * then added to the access control list (ACL) on the object. For more information,
  1796. * see <a
  1797. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
  1798. * ACLs</a>. With this operation, you can grant access permissions using one of the
  1799. * following two methods:</p> <ul> <li> <p>Specify a canned ACL
  1800. * (<code>x-amz-acl</code>) — Amazon S3 supports a set of predefined ACLs, known as
  1801. * <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and
  1802. * permissions. For more information, see <a
  1803. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  1804. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly — To explicitly
  1805. * grant access permissions to specific AWS accounts or groups, use the following
  1806. * headers. Each header maps to specific permissions that Amazon S3 supports in an
  1807. * ACL. For more information, see <a
  1808. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  1809. * Control List (ACL) Overview</a>. In the header, you specify a list of grantees
  1810. * who get the specific permission. To grant permissions explicitly, use:</p> <ul>
  1811. * <li> <p>x-amz-grant-read</p> </li> <li> <p>x-amz-grant-write</p> </li> <li>
  1812. * <p>x-amz-grant-read-acp</p> </li> <li> <p>x-amz-grant-write-acp</p> </li> <li>
  1813. * <p>x-amz-grant-full-control</p> </li> </ul> <p>You specify each grantee as a
  1814. * type=value pair, where the type is one of the following:</p> <ul> <li> <p>
  1815. * <code>id</code> – if the value specified is the canonical user ID of an AWS
  1816. * account</p> </li> <li> <p> <code>uri</code> – if you are granting permissions to
  1817. * a predefined group</p> </li> <li> <p> <code>emailAddress</code> – if the value
  1818. * specified is the email address of an AWS account</p> <p>Using email
  1819. * addresses to specify a grantee is only supported in the following AWS Regions:
  1820. * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
  1821. * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
  1822. * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
  1823. * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
  1824. * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
  1825. * Regions and endpoints, see <a
  1826. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  1827. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
  1828. * example, the following <code>x-amz-grant-read</code> header grants the AWS
  1829. * accounts identified by account IDs permissions to read object data and its
  1830. * metadata:</p> <p> <code>x-amz-grant-read: id="11112222333", id="444455556666"
  1831. * </code> </p> </li> </ul> </dd> </dl> <p>The following operations are related to
  1832. * <code>CreateMultipartUpload</code>:</p> <ul> <li> <p> <a
  1833. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  1834. * </p> </li> <li> <p> <a
  1835. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  1836. * </p> </li> <li> <p> <a
  1837. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  1838. * </p> </li> <li> <p> <a
  1839. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  1840. * </p> </li> <li> <p> <a
  1841. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  1842. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1843. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUpload">AWS
  1844. * API Reference</a></p>
  1845. *
  1846. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  1847. */
  1848. virtual void CreateMultipartUploadAsync(const Model::CreateMultipartUploadRequest& request, const CreateMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  1849. /**
  1850. * <p>Deletes the S3 bucket. All objects (including all object versions and delete
  1851. * markers) in the bucket must be deleted before the bucket itself can be
  1852. * deleted.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  1853. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  1854. * </p> </li> <li> <p> <a
  1855. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  1856. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1857. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucket">AWS API
  1858. * Reference</a></p>
  1859. */
  1860. virtual Model::DeleteBucketOutcome DeleteBucket(const Model::DeleteBucketRequest& request) const;
  1861. /**
  1862. * <p>Deletes the S3 bucket. All objects (including all object versions and delete
  1863. * markers) in the bucket must be deleted before the bucket itself can be
  1864. * deleted.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  1865. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  1866. * </p> </li> <li> <p> <a
  1867. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  1868. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1869. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucket">AWS API
  1870. * Reference</a></p>
  1871. *
  1872. * returns a future to the operation so that it can be executed in parallel to other requests.
  1873. */
  1874. virtual Model::DeleteBucketOutcomeCallable DeleteBucketCallable(const Model::DeleteBucketRequest& request) const;
  1875. /**
  1876. * <p>Deletes the S3 bucket. All objects (including all object versions and delete
  1877. * markers) in the bucket must be deleted before the bucket itself can be
  1878. * deleted.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  1879. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  1880. * </p> </li> <li> <p> <a
  1881. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  1882. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1883. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucket">AWS API
  1884. * Reference</a></p>
  1885. *
  1886. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  1887. */
  1888. virtual void DeleteBucketAsync(const Model::DeleteBucketRequest& request, const DeleteBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  1889. /**
  1890. * <p>Deletes an analytics configuration for the bucket (specified by the analytics
  1891. * configuration ID).</p> <p>To use this operation, you must have permissions to
  1892. * perform the <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner
  1893. * has this permission by default. The bucket owner can grant this permission to
  1894. * others. For more information about permissions, see <a
  1895. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  1896. * Related to Bucket Subresource Operations</a> and <a
  1897. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  1898. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  1899. * the Amazon S3 analytics feature, see <a
  1900. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
  1901. * S3 Analytics – Storage Class Analysis</a>. </p> <p>The following operations are
  1902. * related to <code>DeleteBucketAnalyticsConfiguration</code>:</p> <ul> <li> <p> <a
  1903. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
  1904. * </p> </li> <li> <p> <a
  1905. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
  1906. * </p> </li> <li> <p> <a
  1907. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
  1908. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1909. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketAnalyticsConfiguration">AWS
  1910. * API Reference</a></p>
  1911. */
  1912. virtual Model::DeleteBucketAnalyticsConfigurationOutcome DeleteBucketAnalyticsConfiguration(const Model::DeleteBucketAnalyticsConfigurationRequest& request) const;
  1913. /**
  1914. * <p>Deletes an analytics configuration for the bucket (specified by the analytics
  1915. * configuration ID).</p> <p>To use this operation, you must have permissions to
  1916. * perform the <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner
  1917. * has this permission by default. The bucket owner can grant this permission to
  1918. * others. For more information about permissions, see <a
  1919. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  1920. * Related to Bucket Subresource Operations</a> and <a
  1921. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  1922. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  1923. * the Amazon S3 analytics feature, see <a
  1924. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
  1925. * S3 Analytics – Storage Class Analysis</a>. </p> <p>The following operations are
  1926. * related to <code>DeleteBucketAnalyticsConfiguration</code>:</p> <ul> <li> <p> <a
  1927. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
  1928. * </p> </li> <li> <p> <a
  1929. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
  1930. * </p> </li> <li> <p> <a
  1931. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
  1932. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1933. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketAnalyticsConfiguration">AWS
  1934. * API Reference</a></p>
  1935. *
  1936. * returns a future to the operation so that it can be executed in parallel to other requests.
  1937. */
  1938. virtual Model::DeleteBucketAnalyticsConfigurationOutcomeCallable DeleteBucketAnalyticsConfigurationCallable(const Model::DeleteBucketAnalyticsConfigurationRequest& request) const;
  1939. /**
  1940. * <p>Deletes an analytics configuration for the bucket (specified by the analytics
  1941. * configuration ID).</p> <p>To use this operation, you must have permissions to
  1942. * perform the <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner
  1943. * has this permission by default. The bucket owner can grant this permission to
  1944. * others. For more information about permissions, see <a
  1945. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  1946. * Related to Bucket Subresource Operations</a> and <a
  1947. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  1948. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  1949. * the Amazon S3 analytics feature, see <a
  1950. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
  1951. * S3 Analytics – Storage Class Analysis</a>. </p> <p>The following operations are
  1952. * related to <code>DeleteBucketAnalyticsConfiguration</code>:</p> <ul> <li> <p> <a
  1953. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
  1954. * </p> </li> <li> <p> <a
  1955. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
  1956. * </p> </li> <li> <p> <a
  1957. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
  1958. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1959. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketAnalyticsConfiguration">AWS
  1960. * API Reference</a></p>
  1961. *
  1962. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  1963. */
  1964. virtual void DeleteBucketAnalyticsConfigurationAsync(const Model::DeleteBucketAnalyticsConfigurationRequest& request, const DeleteBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  1965. /**
  1966. * <p>Deletes the <code>cors</code> configuration information set for the
  1967. * bucket.</p> <p>To use this operation, you must have permission to perform the
  1968. * <code>s3:PutBucketCORS</code> action. The bucket owner has this permission by
  1969. * default and can grant this permission to others. </p> <p>For information about
  1970. * <code>cors</code>, see <a
  1971. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling
  1972. * Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.</p> <p
  1973. * class="title"> <b>Related Resources:</b> </p> <ul> <li> <p> <a
  1974. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>
  1975. * </p> </li> <li> <p> <a
  1976. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>
  1977. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1978. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketCors">AWS
  1979. * API Reference</a></p>
  1980. */
  1981. virtual Model::DeleteBucketCorsOutcome DeleteBucketCors(const Model::DeleteBucketCorsRequest& request) const;
  1982. /**
  1983. * <p>Deletes the <code>cors</code> configuration information set for the
  1984. * bucket.</p> <p>To use this operation, you must have permission to perform the
  1985. * <code>s3:PutBucketCORS</code> action. The bucket owner has this permission by
  1986. * default and can grant this permission to others. </p> <p>For information about
  1987. * <code>cors</code>, see <a
  1988. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling
  1989. * Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.</p> <p
  1990. * class="title"> <b>Related Resources:</b> </p> <ul> <li> <p> <a
  1991. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>
  1992. * </p> </li> <li> <p> <a
  1993. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>
  1994. * </p> </li> </ul><p><h3>See Also:</h3> <a
  1995. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketCors">AWS
  1996. * API Reference</a></p>
  1997. *
  1998. * returns a future to the operation so that it can be executed in parallel to other requests.
  1999. */
  2000. virtual Model::DeleteBucketCorsOutcomeCallable DeleteBucketCorsCallable(const Model::DeleteBucketCorsRequest& request) const;
  2001. /**
  2002. * <p>Deletes the <code>cors</code> configuration information set for the
  2003. * bucket.</p> <p>To use this operation, you must have permission to perform the
  2004. * <code>s3:PutBucketCORS</code> action. The bucket owner has this permission by
  2005. * default and can grant this permission to others. </p> <p>For information about
  2006. * <code>cors</code>, see <a
  2007. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling
  2008. * Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.</p> <p
  2009. * class="title"> <b>Related Resources:</b> </p> <ul> <li> <p> <a
  2010. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>
  2011. * </p> </li> <li> <p> <a
  2012. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>
  2013. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2014. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketCors">AWS
  2015. * API Reference</a></p>
  2016. *
  2017. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  2018. */
  2019. virtual void DeleteBucketCorsAsync(const Model::DeleteBucketCorsRequest& request, const DeleteBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  2020. /**
  2021. * <p>This implementation of the DELETE action removes default encryption from the
  2022. * bucket. For information about the Amazon S3 default encryption feature, see <a
  2023. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
  2024. * S3 Default Bucket Encryption</a> in the <i>Amazon S3 User Guide</i>.</p> <p>To
  2025. * use this operation, you must have permissions to perform the
  2026. * <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this
  2027. * permission by default. The bucket owner can grant this permission to others. For
  2028. * more information about permissions, see <a
  2029. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  2030. * Related to Bucket Subresource Operations</a> and <a
  2031. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  2032. * Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User
  2033. * Guide</i>.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  2034. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>
  2035. * </p> </li> <li> <p> <a
  2036. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>
  2037. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2038. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketEncryption">AWS
  2039. * API Reference</a></p>
  2040. */
  2041. virtual Model::DeleteBucketEncryptionOutcome DeleteBucketEncryption(const Model::DeleteBucketEncryptionRequest& request) const;
  2042. /**
  2043. * <p>This implementation of the DELETE action removes default encryption from the
  2044. * bucket. For information about the Amazon S3 default encryption feature, see <a
  2045. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
  2046. * S3 Default Bucket Encryption</a> in the <i>Amazon S3 User Guide</i>.</p> <p>To
  2047. * use this operation, you must have permissions to perform the
  2048. * <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this
  2049. * permission by default. The bucket owner can grant this permission to others. For
  2050. * more information about permissions, see <a
  2051. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  2052. * Related to Bucket Subresource Operations</a> and <a
  2053. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  2054. * Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User
  2055. * Guide</i>.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  2056. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>
  2057. * </p> </li> <li> <p> <a
  2058. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>
  2059. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2060. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketEncryption">AWS
  2061. * API Reference</a></p>
  2062. *
  2063. * returns a future to the operation so that it can be executed in parallel to other requests.
  2064. */
  2065. virtual Model::DeleteBucketEncryptionOutcomeCallable DeleteBucketEncryptionCallable(const Model::DeleteBucketEncryptionRequest& request) const;
  2066. /**
  2067. * <p>This implementation of the DELETE action removes default encryption from the
  2068. * bucket. For information about the Amazon S3 default encryption feature, see <a
  2069. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
  2070. * S3 Default Bucket Encryption</a> in the <i>Amazon S3 User Guide</i>.</p> <p>To
  2071. * use this operation, you must have permissions to perform the
  2072. * <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this
  2073. * permission by default. The bucket owner can grant this permission to others. For
  2074. * more information about permissions, see <a
  2075. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  2076. * Related to Bucket Subresource Operations</a> and <a
  2077. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  2078. * Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User
  2079. * Guide</i>.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  2080. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>
  2081. * </p> </li> <li> <p> <a
  2082. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>
  2083. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2084. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketEncryption">AWS
  2085. * API Reference</a></p>
  2086. *
  2087. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  2088. */
  2089. virtual void DeleteBucketEncryptionAsync(const Model::DeleteBucketEncryptionRequest& request, const DeleteBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  2090. /**
  2091. * <p>Deletes the S3 Intelligent-Tiering configuration from the specified
  2092. * bucket.</p> <p>The S3 Intelligent-Tiering storage class is designed to optimize
  2093. * storage costs by automatically moving data to the most cost-effective storage
  2094. * access tier, without additional operational overhead. S3 Intelligent-Tiering
  2095. * delivers automatic cost savings by moving data between access tiers, when access
  2096. * patterns change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for
  2097. * objects larger than 128 KB that you plan to store for at least 30 days. If the
  2098. * size of an object is less than 128 KB, it is not eligible for auto-tiering.
  2099. * Smaller objects can be stored, but they are always charged at the frequent
  2100. * access tier rates in the S3 Intelligent-Tiering storage class. </p> <p>If you
  2101. * delete an object before the end of the 30-day minimum storage duration period,
  2102. * you are charged for 30 days. For more information, see <a
  2103. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
  2104. * class for automatically optimizing frequently and infrequently accessed
  2105. * objects</a>.</p> <p>Operations related to
  2106. * <code>DeleteBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
  2107. * <p> <a
  2108. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
  2109. * </p> </li> <li> <p> <a
  2110. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
  2111. * </p> </li> <li> <p> <a
  2112. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
  2113. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2114. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfiguration">AWS
  2115. * API Reference</a></p>
  2116. */
  2117. virtual Model::DeleteBucketIntelligentTieringConfigurationOutcome DeleteBucketIntelligentTieringConfiguration(const Model::DeleteBucketIntelligentTieringConfigurationRequest& request) const;
  2118. /**
  2119. * <p>Deletes the S3 Intelligent-Tiering configuration from the specified
  2120. * bucket.</p> <p>The S3 Intelligent-Tiering storage class is designed to optimize
  2121. * storage costs by automatically moving data to the most cost-effective storage
  2122. * access tier, without additional operational overhead. S3 Intelligent-Tiering
  2123. * delivers automatic cost savings by moving data between access tiers, when access
  2124. * patterns change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for
  2125. * objects larger than 128 KB that you plan to store for at least 30 days. If the
  2126. * size of an object is less than 128 KB, it is not eligible for auto-tiering.
  2127. * Smaller objects can be stored, but they are always charged at the frequent
  2128. * access tier rates in the S3 Intelligent-Tiering storage class. </p> <p>If you
  2129. * delete an object before the end of the 30-day minimum storage duration period,
  2130. * you are charged for 30 days. For more information, see <a
  2131. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
  2132. * class for automatically optimizing frequently and infrequently accessed
  2133. * objects</a>.</p> <p>Operations related to
  2134. * <code>DeleteBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
  2135. * <p> <a
  2136. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
  2137. * </p> </li> <li> <p> <a
  2138. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
  2139. * </p> </li> <li> <p> <a
  2140. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
  2141. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2142. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfiguration">AWS
  2143. * API Reference</a></p>
  2144. *
  2145. * returns a future to the operation so that it can be executed in parallel to other requests.
  2146. */
  2147. virtual Model::DeleteBucketIntelligentTieringConfigurationOutcomeCallable DeleteBucketIntelligentTieringConfigurationCallable(const Model::DeleteBucketIntelligentTieringConfigurationRequest& request) const;
  2148. /**
  2149. * <p>Deletes the S3 Intelligent-Tiering configuration from the specified
  2150. * bucket.</p> <p>The S3 Intelligent-Tiering storage class is designed to optimize
  2151. * storage costs by automatically moving data to the most cost-effective storage
  2152. * access tier, without additional operational overhead. S3 Intelligent-Tiering
  2153. * delivers automatic cost savings by moving data between access tiers, when access
  2154. * patterns change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for
  2155. * objects larger than 128 KB that you plan to store for at least 30 days. If the
  2156. * size of an object is less than 128 KB, it is not eligible for auto-tiering.
  2157. * Smaller objects can be stored, but they are always charged at the frequent
  2158. * access tier rates in the S3 Intelligent-Tiering storage class. </p> <p>If you
  2159. * delete an object before the end of the 30-day minimum storage duration period,
  2160. * you are charged for 30 days. For more information, see <a
  2161. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
  2162. * class for automatically optimizing frequently and infrequently accessed
  2163. * objects</a>.</p> <p>Operations related to
  2164. * <code>DeleteBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
  2165. * <p> <a
  2166. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
  2167. * </p> </li> <li> <p> <a
  2168. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
  2169. * </p> </li> <li> <p> <a
  2170. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
  2171. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2172. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfiguration">AWS
  2173. * API Reference</a></p>
  2174. *
  2175. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  2176. */
  2177. virtual void DeleteBucketIntelligentTieringConfigurationAsync(const Model::DeleteBucketIntelligentTieringConfigurationRequest& request, const DeleteBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  2178. /**
  2179. * <p>Deletes an inventory configuration (identified by the inventory ID) from the
  2180. * bucket.</p> <p>To use this operation, you must have permissions to perform the
  2181. * <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this
  2182. * permission by default. The bucket owner can grant this permission to others. For
  2183. * more information about permissions, see <a
  2184. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  2185. * Related to Bucket Subresource Operations</a> and <a
  2186. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  2187. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  2188. * the Amazon S3 inventory feature, see <a
  2189. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
  2190. * S3 Inventory</a>.</p> <p>Operations related to
  2191. * <code>DeleteBucketInventoryConfiguration</code> include: </p> <ul> <li> <p> <a
  2192. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
  2193. * </p> </li> <li> <p> <a
  2194. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
  2195. * </p> </li> <li> <p> <a
  2196. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
  2197. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2198. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketInventoryConfiguration">AWS
  2199. * API Reference</a></p>
  2200. */
  2201. virtual Model::DeleteBucketInventoryConfigurationOutcome DeleteBucketInventoryConfiguration(const Model::DeleteBucketInventoryConfigurationRequest& request) const;
  2202. /**
  2203. * <p>Deletes an inventory configuration (identified by the inventory ID) from the
  2204. * bucket.</p> <p>To use this operation, you must have permissions to perform the
  2205. * <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this
  2206. * permission by default. The bucket owner can grant this permission to others. For
  2207. * more information about permissions, see <a
  2208. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  2209. * Related to Bucket Subresource Operations</a> and <a
  2210. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  2211. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  2212. * the Amazon S3 inventory feature, see <a
  2213. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
  2214. * S3 Inventory</a>.</p> <p>Operations related to
  2215. * <code>DeleteBucketInventoryConfiguration</code> include: </p> <ul> <li> <p> <a
  2216. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
  2217. * </p> </li> <li> <p> <a
  2218. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
  2219. * </p> </li> <li> <p> <a
  2220. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
  2221. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2222. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketInventoryConfiguration">AWS
  2223. * API Reference</a></p>
  2224. *
  2225. * returns a future to the operation so that it can be executed in parallel to other requests.
  2226. */
  2227. virtual Model::DeleteBucketInventoryConfigurationOutcomeCallable DeleteBucketInventoryConfigurationCallable(const Model::DeleteBucketInventoryConfigurationRequest& request) const;
  2228. /**
  2229. * <p>Deletes an inventory configuration (identified by the inventory ID) from the
  2230. * bucket.</p> <p>To use this operation, you must have permissions to perform the
  2231. * <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this
  2232. * permission by default. The bucket owner can grant this permission to others. For
  2233. * more information about permissions, see <a
  2234. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  2235. * Related to Bucket Subresource Operations</a> and <a
  2236. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  2237. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  2238. * the Amazon S3 inventory feature, see <a
  2239. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
  2240. * S3 Inventory</a>.</p> <p>Operations related to
  2241. * <code>DeleteBucketInventoryConfiguration</code> include: </p> <ul> <li> <p> <a
  2242. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
  2243. * </p> </li> <li> <p> <a
  2244. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
  2245. * </p> </li> <li> <p> <a
  2246. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
  2247. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2248. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketInventoryConfiguration">AWS
  2249. * API Reference</a></p>
  2250. *
  2251. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  2252. */
  2253. virtual void DeleteBucketInventoryConfigurationAsync(const Model::DeleteBucketInventoryConfigurationRequest& request, const DeleteBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  2254. /**
  2255. * <p>Deletes the lifecycle configuration from the specified bucket. Amazon S3
  2256. * removes all the lifecycle configuration rules in the lifecycle subresource
  2257. * associated with the bucket. Your objects never expire, and Amazon S3 no longer
  2258. * automatically deletes any objects on the basis of rules contained in the deleted
  2259. * lifecycle configuration.</p> <p>To use this operation, you must have permission
  2260. * to perform the <code>s3:PutLifecycleConfiguration</code> action. By default, the
  2261. * bucket owner has this permission and the bucket owner can grant this permission
  2262. * to others.</p> <p>There is usually some time lag before lifecycle configuration
  2263. * deletion is fully propagated to all the Amazon S3 systems.</p> <p>For more
  2264. * information about the object expiration, see <a
  2265. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions">Elements
  2266. * to Describe Lifecycle Actions</a>.</p> <p>Related actions include:</p> <ul> <li>
  2267. * <p> <a
  2268. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
  2269. * </p> </li> <li> <p> <a
  2270. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
  2271. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2272. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketLifecycle">AWS
  2273. * API Reference</a></p>
  2274. */
  2275. virtual Model::DeleteBucketLifecycleOutcome DeleteBucketLifecycle(const Model::DeleteBucketLifecycleRequest& request) const;
  2276. /**
  2277. * <p>Deletes the lifecycle configuration from the specified bucket. Amazon S3
  2278. * removes all the lifecycle configuration rules in the lifecycle subresource
  2279. * associated with the bucket. Your objects never expire, and Amazon S3 no longer
  2280. * automatically deletes any objects on the basis of rules contained in the deleted
  2281. * lifecycle configuration.</p> <p>To use this operation, you must have permission
  2282. * to perform the <code>s3:PutLifecycleConfiguration</code> action. By default, the
  2283. * bucket owner has this permission and the bucket owner can grant this permission
  2284. * to others.</p> <p>There is usually some time lag before lifecycle configuration
  2285. * deletion is fully propagated to all the Amazon S3 systems.</p> <p>For more
  2286. * information about the object expiration, see <a
  2287. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions">Elements
  2288. * to Describe Lifecycle Actions</a>.</p> <p>Related actions include:</p> <ul> <li>
  2289. * <p> <a
  2290. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
  2291. * </p> </li> <li> <p> <a
  2292. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
  2293. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2294. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketLifecycle">AWS
  2295. * API Reference</a></p>
  2296. *
  2297. * returns a future to the operation so that it can be executed in parallel to other requests.
  2298. */
  2299. virtual Model::DeleteBucketLifecycleOutcomeCallable DeleteBucketLifecycleCallable(const Model::DeleteBucketLifecycleRequest& request) const;
  2300. /**
  2301. * <p>Deletes the lifecycle configuration from the specified bucket. Amazon S3
  2302. * removes all the lifecycle configuration rules in the lifecycle subresource
  2303. * associated with the bucket. Your objects never expire, and Amazon S3 no longer
  2304. * automatically deletes any objects on the basis of rules contained in the deleted
  2305. * lifecycle configuration.</p> <p>To use this operation, you must have permission
  2306. * to perform the <code>s3:PutLifecycleConfiguration</code> action. By default, the
  2307. * bucket owner has this permission and the bucket owner can grant this permission
  2308. * to others.</p> <p>There is usually some time lag before lifecycle configuration
  2309. * deletion is fully propagated to all the Amazon S3 systems.</p> <p>For more
  2310. * information about the object expiration, see <a
  2311. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions">Elements
  2312. * to Describe Lifecycle Actions</a>.</p> <p>Related actions include:</p> <ul> <li>
  2313. * <p> <a
  2314. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
  2315. * </p> </li> <li> <p> <a
  2316. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
  2317. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2318. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketLifecycle">AWS
  2319. * API Reference</a></p>
  2320. *
  2321. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  2322. */
  2323. virtual void DeleteBucketLifecycleAsync(const Model::DeleteBucketLifecycleRequest& request, const DeleteBucketLifecycleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  2324. /**
  2325. * <p>Deletes a metrics configuration for the Amazon CloudWatch request metrics
  2326. * (specified by the metrics configuration ID) from the bucket. Note that this
  2327. * doesn't include the daily storage metrics.</p> <p> To use this operation, you
  2328. * must have permissions to perform the <code>s3:PutMetricsConfiguration</code>
  2329. * action. The bucket owner has this permission by default. The bucket owner can
  2330. * grant this permission to others. For more information about permissions, see <a
  2331. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  2332. * Related to Bucket Subresource Operations</a> and <a
  2333. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  2334. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  2335. * CloudWatch request metrics for Amazon S3, see <a
  2336. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  2337. * Metrics with Amazon CloudWatch</a>. </p> <p>The following operations are related
  2338. * to <code>DeleteBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
  2339. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>
  2340. * </p> </li> <li> <p> <a
  2341. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
  2342. * </p> </li> <li> <p> <a
  2343. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
  2344. * </p> </li> <li> <p> <a
  2345. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  2346. * Metrics with Amazon CloudWatch</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  2347. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetricsConfiguration">AWS
  2348. * API Reference</a></p>
  2349. */
  2350. virtual Model::DeleteBucketMetricsConfigurationOutcome DeleteBucketMetricsConfiguration(const Model::DeleteBucketMetricsConfigurationRequest& request) const;
  2351. /**
  2352. * <p>Deletes a metrics configuration for the Amazon CloudWatch request metrics
  2353. * (specified by the metrics configuration ID) from the bucket. Note that this
  2354. * doesn't include the daily storage metrics.</p> <p> To use this operation, you
  2355. * must have permissions to perform the <code>s3:PutMetricsConfiguration</code>
  2356. * action. The bucket owner has this permission by default. The bucket owner can
  2357. * grant this permission to others. For more information about permissions, see <a
  2358. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  2359. * Related to Bucket Subresource Operations</a> and <a
  2360. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  2361. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  2362. * CloudWatch request metrics for Amazon S3, see <a
  2363. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  2364. * Metrics with Amazon CloudWatch</a>. </p> <p>The following operations are related
  2365. * to <code>DeleteBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
  2366. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>
  2367. * </p> </li> <li> <p> <a
  2368. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
  2369. * </p> </li> <li> <p> <a
  2370. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
  2371. * </p> </li> <li> <p> <a
  2372. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  2373. * Metrics with Amazon CloudWatch</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  2374. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetricsConfiguration">AWS
  2375. * API Reference</a></p>
  2376. *
  2377. * returns a future to the operation so that it can be executed in parallel to other requests.
  2378. */
  2379. virtual Model::DeleteBucketMetricsConfigurationOutcomeCallable DeleteBucketMetricsConfigurationCallable(const Model::DeleteBucketMetricsConfigurationRequest& request) const;
  2380. /**
  2381. * <p>Deletes a metrics configuration for the Amazon CloudWatch request metrics
  2382. * (specified by the metrics configuration ID) from the bucket. Note that this
  2383. * doesn't include the daily storage metrics.</p> <p> To use this operation, you
  2384. * must have permissions to perform the <code>s3:PutMetricsConfiguration</code>
  2385. * action. The bucket owner has this permission by default. The bucket owner can
  2386. * grant this permission to others. For more information about permissions, see <a
  2387. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  2388. * Related to Bucket Subresource Operations</a> and <a
  2389. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  2390. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  2391. * CloudWatch request metrics for Amazon S3, see <a
  2392. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  2393. * Metrics with Amazon CloudWatch</a>. </p> <p>The following operations are related
  2394. * to <code>DeleteBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
  2395. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>
  2396. * </p> </li> <li> <p> <a
  2397. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
  2398. * </p> </li> <li> <p> <a
  2399. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
  2400. * </p> </li> <li> <p> <a
  2401. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  2402. * Metrics with Amazon CloudWatch</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  2403. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetricsConfiguration">AWS
  2404. * API Reference</a></p>
  2405. *
  2406. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  2407. */
  2408. virtual void DeleteBucketMetricsConfigurationAsync(const Model::DeleteBucketMetricsConfigurationRequest& request, const DeleteBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  2409. /**
  2410. * <p>Removes <code>OwnershipControls</code> for an Amazon S3 bucket. To use this
  2411. * operation, you must have the <code>s3:PutBucketOwnershipControls</code>
  2412. * permission. For more information about Amazon S3 permissions, see <a
  2413. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  2414. * Permissions in a Policy</a>.</p> <p>For information about Amazon S3 Object
  2415. * Ownership, see <a
  2416. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
  2417. * Object Ownership</a>. </p> <p>The following operations are related to
  2418. * <code>DeleteBucketOwnershipControls</code>:</p> <ul> <li> <p>
  2419. * <a>GetBucketOwnershipControls</a> </p> </li> <li> <p>
  2420. * <a>PutBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  2421. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControls">AWS
  2422. * API Reference</a></p>
  2423. */
  2424. virtual Model::DeleteBucketOwnershipControlsOutcome DeleteBucketOwnershipControls(const Model::DeleteBucketOwnershipControlsRequest& request) const;
  2425. /**
  2426. * <p>Removes <code>OwnershipControls</code> for an Amazon S3 bucket. To use this
  2427. * operation, you must have the <code>s3:PutBucketOwnershipControls</code>
  2428. * permission. For more information about Amazon S3 permissions, see <a
  2429. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  2430. * Permissions in a Policy</a>.</p> <p>For information about Amazon S3 Object
  2431. * Ownership, see <a
  2432. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
  2433. * Object Ownership</a>. </p> <p>The following operations are related to
  2434. * <code>DeleteBucketOwnershipControls</code>:</p> <ul> <li> <p>
  2435. * <a>GetBucketOwnershipControls</a> </p> </li> <li> <p>
  2436. * <a>PutBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  2437. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControls">AWS
  2438. * API Reference</a></p>
  2439. *
  2440. * returns a future to the operation so that it can be executed in parallel to other requests.
  2441. */
  2442. virtual Model::DeleteBucketOwnershipControlsOutcomeCallable DeleteBucketOwnershipControlsCallable(const Model::DeleteBucketOwnershipControlsRequest& request) const;
  2443. /**
  2444. * <p>Removes <code>OwnershipControls</code> for an Amazon S3 bucket. To use this
  2445. * operation, you must have the <code>s3:PutBucketOwnershipControls</code>
  2446. * permission. For more information about Amazon S3 permissions, see <a
  2447. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  2448. * Permissions in a Policy</a>.</p> <p>For information about Amazon S3 Object
  2449. * Ownership, see <a
  2450. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
  2451. * Object Ownership</a>. </p> <p>The following operations are related to
  2452. * <code>DeleteBucketOwnershipControls</code>:</p> <ul> <li> <p>
  2453. * <a>GetBucketOwnershipControls</a> </p> </li> <li> <p>
  2454. * <a>PutBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  2455. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControls">AWS
  2456. * API Reference</a></p>
  2457. *
  2458. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  2459. */
  2460. virtual void DeleteBucketOwnershipControlsAsync(const Model::DeleteBucketOwnershipControlsRequest& request, const DeleteBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  2461. /**
  2462. * <p>This implementation of the DELETE action uses the policy subresource to
  2463. * delete the policy of a specified bucket. If you are using an identity other than
  2464. * the root user of the AWS account that owns the bucket, the calling identity must
  2465. * have the <code>DeleteBucketPolicy</code> permissions on the specified bucket and
  2466. * belong to the bucket owner's account to use this operation. </p> <p>If you don't
  2467. * have <code>DeleteBucketPolicy</code> permissions, Amazon S3 returns a <code>403
  2468. * Access Denied</code> error. If you have the correct permissions, but you're not
  2469. * using an identity that belongs to the bucket owner's account, Amazon S3 returns
  2470. * a <code>405 Method Not Allowed</code> error. </p> <p>As a security
  2471. * precaution, the root user of the AWS account that owns a bucket can always use
  2472. * this operation, even if the policy explicitly denies the root user the ability
  2473. * to perform this action.</p> <p>For more information about bucket
  2474. * policies, see <a
  2475. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  2476. * Bucket Policies and UserPolicies</a>. </p> <p>The following operations are
  2477. * related to <code>DeleteBucketPolicy</code> </p> <ul> <li> <p> <a
  2478. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  2479. * </p> </li> <li> <p> <a
  2480. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  2481. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2482. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketPolicy">AWS
  2483. * API Reference</a></p>
  2484. */
  2485. virtual Model::DeleteBucketPolicyOutcome DeleteBucketPolicy(const Model::DeleteBucketPolicyRequest& request) const;
  2486. /**
  2487. * <p>This implementation of the DELETE action uses the policy subresource to
  2488. * delete the policy of a specified bucket. If you are using an identity other than
  2489. * the root user of the AWS account that owns the bucket, the calling identity must
  2490. * have the <code>DeleteBucketPolicy</code> permissions on the specified bucket and
  2491. * belong to the bucket owner's account to use this operation. </p> <p>If you don't
  2492. * have <code>DeleteBucketPolicy</code> permissions, Amazon S3 returns a <code>403
  2493. * Access Denied</code> error. If you have the correct permissions, but you're not
  2494. * using an identity that belongs to the bucket owner's account, Amazon S3 returns
  2495. * a <code>405 Method Not Allowed</code> error. </p> <p>As a security
  2496. * precaution, the root user of the AWS account that owns a bucket can always use
  2497. * this operation, even if the policy explicitly denies the root user the ability
  2498. * to perform this action.</p> <p>For more information about bucket
  2499. * policies, see <a
  2500. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  2501. * Bucket Policies and UserPolicies</a>. </p> <p>The following operations are
  2502. * related to <code>DeleteBucketPolicy</code> </p> <ul> <li> <p> <a
  2503. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  2504. * </p> </li> <li> <p> <a
  2505. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  2506. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2507. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketPolicy">AWS
  2508. * API Reference</a></p>
  2509. *
  2510. * returns a future to the operation so that it can be executed in parallel to other requests.
  2511. */
  2512. virtual Model::DeleteBucketPolicyOutcomeCallable DeleteBucketPolicyCallable(const Model::DeleteBucketPolicyRequest& request) const;
  2513. /**
  2514. * <p>This implementation of the DELETE action uses the policy subresource to
  2515. * delete the policy of a specified bucket. If you are using an identity other than
  2516. * the root user of the AWS account that owns the bucket, the calling identity must
  2517. * have the <code>DeleteBucketPolicy</code> permissions on the specified bucket and
  2518. * belong to the bucket owner's account to use this operation. </p> <p>If you don't
  2519. * have <code>DeleteBucketPolicy</code> permissions, Amazon S3 returns a <code>403
  2520. * Access Denied</code> error. If you have the correct permissions, but you're not
  2521. * using an identity that belongs to the bucket owner's account, Amazon S3 returns
  2522. * a <code>405 Method Not Allowed</code> error. </p> <p>As a security
  2523. * precaution, the root user of the AWS account that owns a bucket can always use
  2524. * this operation, even if the policy explicitly denies the root user the ability
  2525. * to perform this action.</p> <p>For more information about bucket
  2526. * policies, see <a
  2527. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  2528. * Bucket Policies and UserPolicies</a>. </p> <p>The following operations are
  2529. * related to <code>DeleteBucketPolicy</code> </p> <ul> <li> <p> <a
  2530. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  2531. * </p> </li> <li> <p> <a
  2532. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  2533. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2534. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketPolicy">AWS
  2535. * API Reference</a></p>
  2536. *
  2537. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  2538. */
  2539. virtual void DeleteBucketPolicyAsync(const Model::DeleteBucketPolicyRequest& request, const DeleteBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  2540. /**
  2541. * <p> Deletes the replication configuration from the bucket.</p> <p>To use this
  2542. * operation, you must have permissions to perform the
  2543. * <code>s3:PutReplicationConfiguration</code> action. The bucket owner has these
  2544. * permissions by default and can grant it to others. For more information about
  2545. * permissions, see <a
  2546. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  2547. * Related to Bucket Subresource Operations</a> and <a
  2548. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  2549. * Access Permissions to Your Amazon S3 Resources</a>. </p> <p>It can take a
  2550. * while for the deletion of a replication configuration to fully propagate.</p>
  2551. * <p> For information about replication configuration, see <a
  2552. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
  2553. * in the <i>Amazon S3 Developer Guide</i>. </p> <p>The following operations are
  2554. * related to <code>DeleteBucketReplication</code>:</p> <ul> <li> <p> <a
  2555. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>
  2556. * </p> </li> <li> <p> <a
  2557. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>
  2558. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2559. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketReplication">AWS
  2560. * API Reference</a></p>
  2561. */
  2562. virtual Model::DeleteBucketReplicationOutcome DeleteBucketReplication(const Model::DeleteBucketReplicationRequest& request) const;
  2563. /**
  2564. * <p> Deletes the replication configuration from the bucket.</p> <p>To use this
  2565. * operation, you must have permissions to perform the
  2566. * <code>s3:PutReplicationConfiguration</code> action. The bucket owner has these
  2567. * permissions by default and can grant it to others. For more information about
  2568. * permissions, see <a
  2569. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  2570. * Related to Bucket Subresource Operations</a> and <a
  2571. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  2572. * Access Permissions to Your Amazon S3 Resources</a>. </p> <p>It can take a
  2573. * while for the deletion of a replication configuration to fully propagate.</p>
  2574. * <p> For information about replication configuration, see <a
  2575. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
  2576. * in the <i>Amazon S3 Developer Guide</i>. </p> <p>The following operations are
  2577. * related to <code>DeleteBucketReplication</code>:</p> <ul> <li> <p> <a
  2578. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>
  2579. * </p> </li> <li> <p> <a
  2580. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>
  2581. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2582. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketReplication">AWS
  2583. * API Reference</a></p>
  2584. *
  2585. * returns a future to the operation so that it can be executed in parallel to other requests.
  2586. */
  2587. virtual Model::DeleteBucketReplicationOutcomeCallable DeleteBucketReplicationCallable(const Model::DeleteBucketReplicationRequest& request) const;
  2588. /**
  2589. * <p> Deletes the replication configuration from the bucket.</p> <p>To use this
  2590. * operation, you must have permissions to perform the
  2591. * <code>s3:PutReplicationConfiguration</code> action. The bucket owner has these
  2592. * permissions by default and can grant it to others. For more information about
  2593. * permissions, see <a
  2594. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  2595. * Related to Bucket Subresource Operations</a> and <a
  2596. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  2597. * Access Permissions to Your Amazon S3 Resources</a>. </p> <p>It can take a
  2598. * while for the deletion of a replication configuration to fully propagate.</p>
  2599. * <p> For information about replication configuration, see <a
  2600. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
  2601. * in the <i>Amazon S3 Developer Guide</i>. </p> <p>The following operations are
  2602. * related to <code>DeleteBucketReplication</code>:</p> <ul> <li> <p> <a
  2603. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>
  2604. * </p> </li> <li> <p> <a
  2605. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>
  2606. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2607. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketReplication">AWS
  2608. * API Reference</a></p>
  2609. *
  2610. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  2611. */
  2612. virtual void DeleteBucketReplicationAsync(const Model::DeleteBucketReplicationRequest& request, const DeleteBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  2613. /**
  2614. * <p>Deletes the tags from the bucket.</p> <p>To use this operation, you must have
  2615. * permission to perform the <code>s3:PutBucketTagging</code> action. By default,
  2616. * the bucket owner has this permission and can grant this permission to others.
  2617. * </p> <p>The following operations are related to
  2618. * <code>DeleteBucketTagging</code>:</p> <ul> <li> <p> <a
  2619. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>
  2620. * </p> </li> <li> <p> <a
  2621. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>
  2622. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2623. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketTagging">AWS
  2624. * API Reference</a></p>
  2625. */
  2626. virtual Model::DeleteBucketTaggingOutcome DeleteBucketTagging(const Model::DeleteBucketTaggingRequest& request) const;
  2627. /**
  2628. * <p>Deletes the tags from the bucket.</p> <p>To use this operation, you must have
  2629. * permission to perform the <code>s3:PutBucketTagging</code> action. By default,
  2630. * the bucket owner has this permission and can grant this permission to others.
  2631. * </p> <p>The following operations are related to
  2632. * <code>DeleteBucketTagging</code>:</p> <ul> <li> <p> <a
  2633. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>
  2634. * </p> </li> <li> <p> <a
  2635. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>
  2636. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2637. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketTagging">AWS
  2638. * API Reference</a></p>
  2639. *
  2640. * returns a future to the operation so that it can be executed in parallel to other requests.
  2641. */
  2642. virtual Model::DeleteBucketTaggingOutcomeCallable DeleteBucketTaggingCallable(const Model::DeleteBucketTaggingRequest& request) const;
  2643. /**
  2644. * <p>Deletes the tags from the bucket.</p> <p>To use this operation, you must have
  2645. * permission to perform the <code>s3:PutBucketTagging</code> action. By default,
  2646. * the bucket owner has this permission and can grant this permission to others.
  2647. * </p> <p>The following operations are related to
  2648. * <code>DeleteBucketTagging</code>:</p> <ul> <li> <p> <a
  2649. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>
  2650. * </p> </li> <li> <p> <a
  2651. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>
  2652. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2653. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketTagging">AWS
  2654. * API Reference</a></p>
  2655. *
  2656. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  2657. */
  2658. virtual void DeleteBucketTaggingAsync(const Model::DeleteBucketTaggingRequest& request, const DeleteBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  2659. /**
  2660. * <p>This action removes the website configuration for a bucket. Amazon S3 returns
  2661. * a <code>200 OK</code> response upon successfully deleting a website
  2662. * configuration on the specified bucket. You will get a <code>200 OK</code>
  2663. * response if the website configuration you are trying to delete does not exist on
  2664. * the bucket. Amazon S3 returns a <code>404</code> response if the bucket
  2665. * specified in the request does not exist.</p> <p>This DELETE action requires the
  2666. * <code>S3:DeleteBucketWebsite</code> permission. By default, only the bucket
  2667. * owner can delete the website configuration attached to a bucket. However, bucket
  2668. * owners can grant other users permission to delete the website configuration by
  2669. * writing a bucket policy granting them the <code>S3:DeleteBucketWebsite</code>
  2670. * permission. </p> <p>For more information about hosting websites, see <a
  2671. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
  2672. * Websites on Amazon S3</a>. </p> <p>The following operations are related to
  2673. * <code>DeleteBucketWebsite</code>:</p> <ul> <li> <p> <a
  2674. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html">GetBucketWebsite</a>
  2675. * </p> </li> <li> <p> <a
  2676. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>
  2677. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2678. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketWebsite">AWS
  2679. * API Reference</a></p>
  2680. */
  2681. virtual Model::DeleteBucketWebsiteOutcome DeleteBucketWebsite(const Model::DeleteBucketWebsiteRequest& request) const;
  2682. /**
  2683. * <p>This action removes the website configuration for a bucket. Amazon S3 returns
  2684. * a <code>200 OK</code> response upon successfully deleting a website
  2685. * configuration on the specified bucket. You will get a <code>200 OK</code>
  2686. * response if the website configuration you are trying to delete does not exist on
  2687. * the bucket. Amazon S3 returns a <code>404</code> response if the bucket
  2688. * specified in the request does not exist.</p> <p>This DELETE action requires the
  2689. * <code>S3:DeleteBucketWebsite</code> permission. By default, only the bucket
  2690. * owner can delete the website configuration attached to a bucket. However, bucket
  2691. * owners can grant other users permission to delete the website configuration by
  2692. * writing a bucket policy granting them the <code>S3:DeleteBucketWebsite</code>
  2693. * permission. </p> <p>For more information about hosting websites, see <a
  2694. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
  2695. * Websites on Amazon S3</a>. </p> <p>The following operations are related to
  2696. * <code>DeleteBucketWebsite</code>:</p> <ul> <li> <p> <a
  2697. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html">GetBucketWebsite</a>
  2698. * </p> </li> <li> <p> <a
  2699. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>
  2700. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2701. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketWebsite">AWS
  2702. * API Reference</a></p>
  2703. *
  2704. * returns a future to the operation so that it can be executed in parallel to other requests.
  2705. */
  2706. virtual Model::DeleteBucketWebsiteOutcomeCallable DeleteBucketWebsiteCallable(const Model::DeleteBucketWebsiteRequest& request) const;
  2707. /**
  2708. * <p>This action removes the website configuration for a bucket. Amazon S3 returns
  2709. * a <code>200 OK</code> response upon successfully deleting a website
  2710. * configuration on the specified bucket. You will get a <code>200 OK</code>
  2711. * response if the website configuration you are trying to delete does not exist on
  2712. * the bucket. Amazon S3 returns a <code>404</code> response if the bucket
  2713. * specified in the request does not exist.</p> <p>This DELETE action requires the
  2714. * <code>S3:DeleteBucketWebsite</code> permission. By default, only the bucket
  2715. * owner can delete the website configuration attached to a bucket. However, bucket
  2716. * owners can grant other users permission to delete the website configuration by
  2717. * writing a bucket policy granting them the <code>S3:DeleteBucketWebsite</code>
  2718. * permission. </p> <p>For more information about hosting websites, see <a
  2719. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
  2720. * Websites on Amazon S3</a>. </p> <p>The following operations are related to
  2721. * <code>DeleteBucketWebsite</code>:</p> <ul> <li> <p> <a
  2722. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html">GetBucketWebsite</a>
  2723. * </p> </li> <li> <p> <a
  2724. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>
  2725. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2726. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketWebsite">AWS
  2727. * API Reference</a></p>
  2728. *
  2729. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  2730. */
  2731. virtual void DeleteBucketWebsiteAsync(const Model::DeleteBucketWebsiteRequest& request, const DeleteBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  2732. /**
  2733. * <p>Removes the null version (if there is one) of an object and inserts a delete
  2734. * marker, which becomes the latest version of the object. If there isn't a null
  2735. * version, Amazon S3 does not remove any objects but will still respond that the
  2736. * command was successful.</p> <p>To remove a specific version, you must be the
  2737. * bucket owner and you must use the version Id subresource. Using this subresource
  2738. * permanently deletes the version. If the object deleted is a delete marker,
  2739. * Amazon S3 sets the response header, <code>x-amz-delete-marker</code>, to true.
  2740. * </p> <p>If the object you want to delete is in a bucket where the bucket
  2741. * versioning configuration is MFA Delete enabled, you must include the
  2742. * <code>x-amz-mfa</code> request header in the DELETE <code>versionId</code>
  2743. * request. Requests that include <code>x-amz-mfa</code> must use HTTPS. </p> <p>
  2744. * For more information about MFA Delete, see <a
  2745. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html">Using
  2746. * MFA Delete</a>. To see sample requests that use versioning, see <a
  2747. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete">Sample
  2748. * Request</a>. </p> <p>You can delete objects by explicitly calling DELETE Object
  2749. * or configure its lifecycle (<a
  2750. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>)
  2751. * to enable Amazon S3 to remove them for you. If you want to block users or
  2752. * accounts from removing or deleting objects from your bucket, you must deny them
  2753. * the <code>s3:DeleteObject</code>, <code>s3:DeleteObjectVersion</code>, and
  2754. * <code>s3:PutLifeCycleConfiguration</code> actions. </p> <p>The following action
  2755. * is related to <code>DeleteObject</code>:</p> <ul> <li> <p> <a
  2756. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  2757. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2758. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObject">AWS API
  2759. * Reference</a></p>
  2760. */
  2761. virtual Model::DeleteObjectOutcome DeleteObject(const Model::DeleteObjectRequest& request) const;
  2762. /**
  2763. * <p>Removes the null version (if there is one) of an object and inserts a delete
  2764. * marker, which becomes the latest version of the object. If there isn't a null
  2765. * version, Amazon S3 does not remove any objects but will still respond that the
  2766. * command was successful.</p> <p>To remove a specific version, you must be the
  2767. * bucket owner and you must use the version Id subresource. Using this subresource
  2768. * permanently deletes the version. If the object deleted is a delete marker,
  2769. * Amazon S3 sets the response header, <code>x-amz-delete-marker</code>, to true.
  2770. * </p> <p>If the object you want to delete is in a bucket where the bucket
  2771. * versioning configuration is MFA Delete enabled, you must include the
  2772. * <code>x-amz-mfa</code> request header in the DELETE <code>versionId</code>
  2773. * request. Requests that include <code>x-amz-mfa</code> must use HTTPS. </p> <p>
  2774. * For more information about MFA Delete, see <a
  2775. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html">Using
  2776. * MFA Delete</a>. To see sample requests that use versioning, see <a
  2777. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete">Sample
  2778. * Request</a>. </p> <p>You can delete objects by explicitly calling DELETE Object
  2779. * or configure its lifecycle (<a
  2780. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>)
  2781. * to enable Amazon S3 to remove them for you. If you want to block users or
  2782. * accounts from removing or deleting objects from your bucket, you must deny them
  2783. * the <code>s3:DeleteObject</code>, <code>s3:DeleteObjectVersion</code>, and
  2784. * <code>s3:PutLifeCycleConfiguration</code> actions. </p> <p>The following action
  2785. * is related to <code>DeleteObject</code>:</p> <ul> <li> <p> <a
  2786. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  2787. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2788. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObject">AWS API
  2789. * Reference</a></p>
  2790. *
  2791. * returns a future to the operation so that it can be executed in parallel to other requests.
  2792. */
  2793. virtual Model::DeleteObjectOutcomeCallable DeleteObjectCallable(const Model::DeleteObjectRequest& request) const;
  2794. /**
  2795. * <p>Removes the null version (if there is one) of an object and inserts a delete
  2796. * marker, which becomes the latest version of the object. If there isn't a null
  2797. * version, Amazon S3 does not remove any objects but will still respond that the
  2798. * command was successful.</p> <p>To remove a specific version, you must be the
  2799. * bucket owner and you must use the version Id subresource. Using this subresource
  2800. * permanently deletes the version. If the object deleted is a delete marker,
  2801. * Amazon S3 sets the response header, <code>x-amz-delete-marker</code>, to true.
  2802. * </p> <p>If the object you want to delete is in a bucket where the bucket
  2803. * versioning configuration is MFA Delete enabled, you must include the
  2804. * <code>x-amz-mfa</code> request header in the DELETE <code>versionId</code>
  2805. * request. Requests that include <code>x-amz-mfa</code> must use HTTPS. </p> <p>
  2806. * For more information about MFA Delete, see <a
  2807. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html">Using
  2808. * MFA Delete</a>. To see sample requests that use versioning, see <a
  2809. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete">Sample
  2810. * Request</a>. </p> <p>You can delete objects by explicitly calling DELETE Object
  2811. * or configure its lifecycle (<a
  2812. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>)
  2813. * to enable Amazon S3 to remove them for you. If you want to block users or
  2814. * accounts from removing or deleting objects from your bucket, you must deny them
  2815. * the <code>s3:DeleteObject</code>, <code>s3:DeleteObjectVersion</code>, and
  2816. * <code>s3:PutLifeCycleConfiguration</code> actions. </p> <p>The following action
  2817. * is related to <code>DeleteObject</code>:</p> <ul> <li> <p> <a
  2818. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  2819. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2820. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObject">AWS API
  2821. * Reference</a></p>
  2822. *
  2823. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  2824. */
  2825. virtual void DeleteObjectAsync(const Model::DeleteObjectRequest& request, const DeleteObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  2826. /**
  2827. * <p>Removes the entire tag set from the specified object. For more information
  2828. * about managing object tags, see <a
  2829. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">
  2830. * Object Tagging</a>.</p> <p>To use this operation, you must have permission to
  2831. * perform the <code>s3:DeleteObjectTagging</code> action.</p> <p>To delete tags of
  2832. * a specific object version, add the <code>versionId</code> query parameter in the
  2833. * request. You will need permission for the
  2834. * <code>s3:DeleteObjectVersionTagging</code> action.</p> <p>The following
  2835. * operations are related to <code>DeleteBucketMetricsConfiguration</code>:</p>
  2836. * <ul> <li> <p> <a
  2837. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>
  2838. * </p> </li> <li> <p> <a
  2839. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
  2840. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2841. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectTagging">AWS
  2842. * API Reference</a></p>
  2843. */
  2844. virtual Model::DeleteObjectTaggingOutcome DeleteObjectTagging(const Model::DeleteObjectTaggingRequest& request) const;
  2845. /**
  2846. * <p>Removes the entire tag set from the specified object. For more information
  2847. * about managing object tags, see <a
  2848. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">
  2849. * Object Tagging</a>.</p> <p>To use this operation, you must have permission to
  2850. * perform the <code>s3:DeleteObjectTagging</code> action.</p> <p>To delete tags of
  2851. * a specific object version, add the <code>versionId</code> query parameter in the
  2852. * request. You will need permission for the
  2853. * <code>s3:DeleteObjectVersionTagging</code> action.</p> <p>The following
  2854. * operations are related to <code>DeleteBucketMetricsConfiguration</code>:</p>
  2855. * <ul> <li> <p> <a
  2856. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>
  2857. * </p> </li> <li> <p> <a
  2858. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
  2859. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2860. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectTagging">AWS
  2861. * API Reference</a></p>
  2862. *
  2863. * returns a future to the operation so that it can be executed in parallel to other requests.
  2864. */
  2865. virtual Model::DeleteObjectTaggingOutcomeCallable DeleteObjectTaggingCallable(const Model::DeleteObjectTaggingRequest& request) const;
  2866. /**
  2867. * <p>Removes the entire tag set from the specified object. For more information
  2868. * about managing object tags, see <a
  2869. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">
  2870. * Object Tagging</a>.</p> <p>To use this operation, you must have permission to
  2871. * perform the <code>s3:DeleteObjectTagging</code> action.</p> <p>To delete tags of
  2872. * a specific object version, add the <code>versionId</code> query parameter in the
  2873. * request. You will need permission for the
  2874. * <code>s3:DeleteObjectVersionTagging</code> action.</p> <p>The following
  2875. * operations are related to <code>DeleteBucketMetricsConfiguration</code>:</p>
  2876. * <ul> <li> <p> <a
  2877. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>
  2878. * </p> </li> <li> <p> <a
  2879. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
  2880. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2881. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectTagging">AWS
  2882. * API Reference</a></p>
  2883. *
  2884. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  2885. */
  2886. virtual void DeleteObjectTaggingAsync(const Model::DeleteObjectTaggingRequest& request, const DeleteObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  2887. /**
  2888. * <p>This action enables you to delete multiple objects from a bucket using a
  2889. * single HTTP request. If you know the object keys that you want to delete, then
  2890. * this action provides a suitable alternative to sending individual delete
  2891. * requests, reducing per-request overhead.</p> <p>The request contains a list of
  2892. * up to 1000 keys that you want to delete. In the XML, you provide the object key
  2893. * names, and optionally, version IDs if you want to delete a specific version of
  2894. * the object from a versioning-enabled bucket. For each key, Amazon S3 performs a
  2895. * delete action and returns the result of that delete, success, or failure, in the
  2896. * response. Note that if the object specified in the request is not found, Amazon
  2897. * S3 returns the result as deleted.</p> <p> The action supports two modes for the
  2898. * response: verbose and quiet. By default, the action uses verbose mode in which
  2899. * the response includes the result of deletion of each key in your request. In
  2900. * quiet mode the response includes only keys where the delete action encountered
  2901. * an error. For a successful deletion, the action does not return any information
  2902. * about the delete in the response body.</p> <p>When performing this action on an
  2903. * MFA Delete enabled bucket, that attempts to delete any versioned objects, you
  2904. * must include an MFA token. If you do not provide one, the entire request will
  2905. * fail, even if there are non-versioned objects you are trying to delete. If you
  2906. * provide an invalid token, whether there are versioned keys in the request or
  2907. * not, the entire Multi-Object Delete request will fail. For information about MFA
  2908. * Delete, see <a
  2909. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete">
  2910. * MFA Delete</a>.</p> <p>Finally, the Content-MD5 header is required for all
  2911. * Multi-Object Delete requests. Amazon S3 uses the header value to ensure that
  2912. * your request body has not been altered in transit.</p> <p>The following
  2913. * operations are related to <code>DeleteObjects</code>:</p> <ul> <li> <p> <a
  2914. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  2915. * </p> </li> <li> <p> <a
  2916. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  2917. * </p> </li> <li> <p> <a
  2918. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  2919. * </p> </li> <li> <p> <a
  2920. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  2921. * </p> </li> <li> <p> <a
  2922. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  2923. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2924. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjects">AWS
  2925. * API Reference</a></p>
  2926. */
  2927. virtual Model::DeleteObjectsOutcome DeleteObjects(const Model::DeleteObjectsRequest& request) const;
  2928. /**
  2929. * <p>This action enables you to delete multiple objects from a bucket using a
  2930. * single HTTP request. If you know the object keys that you want to delete, then
  2931. * this action provides a suitable alternative to sending individual delete
  2932. * requests, reducing per-request overhead.</p> <p>The request contains a list of
  2933. * up to 1000 keys that you want to delete. In the XML, you provide the object key
  2934. * names, and optionally, version IDs if you want to delete a specific version of
  2935. * the object from a versioning-enabled bucket. For each key, Amazon S3 performs a
  2936. * delete action and returns the result of that delete, success, or failure, in the
  2937. * response. Note that if the object specified in the request is not found, Amazon
  2938. * S3 returns the result as deleted.</p> <p> The action supports two modes for the
  2939. * response: verbose and quiet. By default, the action uses verbose mode in which
  2940. * the response includes the result of deletion of each key in your request. In
  2941. * quiet mode the response includes only keys where the delete action encountered
  2942. * an error. For a successful deletion, the action does not return any information
  2943. * about the delete in the response body.</p> <p>When performing this action on an
  2944. * MFA Delete enabled bucket, that attempts to delete any versioned objects, you
  2945. * must include an MFA token. If you do not provide one, the entire request will
  2946. * fail, even if there are non-versioned objects you are trying to delete. If you
  2947. * provide an invalid token, whether there are versioned keys in the request or
  2948. * not, the entire Multi-Object Delete request will fail. For information about MFA
  2949. * Delete, see <a
  2950. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete">
  2951. * MFA Delete</a>.</p> <p>Finally, the Content-MD5 header is required for all
  2952. * Multi-Object Delete requests. Amazon S3 uses the header value to ensure that
  2953. * your request body has not been altered in transit.</p> <p>The following
  2954. * operations are related to <code>DeleteObjects</code>:</p> <ul> <li> <p> <a
  2955. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  2956. * </p> </li> <li> <p> <a
  2957. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  2958. * </p> </li> <li> <p> <a
  2959. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  2960. * </p> </li> <li> <p> <a
  2961. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  2962. * </p> </li> <li> <p> <a
  2963. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  2964. * </p> </li> </ul><p><h3>See Also:</h3> <a
  2965. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjects">AWS
  2966. * API Reference</a></p>
  2967. *
  2968. * returns a future to the operation so that it can be executed in parallel to other requests.
  2969. */
  2970. virtual Model::DeleteObjectsOutcomeCallable DeleteObjectsCallable(const Model::DeleteObjectsRequest& request) const;
  2971. /**
  2972. * <p>This action enables you to delete multiple objects from a bucket using a
  2973. * single HTTP request. If you know the object keys that you want to delete, then
  2974. * this action provides a suitable alternative to sending individual delete
  2975. * requests, reducing per-request overhead.</p> <p>The request contains a list of
  2976. * up to 1000 keys that you want to delete. In the XML, you provide the object key
  2977. * names, and optionally, version IDs if you want to delete a specific version of
  2978. * the object from a versioning-enabled bucket. For each key, Amazon S3 performs a
  2979. * delete action and returns the result of that delete, success, or failure, in the
  2980. * response. Note that if the object specified in the request is not found, Amazon
  2981. * S3 returns the result as deleted.</p> <p> The action supports two modes for the
  2982. * response: verbose and quiet. By default, the action uses verbose mode in which
  2983. * the response includes the result of deletion of each key in your request. In
  2984. * quiet mode the response includes only keys where the delete action encountered
  2985. * an error. For a successful deletion, the action does not return any information
  2986. * about the delete in the response body.</p> <p>When performing this action on an
  2987. * MFA Delete enabled bucket, that attempts to delete any versioned objects, you
  2988. * must include an MFA token. If you do not provide one, the entire request will
  2989. * fail, even if there are non-versioned objects you are trying to delete. If you
  2990. * provide an invalid token, whether there are versioned keys in the request or
  2991. * not, the entire Multi-Object Delete request will fail. For information about MFA
  2992. * Delete, see <a
  2993. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete">
  2994. * MFA Delete</a>.</p> <p>Finally, the Content-MD5 header is required for all
  2995. * Multi-Object Delete requests. Amazon S3 uses the header value to ensure that
  2996. * your request body has not been altered in transit.</p> <p>The following
  2997. * operations are related to <code>DeleteObjects</code>:</p> <ul> <li> <p> <a
  2998. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  2999. * </p> </li> <li> <p> <a
  3000. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  3001. * </p> </li> <li> <p> <a
  3002. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  3003. * </p> </li> <li> <p> <a
  3004. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  3005. * </p> </li> <li> <p> <a
  3006. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  3007. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3008. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjects">AWS
  3009. * API Reference</a></p>
  3010. *
  3011. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3012. */
  3013. virtual void DeleteObjectsAsync(const Model::DeleteObjectsRequest& request, const DeleteObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3014. /**
  3015. * <p>Removes the <code>PublicAccessBlock</code> configuration for an Amazon S3
  3016. * bucket. To use this operation, you must have the
  3017. * <code>s3:PutBucketPublicAccessBlock</code> permission. For more information
  3018. * about permissions, see <a
  3019. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3020. * Related to Bucket Subresource Operations</a> and <a
  3021. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3022. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following
  3023. * operations are related to <code>DeletePublicAccessBlock</code>:</p> <ul> <li>
  3024. * <p> <a
  3025. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
  3026. * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
  3027. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
  3028. * </p> </li> <li> <p> <a
  3029. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
  3030. * </p> </li> <li> <p> <a
  3031. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>
  3032. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3033. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock">AWS
  3034. * API Reference</a></p>
  3035. */
  3036. virtual Model::DeletePublicAccessBlockOutcome DeletePublicAccessBlock(const Model::DeletePublicAccessBlockRequest& request) const;
  3037. /**
  3038. * <p>Removes the <code>PublicAccessBlock</code> configuration for an Amazon S3
  3039. * bucket. To use this operation, you must have the
  3040. * <code>s3:PutBucketPublicAccessBlock</code> permission. For more information
  3041. * about permissions, see <a
  3042. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3043. * Related to Bucket Subresource Operations</a> and <a
  3044. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3045. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following
  3046. * operations are related to <code>DeletePublicAccessBlock</code>:</p> <ul> <li>
  3047. * <p> <a
  3048. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
  3049. * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
  3050. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
  3051. * </p> </li> <li> <p> <a
  3052. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
  3053. * </p> </li> <li> <p> <a
  3054. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>
  3055. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3056. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock">AWS
  3057. * API Reference</a></p>
  3058. *
  3059. * returns a future to the operation so that it can be executed in parallel to other requests.
  3060. */
  3061. virtual Model::DeletePublicAccessBlockOutcomeCallable DeletePublicAccessBlockCallable(const Model::DeletePublicAccessBlockRequest& request) const;
  3062. /**
  3063. * <p>Removes the <code>PublicAccessBlock</code> configuration for an Amazon S3
  3064. * bucket. To use this operation, you must have the
  3065. * <code>s3:PutBucketPublicAccessBlock</code> permission. For more information
  3066. * about permissions, see <a
  3067. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3068. * Related to Bucket Subresource Operations</a> and <a
  3069. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3070. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following
  3071. * operations are related to <code>DeletePublicAccessBlock</code>:</p> <ul> <li>
  3072. * <p> <a
  3073. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
  3074. * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
  3075. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
  3076. * </p> </li> <li> <p> <a
  3077. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
  3078. * </p> </li> <li> <p> <a
  3079. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>
  3080. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3081. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock">AWS
  3082. * API Reference</a></p>
  3083. *
  3084. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3085. */
  3086. virtual void DeletePublicAccessBlockAsync(const Model::DeletePublicAccessBlockRequest& request, const DeletePublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3087. /**
  3088. * <p>This implementation of the GET action uses the <code>accelerate</code>
  3089. * subresource to return the Transfer Acceleration state of a bucket, which is
  3090. * either <code>Enabled</code> or <code>Suspended</code>. Amazon S3 Transfer
  3091. * Acceleration is a bucket-level feature that enables you to perform faster data
  3092. * transfers to and from Amazon S3.</p> <p>To use this operation, you must have
  3093. * permission to perform the <code>s3:GetAccelerateConfiguration</code> action. The
  3094. * bucket owner has this permission by default. The bucket owner can grant this
  3095. * permission to others. For more information about permissions, see <a
  3096. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3097. * Related to Bucket Subresource Operations</a> and <a
  3098. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3099. * Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User
  3100. * Guide</i>.</p> <p>You set the Transfer Acceleration state of an existing bucket
  3101. * to <code>Enabled</code> or <code>Suspended</code> by using the <a
  3102. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a>
  3103. * operation. </p> <p>A GET <code>accelerate</code> request does not return a state
  3104. * value for a bucket that has no transfer acceleration state. A bucket has no
  3105. * Transfer Acceleration state if a state has never been set on the bucket. </p>
  3106. * <p>For more information about transfer acceleration, see <a
  3107. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
  3108. * Acceleration</a> in the Amazon S3 User Guide.</p> <p class="title"> <b>Related
  3109. * Resources</b> </p> <ul> <li> <p> <a
  3110. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a>
  3111. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3112. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAccelerateConfiguration">AWS
  3113. * API Reference</a></p>
  3114. */
  3115. virtual Model::GetBucketAccelerateConfigurationOutcome GetBucketAccelerateConfiguration(const Model::GetBucketAccelerateConfigurationRequest& request) const;
  3116. /**
  3117. * <p>This implementation of the GET action uses the <code>accelerate</code>
  3118. * subresource to return the Transfer Acceleration state of a bucket, which is
  3119. * either <code>Enabled</code> or <code>Suspended</code>. Amazon S3 Transfer
  3120. * Acceleration is a bucket-level feature that enables you to perform faster data
  3121. * transfers to and from Amazon S3.</p> <p>To use this operation, you must have
  3122. * permission to perform the <code>s3:GetAccelerateConfiguration</code> action. The
  3123. * bucket owner has this permission by default. The bucket owner can grant this
  3124. * permission to others. For more information about permissions, see <a
  3125. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3126. * Related to Bucket Subresource Operations</a> and <a
  3127. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3128. * Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User
  3129. * Guide</i>.</p> <p>You set the Transfer Acceleration state of an existing bucket
  3130. * to <code>Enabled</code> or <code>Suspended</code> by using the <a
  3131. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a>
  3132. * operation. </p> <p>A GET <code>accelerate</code> request does not return a state
  3133. * value for a bucket that has no transfer acceleration state. A bucket has no
  3134. * Transfer Acceleration state if a state has never been set on the bucket. </p>
  3135. * <p>For more information about transfer acceleration, see <a
  3136. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
  3137. * Acceleration</a> in the Amazon S3 User Guide.</p> <p class="title"> <b>Related
  3138. * Resources</b> </p> <ul> <li> <p> <a
  3139. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a>
  3140. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3141. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAccelerateConfiguration">AWS
  3142. * API Reference</a></p>
  3143. *
  3144. * returns a future to the operation so that it can be executed in parallel to other requests.
  3145. */
  3146. virtual Model::GetBucketAccelerateConfigurationOutcomeCallable GetBucketAccelerateConfigurationCallable(const Model::GetBucketAccelerateConfigurationRequest& request) const;
  3147. /**
  3148. * <p>This implementation of the GET action uses the <code>accelerate</code>
  3149. * subresource to return the Transfer Acceleration state of a bucket, which is
  3150. * either <code>Enabled</code> or <code>Suspended</code>. Amazon S3 Transfer
  3151. * Acceleration is a bucket-level feature that enables you to perform faster data
  3152. * transfers to and from Amazon S3.</p> <p>To use this operation, you must have
  3153. * permission to perform the <code>s3:GetAccelerateConfiguration</code> action. The
  3154. * bucket owner has this permission by default. The bucket owner can grant this
  3155. * permission to others. For more information about permissions, see <a
  3156. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3157. * Related to Bucket Subresource Operations</a> and <a
  3158. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3159. * Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User
  3160. * Guide</i>.</p> <p>You set the Transfer Acceleration state of an existing bucket
  3161. * to <code>Enabled</code> or <code>Suspended</code> by using the <a
  3162. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a>
  3163. * operation. </p> <p>A GET <code>accelerate</code> request does not return a state
  3164. * value for a bucket that has no transfer acceleration state. A bucket has no
  3165. * Transfer Acceleration state if a state has never been set on the bucket. </p>
  3166. * <p>For more information about transfer acceleration, see <a
  3167. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
  3168. * Acceleration</a> in the Amazon S3 User Guide.</p> <p class="title"> <b>Related
  3169. * Resources</b> </p> <ul> <li> <p> <a
  3170. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a>
  3171. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3172. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAccelerateConfiguration">AWS
  3173. * API Reference</a></p>
  3174. *
  3175. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3176. */
  3177. virtual void GetBucketAccelerateConfigurationAsync(const Model::GetBucketAccelerateConfigurationRequest& request, const GetBucketAccelerateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3178. /**
  3179. * <p>This implementation of the <code>GET</code> action uses the <code>acl</code>
  3180. * subresource to return the access control list (ACL) of a bucket. To use
  3181. * <code>GET</code> to return the ACL of the bucket, you must have
  3182. * <code>READ_ACP</code> access to the bucket. If <code>READ_ACP</code> permission
  3183. * is granted to the anonymous user, you can return the ACL of the bucket without
  3184. * using an authorization header.</p> <p class="title"> <b>Related Resources</b>
  3185. * </p> <ul> <li> <p> <a
  3186. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>
  3187. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3188. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAcl">AWS API
  3189. * Reference</a></p>
  3190. */
  3191. virtual Model::GetBucketAclOutcome GetBucketAcl(const Model::GetBucketAclRequest& request) const;
  3192. /**
  3193. * <p>This implementation of the <code>GET</code> action uses the <code>acl</code>
  3194. * subresource to return the access control list (ACL) of a bucket. To use
  3195. * <code>GET</code> to return the ACL of the bucket, you must have
  3196. * <code>READ_ACP</code> access to the bucket. If <code>READ_ACP</code> permission
  3197. * is granted to the anonymous user, you can return the ACL of the bucket without
  3198. * using an authorization header.</p> <p class="title"> <b>Related Resources</b>
  3199. * </p> <ul> <li> <p> <a
  3200. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>
  3201. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3202. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAcl">AWS API
  3203. * Reference</a></p>
  3204. *
  3205. * returns a future to the operation so that it can be executed in parallel to other requests.
  3206. */
  3207. virtual Model::GetBucketAclOutcomeCallable GetBucketAclCallable(const Model::GetBucketAclRequest& request) const;
  3208. /**
  3209. * <p>This implementation of the <code>GET</code> action uses the <code>acl</code>
  3210. * subresource to return the access control list (ACL) of a bucket. To use
  3211. * <code>GET</code> to return the ACL of the bucket, you must have
  3212. * <code>READ_ACP</code> access to the bucket. If <code>READ_ACP</code> permission
  3213. * is granted to the anonymous user, you can return the ACL of the bucket without
  3214. * using an authorization header.</p> <p class="title"> <b>Related Resources</b>
  3215. * </p> <ul> <li> <p> <a
  3216. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>
  3217. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3218. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAcl">AWS API
  3219. * Reference</a></p>
  3220. *
  3221. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3222. */
  3223. virtual void GetBucketAclAsync(const Model::GetBucketAclRequest& request, const GetBucketAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3224. /**
  3225. * <p>This implementation of the GET action returns an analytics configuration
  3226. * (identified by the analytics configuration ID) from the bucket.</p> <p>To use
  3227. * this operation, you must have permissions to perform the
  3228. * <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner has this
  3229. * permission by default. The bucket owner can grant this permission to others. For
  3230. * more information about permissions, see <a
  3231. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">
  3232. * Permissions Related to Bucket Subresource Operations</a> and <a
  3233. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3234. * Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User
  3235. * Guide</i>. </p> <p>For information about Amazon S3 analytics feature, see <a
  3236. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
  3237. * S3 Analytics – Storage Class Analysis</a> in the <i>Amazon S3 User
  3238. * Guide</i>.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  3239. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
  3240. * </p> </li> <li> <p> <a
  3241. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
  3242. * </p> </li> <li> <p> <a
  3243. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
  3244. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3245. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAnalyticsConfiguration">AWS
  3246. * API Reference</a></p>
  3247. */
  3248. virtual Model::GetBucketAnalyticsConfigurationOutcome GetBucketAnalyticsConfiguration(const Model::GetBucketAnalyticsConfigurationRequest& request) const;
  3249. /**
  3250. * <p>This implementation of the GET action returns an analytics configuration
  3251. * (identified by the analytics configuration ID) from the bucket.</p> <p>To use
  3252. * this operation, you must have permissions to perform the
  3253. * <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner has this
  3254. * permission by default. The bucket owner can grant this permission to others. For
  3255. * more information about permissions, see <a
  3256. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">
  3257. * Permissions Related to Bucket Subresource Operations</a> and <a
  3258. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3259. * Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User
  3260. * Guide</i>. </p> <p>For information about Amazon S3 analytics feature, see <a
  3261. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
  3262. * S3 Analytics – Storage Class Analysis</a> in the <i>Amazon S3 User
  3263. * Guide</i>.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  3264. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
  3265. * </p> </li> <li> <p> <a
  3266. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
  3267. * </p> </li> <li> <p> <a
  3268. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
  3269. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3270. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAnalyticsConfiguration">AWS
  3271. * API Reference</a></p>
  3272. *
  3273. * returns a future to the operation so that it can be executed in parallel to other requests.
  3274. */
  3275. virtual Model::GetBucketAnalyticsConfigurationOutcomeCallable GetBucketAnalyticsConfigurationCallable(const Model::GetBucketAnalyticsConfigurationRequest& request) const;
  3276. /**
  3277. * <p>This implementation of the GET action returns an analytics configuration
  3278. * (identified by the analytics configuration ID) from the bucket.</p> <p>To use
  3279. * this operation, you must have permissions to perform the
  3280. * <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner has this
  3281. * permission by default. The bucket owner can grant this permission to others. For
  3282. * more information about permissions, see <a
  3283. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">
  3284. * Permissions Related to Bucket Subresource Operations</a> and <a
  3285. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3286. * Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User
  3287. * Guide</i>. </p> <p>For information about Amazon S3 analytics feature, see <a
  3288. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
  3289. * S3 Analytics – Storage Class Analysis</a> in the <i>Amazon S3 User
  3290. * Guide</i>.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  3291. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
  3292. * </p> </li> <li> <p> <a
  3293. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
  3294. * </p> </li> <li> <p> <a
  3295. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
  3296. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3297. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAnalyticsConfiguration">AWS
  3298. * API Reference</a></p>
  3299. *
  3300. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3301. */
  3302. virtual void GetBucketAnalyticsConfigurationAsync(const Model::GetBucketAnalyticsConfigurationRequest& request, const GetBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3303. /**
  3304. * <p>Returns the cors configuration information set for the bucket.</p> <p> To use
  3305. * this operation, you must have permission to perform the s3:GetBucketCORS action.
  3306. * By default, the bucket owner has this permission and can grant it to others.</p>
  3307. * <p> For more information about cors, see <a
  3308. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html"> Enabling
  3309. * Cross-Origin Resource Sharing</a>.</p> <p>The following operations are related
  3310. * to <code>GetBucketCors</code>:</p> <ul> <li> <p> <a
  3311. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>
  3312. * </p> </li> <li> <p> <a
  3313. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>
  3314. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3315. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketCors">AWS
  3316. * API Reference</a></p>
  3317. */
  3318. virtual Model::GetBucketCorsOutcome GetBucketCors(const Model::GetBucketCorsRequest& request) const;
  3319. /**
  3320. * <p>Returns the cors configuration information set for the bucket.</p> <p> To use
  3321. * this operation, you must have permission to perform the s3:GetBucketCORS action.
  3322. * By default, the bucket owner has this permission and can grant it to others.</p>
  3323. * <p> For more information about cors, see <a
  3324. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html"> Enabling
  3325. * Cross-Origin Resource Sharing</a>.</p> <p>The following operations are related
  3326. * to <code>GetBucketCors</code>:</p> <ul> <li> <p> <a
  3327. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>
  3328. * </p> </li> <li> <p> <a
  3329. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>
  3330. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3331. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketCors">AWS
  3332. * API Reference</a></p>
  3333. *
  3334. * returns a future to the operation so that it can be executed in parallel to other requests.
  3335. */
  3336. virtual Model::GetBucketCorsOutcomeCallable GetBucketCorsCallable(const Model::GetBucketCorsRequest& request) const;
  3337. /**
  3338. * <p>Returns the cors configuration information set for the bucket.</p> <p> To use
  3339. * this operation, you must have permission to perform the s3:GetBucketCORS action.
  3340. * By default, the bucket owner has this permission and can grant it to others.</p>
  3341. * <p> For more information about cors, see <a
  3342. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html"> Enabling
  3343. * Cross-Origin Resource Sharing</a>.</p> <p>The following operations are related
  3344. * to <code>GetBucketCors</code>:</p> <ul> <li> <p> <a
  3345. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>
  3346. * </p> </li> <li> <p> <a
  3347. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>
  3348. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3349. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketCors">AWS
  3350. * API Reference</a></p>
  3351. *
  3352. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3353. */
  3354. virtual void GetBucketCorsAsync(const Model::GetBucketCorsRequest& request, const GetBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3355. /**
  3356. * <p>Returns the default encryption configuration for an Amazon S3 bucket. If the
  3357. * bucket does not have a default encryption configuration, GetBucketEncryption
  3358. * returns <code>ServerSideEncryptionConfigurationNotFoundError</code>. </p> <p>For
  3359. * information about the Amazon S3 default encryption feature, see <a
  3360. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
  3361. * S3 Default Bucket Encryption</a>.</p> <p> To use this operation, you must have
  3362. * permission to perform the <code>s3:GetEncryptionConfiguration</code> action. The
  3363. * bucket owner has this permission by default. The bucket owner can grant this
  3364. * permission to others. For more information about permissions, see <a
  3365. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3366. * Related to Bucket Subresource Operations</a> and <a
  3367. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3368. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following
  3369. * operations are related to <code>GetBucketEncryption</code>:</p> <ul> <li> <p> <a
  3370. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>
  3371. * </p> </li> <li> <p> <a
  3372. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>
  3373. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3374. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryption">AWS
  3375. * API Reference</a></p>
  3376. */
  3377. virtual Model::GetBucketEncryptionOutcome GetBucketEncryption(const Model::GetBucketEncryptionRequest& request) const;
  3378. /**
  3379. * <p>Returns the default encryption configuration for an Amazon S3 bucket. If the
  3380. * bucket does not have a default encryption configuration, GetBucketEncryption
  3381. * returns <code>ServerSideEncryptionConfigurationNotFoundError</code>. </p> <p>For
  3382. * information about the Amazon S3 default encryption feature, see <a
  3383. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
  3384. * S3 Default Bucket Encryption</a>.</p> <p> To use this operation, you must have
  3385. * permission to perform the <code>s3:GetEncryptionConfiguration</code> action. The
  3386. * bucket owner has this permission by default. The bucket owner can grant this
  3387. * permission to others. For more information about permissions, see <a
  3388. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3389. * Related to Bucket Subresource Operations</a> and <a
  3390. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3391. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following
  3392. * operations are related to <code>GetBucketEncryption</code>:</p> <ul> <li> <p> <a
  3393. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>
  3394. * </p> </li> <li> <p> <a
  3395. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>
  3396. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3397. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryption">AWS
  3398. * API Reference</a></p>
  3399. *
  3400. * returns a future to the operation so that it can be executed in parallel to other requests.
  3401. */
  3402. virtual Model::GetBucketEncryptionOutcomeCallable GetBucketEncryptionCallable(const Model::GetBucketEncryptionRequest& request) const;
  3403. /**
  3404. * <p>Returns the default encryption configuration for an Amazon S3 bucket. If the
  3405. * bucket does not have a default encryption configuration, GetBucketEncryption
  3406. * returns <code>ServerSideEncryptionConfigurationNotFoundError</code>. </p> <p>For
  3407. * information about the Amazon S3 default encryption feature, see <a
  3408. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
  3409. * S3 Default Bucket Encryption</a>.</p> <p> To use this operation, you must have
  3410. * permission to perform the <code>s3:GetEncryptionConfiguration</code> action. The
  3411. * bucket owner has this permission by default. The bucket owner can grant this
  3412. * permission to others. For more information about permissions, see <a
  3413. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3414. * Related to Bucket Subresource Operations</a> and <a
  3415. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3416. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following
  3417. * operations are related to <code>GetBucketEncryption</code>:</p> <ul> <li> <p> <a
  3418. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>
  3419. * </p> </li> <li> <p> <a
  3420. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>
  3421. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3422. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryption">AWS
  3423. * API Reference</a></p>
  3424. *
  3425. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3426. */
  3427. virtual void GetBucketEncryptionAsync(const Model::GetBucketEncryptionRequest& request, const GetBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3428. /**
  3429. * <p>Gets the S3 Intelligent-Tiering configuration from the specified bucket.</p>
  3430. * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage
  3431. * costs by automatically moving data to the most cost-effective storage access
  3432. * tier, without additional operational overhead. S3 Intelligent-Tiering delivers
  3433. * automatic cost savings by moving data between access tiers, when access patterns
  3434. * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
  3435. * larger than 128 KB that you plan to store for at least 30 days. If the size of
  3436. * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
  3437. * objects can be stored, but they are always charged at the frequent access tier
  3438. * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
  3439. * object before the end of the 30-day minimum storage duration period, you are
  3440. * charged for 30 days. For more information, see <a
  3441. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
  3442. * class for automatically optimizing frequently and infrequently accessed
  3443. * objects</a>.</p> <p>Operations related to
  3444. * <code>GetBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
  3445. * <p> <a
  3446. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
  3447. * </p> </li> <li> <p> <a
  3448. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
  3449. * </p> </li> <li> <p> <a
  3450. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
  3451. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3452. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfiguration">AWS
  3453. * API Reference</a></p>
  3454. */
  3455. virtual Model::GetBucketIntelligentTieringConfigurationOutcome GetBucketIntelligentTieringConfiguration(const Model::GetBucketIntelligentTieringConfigurationRequest& request) const;
  3456. /**
  3457. * <p>Gets the S3 Intelligent-Tiering configuration from the specified bucket.</p>
  3458. * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage
  3459. * costs by automatically moving data to the most cost-effective storage access
  3460. * tier, without additional operational overhead. S3 Intelligent-Tiering delivers
  3461. * automatic cost savings by moving data between access tiers, when access patterns
  3462. * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
  3463. * larger than 128 KB that you plan to store for at least 30 days. If the size of
  3464. * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
  3465. * objects can be stored, but they are always charged at the frequent access tier
  3466. * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
  3467. * object before the end of the 30-day minimum storage duration period, you are
  3468. * charged for 30 days. For more information, see <a
  3469. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
  3470. * class for automatically optimizing frequently and infrequently accessed
  3471. * objects</a>.</p> <p>Operations related to
  3472. * <code>GetBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
  3473. * <p> <a
  3474. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
  3475. * </p> </li> <li> <p> <a
  3476. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
  3477. * </p> </li> <li> <p> <a
  3478. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
  3479. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3480. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfiguration">AWS
  3481. * API Reference</a></p>
  3482. *
  3483. * returns a future to the operation so that it can be executed in parallel to other requests.
  3484. */
  3485. virtual Model::GetBucketIntelligentTieringConfigurationOutcomeCallable GetBucketIntelligentTieringConfigurationCallable(const Model::GetBucketIntelligentTieringConfigurationRequest& request) const;
  3486. /**
  3487. * <p>Gets the S3 Intelligent-Tiering configuration from the specified bucket.</p>
  3488. * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage
  3489. * costs by automatically moving data to the most cost-effective storage access
  3490. * tier, without additional operational overhead. S3 Intelligent-Tiering delivers
  3491. * automatic cost savings by moving data between access tiers, when access patterns
  3492. * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
  3493. * larger than 128 KB that you plan to store for at least 30 days. If the size of
  3494. * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
  3495. * objects can be stored, but they are always charged at the frequent access tier
  3496. * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
  3497. * object before the end of the 30-day minimum storage duration period, you are
  3498. * charged for 30 days. For more information, see <a
  3499. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
  3500. * class for automatically optimizing frequently and infrequently accessed
  3501. * objects</a>.</p> <p>Operations related to
  3502. * <code>GetBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
  3503. * <p> <a
  3504. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
  3505. * </p> </li> <li> <p> <a
  3506. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
  3507. * </p> </li> <li> <p> <a
  3508. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
  3509. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3510. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfiguration">AWS
  3511. * API Reference</a></p>
  3512. *
  3513. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3514. */
  3515. virtual void GetBucketIntelligentTieringConfigurationAsync(const Model::GetBucketIntelligentTieringConfigurationRequest& request, const GetBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3516. /**
  3517. * <p>Returns an inventory configuration (identified by the inventory configuration
  3518. * ID) from the bucket.</p> <p>To use this operation, you must have permissions to
  3519. * perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner
  3520. * has this permission by default and can grant this permission to others. For more
  3521. * information about permissions, see <a
  3522. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3523. * Related to Bucket Subresource Operations</a> and <a
  3524. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3525. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  3526. * the Amazon S3 inventory feature, see <a
  3527. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
  3528. * S3 Inventory</a>.</p> <p>The following operations are related to
  3529. * <code>GetBucketInventoryConfiguration</code>:</p> <ul> <li> <p> <a
  3530. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
  3531. * </p> </li> <li> <p> <a
  3532. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
  3533. * </p> </li> <li> <p> <a
  3534. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
  3535. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3536. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration">AWS
  3537. * API Reference</a></p>
  3538. */
  3539. virtual Model::GetBucketInventoryConfigurationOutcome GetBucketInventoryConfiguration(const Model::GetBucketInventoryConfigurationRequest& request) const;
  3540. /**
  3541. * <p>Returns an inventory configuration (identified by the inventory configuration
  3542. * ID) from the bucket.</p> <p>To use this operation, you must have permissions to
  3543. * perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner
  3544. * has this permission by default and can grant this permission to others. For more
  3545. * information about permissions, see <a
  3546. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3547. * Related to Bucket Subresource Operations</a> and <a
  3548. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3549. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  3550. * the Amazon S3 inventory feature, see <a
  3551. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
  3552. * S3 Inventory</a>.</p> <p>The following operations are related to
  3553. * <code>GetBucketInventoryConfiguration</code>:</p> <ul> <li> <p> <a
  3554. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
  3555. * </p> </li> <li> <p> <a
  3556. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
  3557. * </p> </li> <li> <p> <a
  3558. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
  3559. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3560. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration">AWS
  3561. * API Reference</a></p>
  3562. *
  3563. * returns a future to the operation so that it can be executed in parallel to other requests.
  3564. */
  3565. virtual Model::GetBucketInventoryConfigurationOutcomeCallable GetBucketInventoryConfigurationCallable(const Model::GetBucketInventoryConfigurationRequest& request) const;
  3566. /**
  3567. * <p>Returns an inventory configuration (identified by the inventory configuration
  3568. * ID) from the bucket.</p> <p>To use this operation, you must have permissions to
  3569. * perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner
  3570. * has this permission by default and can grant this permission to others. For more
  3571. * information about permissions, see <a
  3572. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3573. * Related to Bucket Subresource Operations</a> and <a
  3574. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3575. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  3576. * the Amazon S3 inventory feature, see <a
  3577. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
  3578. * S3 Inventory</a>.</p> <p>The following operations are related to
  3579. * <code>GetBucketInventoryConfiguration</code>:</p> <ul> <li> <p> <a
  3580. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
  3581. * </p> </li> <li> <p> <a
  3582. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
  3583. * </p> </li> <li> <p> <a
  3584. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
  3585. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3586. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration">AWS
  3587. * API Reference</a></p>
  3588. *
  3589. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3590. */
  3591. virtual void GetBucketInventoryConfigurationAsync(const Model::GetBucketInventoryConfigurationRequest& request, const GetBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3592. /**
  3593. * <p>Bucket lifecycle configuration now supports specifying a lifecycle
  3594. * rule using an object key name prefix, one or more object tags, or a combination
  3595. * of both. Accordingly, this section describes the latest API. The response
  3596. * describes the new filter element that you can use to specify a filter to select
  3597. * a subset of objects to which the rule applies. If you are using a previous
  3598. * version of the lifecycle configuration, it still works. For the earlier action,
  3599. * see <a
  3600. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>.</p>
  3601. * <p>Returns the lifecycle configuration information set on the bucket.
  3602. * For information about lifecycle configuration, see <a
  3603. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
  3604. * Lifecycle Management</a>.</p> <p>To use this operation, you must have permission
  3605. * to perform the <code>s3:GetLifecycleConfiguration</code> action. The bucket
  3606. * owner has this permission, by default. The bucket owner can grant this
  3607. * permission to others. For more information about permissions, see <a
  3608. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3609. * Related to Bucket Subresource Operations</a> and <a
  3610. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3611. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>
  3612. * <code>GetBucketLifecycleConfiguration</code> has the following special
  3613. * error:</p> <ul> <li> <p>Error code: <code>NoSuchLifecycleConfiguration</code>
  3614. * </p> <ul> <li> <p>Description: The lifecycle configuration does not exist.</p>
  3615. * </li> <li> <p>HTTP Status Code: 404 Not Found</p> </li> <li> <p>SOAP Fault Code
  3616. * Prefix: Client</p> </li> </ul> </li> </ul> <p>The following operations are
  3617. * related to <code>GetBucketLifecycleConfiguration</code>:</p> <ul> <li> <p> <a
  3618. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>
  3619. * </p> </li> <li> <p> <a
  3620. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>
  3621. * </p> </li> <li> <p> <a
  3622. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>
  3623. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3624. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfiguration">AWS
  3625. * API Reference</a></p>
  3626. */
  3627. virtual Model::GetBucketLifecycleConfigurationOutcome GetBucketLifecycleConfiguration(const Model::GetBucketLifecycleConfigurationRequest& request) const;
  3628. /**
  3629. * <p>Bucket lifecycle configuration now supports specifying a lifecycle
  3630. * rule using an object key name prefix, one or more object tags, or a combination
  3631. * of both. Accordingly, this section describes the latest API. The response
  3632. * describes the new filter element that you can use to specify a filter to select
  3633. * a subset of objects to which the rule applies. If you are using a previous
  3634. * version of the lifecycle configuration, it still works. For the earlier action,
  3635. * see <a
  3636. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>.</p>
  3637. * <p>Returns the lifecycle configuration information set on the bucket.
  3638. * For information about lifecycle configuration, see <a
  3639. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
  3640. * Lifecycle Management</a>.</p> <p>To use this operation, you must have permission
  3641. * to perform the <code>s3:GetLifecycleConfiguration</code> action. The bucket
  3642. * owner has this permission, by default. The bucket owner can grant this
  3643. * permission to others. For more information about permissions, see <a
  3644. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3645. * Related to Bucket Subresource Operations</a> and <a
  3646. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3647. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>
  3648. * <code>GetBucketLifecycleConfiguration</code> has the following special
  3649. * error:</p> <ul> <li> <p>Error code: <code>NoSuchLifecycleConfiguration</code>
  3650. * </p> <ul> <li> <p>Description: The lifecycle configuration does not exist.</p>
  3651. * </li> <li> <p>HTTP Status Code: 404 Not Found</p> </li> <li> <p>SOAP Fault Code
  3652. * Prefix: Client</p> </li> </ul> </li> </ul> <p>The following operations are
  3653. * related to <code>GetBucketLifecycleConfiguration</code>:</p> <ul> <li> <p> <a
  3654. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>
  3655. * </p> </li> <li> <p> <a
  3656. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>
  3657. * </p> </li> <li> <p> <a
  3658. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>
  3659. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3660. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfiguration">AWS
  3661. * API Reference</a></p>
  3662. *
  3663. * returns a future to the operation so that it can be executed in parallel to other requests.
  3664. */
  3665. virtual Model::GetBucketLifecycleConfigurationOutcomeCallable GetBucketLifecycleConfigurationCallable(const Model::GetBucketLifecycleConfigurationRequest& request) const;
  3666. /**
  3667. * <p>Bucket lifecycle configuration now supports specifying a lifecycle
  3668. * rule using an object key name prefix, one or more object tags, or a combination
  3669. * of both. Accordingly, this section describes the latest API. The response
  3670. * describes the new filter element that you can use to specify a filter to select
  3671. * a subset of objects to which the rule applies. If you are using a previous
  3672. * version of the lifecycle configuration, it still works. For the earlier action,
  3673. * see <a
  3674. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>.</p>
  3675. * <p>Returns the lifecycle configuration information set on the bucket.
  3676. * For information about lifecycle configuration, see <a
  3677. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
  3678. * Lifecycle Management</a>.</p> <p>To use this operation, you must have permission
  3679. * to perform the <code>s3:GetLifecycleConfiguration</code> action. The bucket
  3680. * owner has this permission, by default. The bucket owner can grant this
  3681. * permission to others. For more information about permissions, see <a
  3682. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3683. * Related to Bucket Subresource Operations</a> and <a
  3684. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3685. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>
  3686. * <code>GetBucketLifecycleConfiguration</code> has the following special
  3687. * error:</p> <ul> <li> <p>Error code: <code>NoSuchLifecycleConfiguration</code>
  3688. * </p> <ul> <li> <p>Description: The lifecycle configuration does not exist.</p>
  3689. * </li> <li> <p>HTTP Status Code: 404 Not Found</p> </li> <li> <p>SOAP Fault Code
  3690. * Prefix: Client</p> </li> </ul> </li> </ul> <p>The following operations are
  3691. * related to <code>GetBucketLifecycleConfiguration</code>:</p> <ul> <li> <p> <a
  3692. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>
  3693. * </p> </li> <li> <p> <a
  3694. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>
  3695. * </p> </li> <li> <p> <a
  3696. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>
  3697. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3698. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfiguration">AWS
  3699. * API Reference</a></p>
  3700. *
  3701. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3702. */
  3703. virtual void GetBucketLifecycleConfigurationAsync(const Model::GetBucketLifecycleConfigurationRequest& request, const GetBucketLifecycleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3704. /**
  3705. * <p>Returns the Region the bucket resides in. You set the bucket's Region using
  3706. * the <code>LocationConstraint</code> request parameter in a
  3707. * <code>CreateBucket</code> request. For more information, see <a
  3708. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>.</p>
  3709. * <p> To use this implementation of the operation, you must be the bucket
  3710. * owner.</p> <p>The following operations are related to
  3711. * <code>GetBucketLocation</code>:</p> <ul> <li> <p> <a
  3712. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  3713. * </p> </li> <li> <p> <a
  3714. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  3715. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3716. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLocation">AWS
  3717. * API Reference</a></p>
  3718. */
  3719. virtual Model::GetBucketLocationOutcome GetBucketLocation(const Model::GetBucketLocationRequest& request) const;
  3720. /**
  3721. * <p>Returns the Region the bucket resides in. You set the bucket's Region using
  3722. * the <code>LocationConstraint</code> request parameter in a
  3723. * <code>CreateBucket</code> request. For more information, see <a
  3724. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>.</p>
  3725. * <p> To use this implementation of the operation, you must be the bucket
  3726. * owner.</p> <p>The following operations are related to
  3727. * <code>GetBucketLocation</code>:</p> <ul> <li> <p> <a
  3728. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  3729. * </p> </li> <li> <p> <a
  3730. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  3731. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3732. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLocation">AWS
  3733. * API Reference</a></p>
  3734. *
  3735. * returns a future to the operation so that it can be executed in parallel to other requests.
  3736. */
  3737. virtual Model::GetBucketLocationOutcomeCallable GetBucketLocationCallable(const Model::GetBucketLocationRequest& request) const;
  3738. /**
  3739. * <p>Returns the Region the bucket resides in. You set the bucket's Region using
  3740. * the <code>LocationConstraint</code> request parameter in a
  3741. * <code>CreateBucket</code> request. For more information, see <a
  3742. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>.</p>
  3743. * <p> To use this implementation of the operation, you must be the bucket
  3744. * owner.</p> <p>The following operations are related to
  3745. * <code>GetBucketLocation</code>:</p> <ul> <li> <p> <a
  3746. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  3747. * </p> </li> <li> <p> <a
  3748. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  3749. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3750. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLocation">AWS
  3751. * API Reference</a></p>
  3752. *
  3753. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3754. */
  3755. virtual void GetBucketLocationAsync(const Model::GetBucketLocationRequest& request, const GetBucketLocationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3756. /**
  3757. * <p>Returns the logging status of a bucket and the permissions users have to view
  3758. * and modify that status. To use GET, you must be the bucket owner.</p> <p>The
  3759. * following operations are related to <code>GetBucketLogging</code>:</p> <ul> <li>
  3760. * <p> <a
  3761. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  3762. * </p> </li> <li> <p> <a
  3763. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html">PutBucketLogging</a>
  3764. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3765. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLogging">AWS
  3766. * API Reference</a></p>
  3767. */
  3768. virtual Model::GetBucketLoggingOutcome GetBucketLogging(const Model::GetBucketLoggingRequest& request) const;
  3769. /**
  3770. * <p>Returns the logging status of a bucket and the permissions users have to view
  3771. * and modify that status. To use GET, you must be the bucket owner.</p> <p>The
  3772. * following operations are related to <code>GetBucketLogging</code>:</p> <ul> <li>
  3773. * <p> <a
  3774. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  3775. * </p> </li> <li> <p> <a
  3776. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html">PutBucketLogging</a>
  3777. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3778. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLogging">AWS
  3779. * API Reference</a></p>
  3780. *
  3781. * returns a future to the operation so that it can be executed in parallel to other requests.
  3782. */
  3783. virtual Model::GetBucketLoggingOutcomeCallable GetBucketLoggingCallable(const Model::GetBucketLoggingRequest& request) const;
  3784. /**
  3785. * <p>Returns the logging status of a bucket and the permissions users have to view
  3786. * and modify that status. To use GET, you must be the bucket owner.</p> <p>The
  3787. * following operations are related to <code>GetBucketLogging</code>:</p> <ul> <li>
  3788. * <p> <a
  3789. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  3790. * </p> </li> <li> <p> <a
  3791. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html">PutBucketLogging</a>
  3792. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3793. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLogging">AWS
  3794. * API Reference</a></p>
  3795. *
  3796. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3797. */
  3798. virtual void GetBucketLoggingAsync(const Model::GetBucketLoggingRequest& request, const GetBucketLoggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3799. /**
  3800. * <p>Gets a metrics configuration (specified by the metrics configuration ID) from
  3801. * the bucket. Note that this doesn't include the daily storage metrics.</p> <p> To
  3802. * use this operation, you must have permissions to perform the
  3803. * <code>s3:GetMetricsConfiguration</code> action. The bucket owner has this
  3804. * permission by default. The bucket owner can grant this permission to others. For
  3805. * more information about permissions, see <a
  3806. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3807. * Related to Bucket Subresource Operations</a> and <a
  3808. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3809. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> For information
  3810. * about CloudWatch request metrics for Amazon S3, see <a
  3811. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  3812. * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
  3813. * to <code>GetBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
  3814. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
  3815. * </p> </li> <li> <p> <a
  3816. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
  3817. * </p> </li> <li> <p> <a
  3818. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
  3819. * </p> </li> <li> <p> <a
  3820. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  3821. * Metrics with Amazon CloudWatch</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  3822. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetricsConfiguration">AWS
  3823. * API Reference</a></p>
  3824. */
  3825. virtual Model::GetBucketMetricsConfigurationOutcome GetBucketMetricsConfiguration(const Model::GetBucketMetricsConfigurationRequest& request) const;
  3826. /**
  3827. * <p>Gets a metrics configuration (specified by the metrics configuration ID) from
  3828. * the bucket. Note that this doesn't include the daily storage metrics.</p> <p> To
  3829. * use this operation, you must have permissions to perform the
  3830. * <code>s3:GetMetricsConfiguration</code> action. The bucket owner has this
  3831. * permission by default. The bucket owner can grant this permission to others. For
  3832. * more information about permissions, see <a
  3833. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3834. * Related to Bucket Subresource Operations</a> and <a
  3835. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3836. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> For information
  3837. * about CloudWatch request metrics for Amazon S3, see <a
  3838. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  3839. * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
  3840. * to <code>GetBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
  3841. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
  3842. * </p> </li> <li> <p> <a
  3843. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
  3844. * </p> </li> <li> <p> <a
  3845. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
  3846. * </p> </li> <li> <p> <a
  3847. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  3848. * Metrics with Amazon CloudWatch</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  3849. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetricsConfiguration">AWS
  3850. * API Reference</a></p>
  3851. *
  3852. * returns a future to the operation so that it can be executed in parallel to other requests.
  3853. */
  3854. virtual Model::GetBucketMetricsConfigurationOutcomeCallable GetBucketMetricsConfigurationCallable(const Model::GetBucketMetricsConfigurationRequest& request) const;
  3855. /**
  3856. * <p>Gets a metrics configuration (specified by the metrics configuration ID) from
  3857. * the bucket. Note that this doesn't include the daily storage metrics.</p> <p> To
  3858. * use this operation, you must have permissions to perform the
  3859. * <code>s3:GetMetricsConfiguration</code> action. The bucket owner has this
  3860. * permission by default. The bucket owner can grant this permission to others. For
  3861. * more information about permissions, see <a
  3862. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  3863. * Related to Bucket Subresource Operations</a> and <a
  3864. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  3865. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> For information
  3866. * about CloudWatch request metrics for Amazon S3, see <a
  3867. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  3868. * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
  3869. * to <code>GetBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
  3870. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
  3871. * </p> </li> <li> <p> <a
  3872. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
  3873. * </p> </li> <li> <p> <a
  3874. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
  3875. * </p> </li> <li> <p> <a
  3876. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  3877. * Metrics with Amazon CloudWatch</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  3878. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetricsConfiguration">AWS
  3879. * API Reference</a></p>
  3880. *
  3881. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3882. */
  3883. virtual void GetBucketMetricsConfigurationAsync(const Model::GetBucketMetricsConfigurationRequest& request, const GetBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3884. /**
  3885. * <p>Returns the notification configuration of a bucket.</p> <p>If notifications
  3886. * are not enabled on the bucket, the action returns an empty
  3887. * <code>NotificationConfiguration</code> element.</p> <p>By default, you must be
  3888. * the bucket owner to read the notification configuration of a bucket. However,
  3889. * the bucket owner can use a bucket policy to grant permission to other users to
  3890. * read this configuration with the <code>s3:GetBucketNotification</code>
  3891. * permission.</p> <p>For more information about setting and reading the
  3892. * notification configuration on a bucket, see <a
  3893. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Setting
  3894. * Up Notification of Bucket Events</a>. For more information about bucket
  3895. * policies, see <a
  3896. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  3897. * Bucket Policies</a>.</p> <p>The following action is related to
  3898. * <code>GetBucketNotification</code>:</p> <ul> <li> <p> <a
  3899. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html">PutBucketNotification</a>
  3900. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3901. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotificationConfiguration">AWS
  3902. * API Reference</a></p>
  3903. */
  3904. virtual Model::GetBucketNotificationConfigurationOutcome GetBucketNotificationConfiguration(const Model::GetBucketNotificationConfigurationRequest& request) const;
  3905. /**
  3906. * <p>Returns the notification configuration of a bucket.</p> <p>If notifications
  3907. * are not enabled on the bucket, the action returns an empty
  3908. * <code>NotificationConfiguration</code> element.</p> <p>By default, you must be
  3909. * the bucket owner to read the notification configuration of a bucket. However,
  3910. * the bucket owner can use a bucket policy to grant permission to other users to
  3911. * read this configuration with the <code>s3:GetBucketNotification</code>
  3912. * permission.</p> <p>For more information about setting and reading the
  3913. * notification configuration on a bucket, see <a
  3914. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Setting
  3915. * Up Notification of Bucket Events</a>. For more information about bucket
  3916. * policies, see <a
  3917. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  3918. * Bucket Policies</a>.</p> <p>The following action is related to
  3919. * <code>GetBucketNotification</code>:</p> <ul> <li> <p> <a
  3920. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html">PutBucketNotification</a>
  3921. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3922. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotificationConfiguration">AWS
  3923. * API Reference</a></p>
  3924. *
  3925. * returns a future to the operation so that it can be executed in parallel to other requests.
  3926. */
  3927. virtual Model::GetBucketNotificationConfigurationOutcomeCallable GetBucketNotificationConfigurationCallable(const Model::GetBucketNotificationConfigurationRequest& request) const;
  3928. /**
  3929. * <p>Returns the notification configuration of a bucket.</p> <p>If notifications
  3930. * are not enabled on the bucket, the action returns an empty
  3931. * <code>NotificationConfiguration</code> element.</p> <p>By default, you must be
  3932. * the bucket owner to read the notification configuration of a bucket. However,
  3933. * the bucket owner can use a bucket policy to grant permission to other users to
  3934. * read this configuration with the <code>s3:GetBucketNotification</code>
  3935. * permission.</p> <p>For more information about setting and reading the
  3936. * notification configuration on a bucket, see <a
  3937. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Setting
  3938. * Up Notification of Bucket Events</a>. For more information about bucket
  3939. * policies, see <a
  3940. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  3941. * Bucket Policies</a>.</p> <p>The following action is related to
  3942. * <code>GetBucketNotification</code>:</p> <ul> <li> <p> <a
  3943. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html">PutBucketNotification</a>
  3944. * </p> </li> </ul><p><h3>See Also:</h3> <a
  3945. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotificationConfiguration">AWS
  3946. * API Reference</a></p>
  3947. *
  3948. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  3949. */
  3950. virtual void GetBucketNotificationConfigurationAsync(const Model::GetBucketNotificationConfigurationRequest& request, const GetBucketNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  3951. /**
  3952. * <p>Retrieves <code>OwnershipControls</code> for an Amazon S3 bucket. To use this
  3953. * operation, you must have the <code>s3:GetBucketOwnershipControls</code>
  3954. * permission. For more information about Amazon S3 permissions, see <a
  3955. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  3956. * Permissions in a Policy</a>. </p> <p>For information about Amazon S3 Object
  3957. * Ownership, see <a
  3958. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
  3959. * Object Ownership</a>. </p> <p>The following operations are related to
  3960. * <code>GetBucketOwnershipControls</code>:</p> <ul> <li> <p>
  3961. * <a>PutBucketOwnershipControls</a> </p> </li> <li> <p>
  3962. * <a>DeleteBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  3963. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControls">AWS
  3964. * API Reference</a></p>
  3965. */
  3966. virtual Model::GetBucketOwnershipControlsOutcome GetBucketOwnershipControls(const Model::GetBucketOwnershipControlsRequest& request) const;
  3967. /**
  3968. * <p>Retrieves <code>OwnershipControls</code> for an Amazon S3 bucket. To use this
  3969. * operation, you must have the <code>s3:GetBucketOwnershipControls</code>
  3970. * permission. For more information about Amazon S3 permissions, see <a
  3971. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  3972. * Permissions in a Policy</a>. </p> <p>For information about Amazon S3 Object
  3973. * Ownership, see <a
  3974. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
  3975. * Object Ownership</a>. </p> <p>The following operations are related to
  3976. * <code>GetBucketOwnershipControls</code>:</p> <ul> <li> <p>
  3977. * <a>PutBucketOwnershipControls</a> </p> </li> <li> <p>
  3978. * <a>DeleteBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  3979. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControls">AWS
  3980. * API Reference</a></p>
  3981. *
  3982. * returns a future to the operation so that it can be executed in parallel to other requests.
  3983. */
  3984. virtual Model::GetBucketOwnershipControlsOutcomeCallable GetBucketOwnershipControlsCallable(const Model::GetBucketOwnershipControlsRequest& request) const;
  3985. /**
  3986. * <p>Retrieves <code>OwnershipControls</code> for an Amazon S3 bucket. To use this
  3987. * operation, you must have the <code>s3:GetBucketOwnershipControls</code>
  3988. * permission. For more information about Amazon S3 permissions, see <a
  3989. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  3990. * Permissions in a Policy</a>. </p> <p>For information about Amazon S3 Object
  3991. * Ownership, see <a
  3992. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
  3993. * Object Ownership</a>. </p> <p>The following operations are related to
  3994. * <code>GetBucketOwnershipControls</code>:</p> <ul> <li> <p>
  3995. * <a>PutBucketOwnershipControls</a> </p> </li> <li> <p>
  3996. * <a>DeleteBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  3997. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControls">AWS
  3998. * API Reference</a></p>
  3999. *
  4000. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  4001. */
  4002. virtual void GetBucketOwnershipControlsAsync(const Model::GetBucketOwnershipControlsRequest& request, const GetBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  4003. /**
  4004. * <p>Returns the policy of a specified bucket. If you are using an identity other
  4005. * than the root user of the AWS account that owns the bucket, the calling identity
  4006. * must have the <code>GetBucketPolicy</code> permissions on the specified bucket
  4007. * and belong to the bucket owner's account in order to use this operation.</p>
  4008. * <p>If you don't have <code>GetBucketPolicy</code> permissions, Amazon S3 returns
  4009. * a <code>403 Access Denied</code> error. If you have the correct permissions, but
  4010. * you're not using an identity that belongs to the bucket owner's account, Amazon
  4011. * S3 returns a <code>405 Method Not Allowed</code> error.</p> <p>As a
  4012. * security precaution, the root user of the AWS account that owns a bucket can
  4013. * always use this operation, even if the policy explicitly denies the root user
  4014. * the ability to perform this action.</p> <p>For more information
  4015. * about bucket policies, see <a
  4016. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  4017. * Bucket Policies and User Policies</a>.</p> <p>The following action is related to
  4018. * <code>GetBucketPolicy</code>:</p> <ul> <li> <p> <a
  4019. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  4020. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4021. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicy">AWS
  4022. * API Reference</a></p>
  4023. */
  4024. virtual Model::GetBucketPolicyOutcome GetBucketPolicy(const Model::GetBucketPolicyRequest& request) const;
  4025. /**
  4026. * <p>Returns the policy of a specified bucket. If you are using an identity other
  4027. * than the root user of the AWS account that owns the bucket, the calling identity
  4028. * must have the <code>GetBucketPolicy</code> permissions on the specified bucket
  4029. * and belong to the bucket owner's account in order to use this operation.</p>
  4030. * <p>If you don't have <code>GetBucketPolicy</code> permissions, Amazon S3 returns
  4031. * a <code>403 Access Denied</code> error. If you have the correct permissions, but
  4032. * you're not using an identity that belongs to the bucket owner's account, Amazon
  4033. * S3 returns a <code>405 Method Not Allowed</code> error.</p> <p>As a
  4034. * security precaution, the root user of the AWS account that owns a bucket can
  4035. * always use this operation, even if the policy explicitly denies the root user
  4036. * the ability to perform this action.</p> <p>For more information
  4037. * about bucket policies, see <a
  4038. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  4039. * Bucket Policies and User Policies</a>.</p> <p>The following action is related to
  4040. * <code>GetBucketPolicy</code>:</p> <ul> <li> <p> <a
  4041. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  4042. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4043. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicy">AWS
  4044. * API Reference</a></p>
  4045. *
  4046. * returns a future to the operation so that it can be executed in parallel to other requests.
  4047. */
  4048. virtual Model::GetBucketPolicyOutcomeCallable GetBucketPolicyCallable(const Model::GetBucketPolicyRequest& request) const;
  4049. /**
  4050. * <p>Returns the policy of a specified bucket. If you are using an identity other
  4051. * than the root user of the AWS account that owns the bucket, the calling identity
  4052. * must have the <code>GetBucketPolicy</code> permissions on the specified bucket
  4053. * and belong to the bucket owner's account in order to use this operation.</p>
  4054. * <p>If you don't have <code>GetBucketPolicy</code> permissions, Amazon S3 returns
  4055. * a <code>403 Access Denied</code> error. If you have the correct permissions, but
  4056. * you're not using an identity that belongs to the bucket owner's account, Amazon
  4057. * S3 returns a <code>405 Method Not Allowed</code> error.</p> <p>As a
  4058. * security precaution, the root user of the AWS account that owns a bucket can
  4059. * always use this operation, even if the policy explicitly denies the root user
  4060. * the ability to perform this action.</p> <p>For more information
  4061. * about bucket policies, see <a
  4062. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  4063. * Bucket Policies and User Policies</a>.</p> <p>The following action is related to
  4064. * <code>GetBucketPolicy</code>:</p> <ul> <li> <p> <a
  4065. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  4066. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4067. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicy">AWS
  4068. * API Reference</a></p>
  4069. *
  4070. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  4071. */
  4072. virtual void GetBucketPolicyAsync(const Model::GetBucketPolicyRequest& request, const GetBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  4073. /**
  4074. * <p>Retrieves the policy status for an Amazon S3 bucket, indicating whether the
  4075. * bucket is public. In order to use this operation, you must have the
  4076. * <code>s3:GetBucketPolicyStatus</code> permission. For more information about
  4077. * Amazon S3 permissions, see <a
  4078. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  4079. * Permissions in a Policy</a>.</p> <p> For more information about when Amazon S3
  4080. * considers a bucket public, see <a
  4081. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
  4082. * Meaning of "Public"</a>. </p> <p>The following operations are related to
  4083. * <code>GetBucketPolicyStatus</code>:</p> <ul> <li> <p> <a
  4084. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
  4085. * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
  4086. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
  4087. * </p> </li> <li> <p> <a
  4088. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
  4089. * </p> </li> <li> <p> <a
  4090. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
  4091. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4092. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus">AWS
  4093. * API Reference</a></p>
  4094. */
  4095. virtual Model::GetBucketPolicyStatusOutcome GetBucketPolicyStatus(const Model::GetBucketPolicyStatusRequest& request) const;
  4096. /**
  4097. * <p>Retrieves the policy status for an Amazon S3 bucket, indicating whether the
  4098. * bucket is public. In order to use this operation, you must have the
  4099. * <code>s3:GetBucketPolicyStatus</code> permission. For more information about
  4100. * Amazon S3 permissions, see <a
  4101. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  4102. * Permissions in a Policy</a>.</p> <p> For more information about when Amazon S3
  4103. * considers a bucket public, see <a
  4104. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
  4105. * Meaning of "Public"</a>. </p> <p>The following operations are related to
  4106. * <code>GetBucketPolicyStatus</code>:</p> <ul> <li> <p> <a
  4107. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
  4108. * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
  4109. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
  4110. * </p> </li> <li> <p> <a
  4111. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
  4112. * </p> </li> <li> <p> <a
  4113. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
  4114. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4115. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus">AWS
  4116. * API Reference</a></p>
  4117. *
  4118. * returns a future to the operation so that it can be executed in parallel to other requests.
  4119. */
  4120. virtual Model::GetBucketPolicyStatusOutcomeCallable GetBucketPolicyStatusCallable(const Model::GetBucketPolicyStatusRequest& request) const;
  4121. /**
  4122. * <p>Retrieves the policy status for an Amazon S3 bucket, indicating whether the
  4123. * bucket is public. In order to use this operation, you must have the
  4124. * <code>s3:GetBucketPolicyStatus</code> permission. For more information about
  4125. * Amazon S3 permissions, see <a
  4126. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  4127. * Permissions in a Policy</a>.</p> <p> For more information about when Amazon S3
  4128. * considers a bucket public, see <a
  4129. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
  4130. * Meaning of "Public"</a>. </p> <p>The following operations are related to
  4131. * <code>GetBucketPolicyStatus</code>:</p> <ul> <li> <p> <a
  4132. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
  4133. * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
  4134. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
  4135. * </p> </li> <li> <p> <a
  4136. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
  4137. * </p> </li> <li> <p> <a
  4138. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
  4139. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4140. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus">AWS
  4141. * API Reference</a></p>
  4142. *
  4143. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  4144. */
  4145. virtual void GetBucketPolicyStatusAsync(const Model::GetBucketPolicyStatusRequest& request, const GetBucketPolicyStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  4146. /**
  4147. * <p>Returns the replication configuration of a bucket.</p> <p> It can take
  4148. * a while to propagate the put or delete a replication configuration to all Amazon
  4149. * S3 systems. Therefore, a get request soon after put or delete can return a wrong
  4150. * result. </p> <p> For information about replication configuration, see <a
  4151. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
  4152. * in the <i>Amazon S3 User Guide</i>.</p> <p>This action requires permissions for
  4153. * the <code>s3:GetReplicationConfiguration</code> action. For more information
  4154. * about permissions, see <a
  4155. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  4156. * Bucket Policies and User Policies</a>.</p> <p>If you include the
  4157. * <code>Filter</code> element in a replication configuration, you must also
  4158. * include the <code>DeleteMarkerReplication</code> and <code>Priority</code>
  4159. * elements. The response also returns those elements.</p> <p>For information about
  4160. * <code>GetBucketReplication</code> errors, see <a
  4161. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List
  4162. * of replication-related error codes</a> </p> <p>The following operations are
  4163. * related to <code>GetBucketReplication</code>:</p> <ul> <li> <p> <a
  4164. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>
  4165. * </p> </li> <li> <p> <a
  4166. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>
  4167. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4168. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplication">AWS
  4169. * API Reference</a></p>
  4170. */
  4171. virtual Model::GetBucketReplicationOutcome GetBucketReplication(const Model::GetBucketReplicationRequest& request) const;
  4172. /**
  4173. * <p>Returns the replication configuration of a bucket.</p> <p> It can take
  4174. * a while to propagate the put or delete a replication configuration to all Amazon
  4175. * S3 systems. Therefore, a get request soon after put or delete can return a wrong
  4176. * result. </p> <p> For information about replication configuration, see <a
  4177. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
  4178. * in the <i>Amazon S3 User Guide</i>.</p> <p>This action requires permissions for
  4179. * the <code>s3:GetReplicationConfiguration</code> action. For more information
  4180. * about permissions, see <a
  4181. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  4182. * Bucket Policies and User Policies</a>.</p> <p>If you include the
  4183. * <code>Filter</code> element in a replication configuration, you must also
  4184. * include the <code>DeleteMarkerReplication</code> and <code>Priority</code>
  4185. * elements. The response also returns those elements.</p> <p>For information about
  4186. * <code>GetBucketReplication</code> errors, see <a
  4187. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List
  4188. * of replication-related error codes</a> </p> <p>The following operations are
  4189. * related to <code>GetBucketReplication</code>:</p> <ul> <li> <p> <a
  4190. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>
  4191. * </p> </li> <li> <p> <a
  4192. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>
  4193. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4194. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplication">AWS
  4195. * API Reference</a></p>
  4196. *
  4197. * returns a future to the operation so that it can be executed in parallel to other requests.
  4198. */
  4199. virtual Model::GetBucketReplicationOutcomeCallable GetBucketReplicationCallable(const Model::GetBucketReplicationRequest& request) const;
  4200. /**
  4201. * <p>Returns the replication configuration of a bucket.</p> <p> It can take
  4202. * a while to propagate the put or delete a replication configuration to all Amazon
  4203. * S3 systems. Therefore, a get request soon after put or delete can return a wrong
  4204. * result. </p> <p> For information about replication configuration, see <a
  4205. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
  4206. * in the <i>Amazon S3 User Guide</i>.</p> <p>This action requires permissions for
  4207. * the <code>s3:GetReplicationConfiguration</code> action. For more information
  4208. * about permissions, see <a
  4209. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  4210. * Bucket Policies and User Policies</a>.</p> <p>If you include the
  4211. * <code>Filter</code> element in a replication configuration, you must also
  4212. * include the <code>DeleteMarkerReplication</code> and <code>Priority</code>
  4213. * elements. The response also returns those elements.</p> <p>For information about
  4214. * <code>GetBucketReplication</code> errors, see <a
  4215. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List
  4216. * of replication-related error codes</a> </p> <p>The following operations are
  4217. * related to <code>GetBucketReplication</code>:</p> <ul> <li> <p> <a
  4218. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>
  4219. * </p> </li> <li> <p> <a
  4220. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>
  4221. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4222. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplication">AWS
  4223. * API Reference</a></p>
  4224. *
  4225. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  4226. */
  4227. virtual void GetBucketReplicationAsync(const Model::GetBucketReplicationRequest& request, const GetBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  4228. /**
  4229. * <p>Returns the request payment configuration of a bucket. To use this version of
  4230. * the operation, you must be the bucket owner. For more information, see <a
  4231. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester
  4232. * Pays Buckets</a>.</p> <p>The following operations are related to
  4233. * <code>GetBucketRequestPayment</code>:</p> <ul> <li> <p> <a
  4234. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>
  4235. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4236. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketRequestPayment">AWS
  4237. * API Reference</a></p>
  4238. */
  4239. virtual Model::GetBucketRequestPaymentOutcome GetBucketRequestPayment(const Model::GetBucketRequestPaymentRequest& request) const;
  4240. /**
  4241. * <p>Returns the request payment configuration of a bucket. To use this version of
  4242. * the operation, you must be the bucket owner. For more information, see <a
  4243. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester
  4244. * Pays Buckets</a>.</p> <p>The following operations are related to
  4245. * <code>GetBucketRequestPayment</code>:</p> <ul> <li> <p> <a
  4246. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>
  4247. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4248. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketRequestPayment">AWS
  4249. * API Reference</a></p>
  4250. *
  4251. * returns a future to the operation so that it can be executed in parallel to other requests.
  4252. */
  4253. virtual Model::GetBucketRequestPaymentOutcomeCallable GetBucketRequestPaymentCallable(const Model::GetBucketRequestPaymentRequest& request) const;
  4254. /**
  4255. * <p>Returns the request payment configuration of a bucket. To use this version of
  4256. * the operation, you must be the bucket owner. For more information, see <a
  4257. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester
  4258. * Pays Buckets</a>.</p> <p>The following operations are related to
  4259. * <code>GetBucketRequestPayment</code>:</p> <ul> <li> <p> <a
  4260. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>
  4261. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4262. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketRequestPayment">AWS
  4263. * API Reference</a></p>
  4264. *
  4265. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  4266. */
  4267. virtual void GetBucketRequestPaymentAsync(const Model::GetBucketRequestPaymentRequest& request, const GetBucketRequestPaymentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  4268. /**
  4269. * <p>Returns the tag set associated with the bucket.</p> <p>To use this operation,
  4270. * you must have permission to perform the <code>s3:GetBucketTagging</code> action.
  4271. * By default, the bucket owner has this permission and can grant this permission
  4272. * to others.</p> <p> <code>GetBucketTagging</code> has the following special
  4273. * error:</p> <ul> <li> <p>Error code: <code>NoSuchTagSetError</code> </p> <ul>
  4274. * <li> <p>Description: There is no tag set associated with the bucket.</p> </li>
  4275. * </ul> </li> </ul> <p>The following operations are related to
  4276. * <code>GetBucketTagging</code>:</p> <ul> <li> <p> <a
  4277. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>
  4278. * </p> </li> <li> <p> <a
  4279. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>
  4280. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4281. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketTagging">AWS
  4282. * API Reference</a></p>
  4283. */
  4284. virtual Model::GetBucketTaggingOutcome GetBucketTagging(const Model::GetBucketTaggingRequest& request) const;
  4285. /**
  4286. * <p>Returns the tag set associated with the bucket.</p> <p>To use this operation,
  4287. * you must have permission to perform the <code>s3:GetBucketTagging</code> action.
  4288. * By default, the bucket owner has this permission and can grant this permission
  4289. * to others.</p> <p> <code>GetBucketTagging</code> has the following special
  4290. * error:</p> <ul> <li> <p>Error code: <code>NoSuchTagSetError</code> </p> <ul>
  4291. * <li> <p>Description: There is no tag set associated with the bucket.</p> </li>
  4292. * </ul> </li> </ul> <p>The following operations are related to
  4293. * <code>GetBucketTagging</code>:</p> <ul> <li> <p> <a
  4294. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>
  4295. * </p> </li> <li> <p> <a
  4296. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>
  4297. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4298. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketTagging">AWS
  4299. * API Reference</a></p>
  4300. *
  4301. * returns a future to the operation so that it can be executed in parallel to other requests.
  4302. */
  4303. virtual Model::GetBucketTaggingOutcomeCallable GetBucketTaggingCallable(const Model::GetBucketTaggingRequest& request) const;
  4304. /**
  4305. * <p>Returns the tag set associated with the bucket.</p> <p>To use this operation,
  4306. * you must have permission to perform the <code>s3:GetBucketTagging</code> action.
  4307. * By default, the bucket owner has this permission and can grant this permission
  4308. * to others.</p> <p> <code>GetBucketTagging</code> has the following special
  4309. * error:</p> <ul> <li> <p>Error code: <code>NoSuchTagSetError</code> </p> <ul>
  4310. * <li> <p>Description: There is no tag set associated with the bucket.</p> </li>
  4311. * </ul> </li> </ul> <p>The following operations are related to
  4312. * <code>GetBucketTagging</code>:</p> <ul> <li> <p> <a
  4313. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>
  4314. * </p> </li> <li> <p> <a
  4315. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>
  4316. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4317. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketTagging">AWS
  4318. * API Reference</a></p>
  4319. *
  4320. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  4321. */
  4322. virtual void GetBucketTaggingAsync(const Model::GetBucketTaggingRequest& request, const GetBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  4323. /**
  4324. * <p>Returns the versioning state of a bucket.</p> <p>To retrieve the versioning
  4325. * state of a bucket, you must be the bucket owner.</p> <p>This implementation also
  4326. * returns the MFA Delete status of the versioning state. If the MFA Delete status
  4327. * is <code>enabled</code>, the bucket owner must use an authentication device to
  4328. * change the versioning state of the bucket.</p> <p>The following operations are
  4329. * related to <code>GetBucketVersioning</code>:</p> <ul> <li> <p> <a
  4330. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  4331. * </p> </li> <li> <p> <a
  4332. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  4333. * </p> </li> <li> <p> <a
  4334. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  4335. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4336. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketVersioning">AWS
  4337. * API Reference</a></p>
  4338. */
  4339. virtual Model::GetBucketVersioningOutcome GetBucketVersioning(const Model::GetBucketVersioningRequest& request) const;
  4340. /**
  4341. * <p>Returns the versioning state of a bucket.</p> <p>To retrieve the versioning
  4342. * state of a bucket, you must be the bucket owner.</p> <p>This implementation also
  4343. * returns the MFA Delete status of the versioning state. If the MFA Delete status
  4344. * is <code>enabled</code>, the bucket owner must use an authentication device to
  4345. * change the versioning state of the bucket.</p> <p>The following operations are
  4346. * related to <code>GetBucketVersioning</code>:</p> <ul> <li> <p> <a
  4347. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  4348. * </p> </li> <li> <p> <a
  4349. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  4350. * </p> </li> <li> <p> <a
  4351. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  4352. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4353. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketVersioning">AWS
  4354. * API Reference</a></p>
  4355. *
  4356. * returns a future to the operation so that it can be executed in parallel to other requests.
  4357. */
  4358. virtual Model::GetBucketVersioningOutcomeCallable GetBucketVersioningCallable(const Model::GetBucketVersioningRequest& request) const;
  4359. /**
  4360. * <p>Returns the versioning state of a bucket.</p> <p>To retrieve the versioning
  4361. * state of a bucket, you must be the bucket owner.</p> <p>This implementation also
  4362. * returns the MFA Delete status of the versioning state. If the MFA Delete status
  4363. * is <code>enabled</code>, the bucket owner must use an authentication device to
  4364. * change the versioning state of the bucket.</p> <p>The following operations are
  4365. * related to <code>GetBucketVersioning</code>:</p> <ul> <li> <p> <a
  4366. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  4367. * </p> </li> <li> <p> <a
  4368. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  4369. * </p> </li> <li> <p> <a
  4370. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  4371. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4372. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketVersioning">AWS
  4373. * API Reference</a></p>
  4374. *
  4375. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  4376. */
  4377. virtual void GetBucketVersioningAsync(const Model::GetBucketVersioningRequest& request, const GetBucketVersioningResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  4378. /**
  4379. * <p>Returns the website configuration for a bucket. To host website on Amazon S3,
  4380. * you can configure a bucket as website by adding a website configuration. For
  4381. * more information about hosting websites, see <a
  4382. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
  4383. * Websites on Amazon S3</a>. </p> <p>This GET action requires the
  4384. * <code>S3:GetBucketWebsite</code> permission. By default, only the bucket owner
  4385. * can read the bucket website configuration. However, bucket owners can allow
  4386. * other users to read the website configuration by writing a bucket policy
  4387. * granting them the <code>S3:GetBucketWebsite</code> permission.</p> <p>The
  4388. * following operations are related to <code>DeleteBucketWebsite</code>:</p> <ul>
  4389. * <li> <p> <a
  4390. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html">DeleteBucketWebsite</a>
  4391. * </p> </li> <li> <p> <a
  4392. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>
  4393. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4394. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketWebsite">AWS
  4395. * API Reference</a></p>
  4396. */
  4397. virtual Model::GetBucketWebsiteOutcome GetBucketWebsite(const Model::GetBucketWebsiteRequest& request) const;
  4398. /**
  4399. * <p>Returns the website configuration for a bucket. To host website on Amazon S3,
  4400. * you can configure a bucket as website by adding a website configuration. For
  4401. * more information about hosting websites, see <a
  4402. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
  4403. * Websites on Amazon S3</a>. </p> <p>This GET action requires the
  4404. * <code>S3:GetBucketWebsite</code> permission. By default, only the bucket owner
  4405. * can read the bucket website configuration. However, bucket owners can allow
  4406. * other users to read the website configuration by writing a bucket policy
  4407. * granting them the <code>S3:GetBucketWebsite</code> permission.</p> <p>The
  4408. * following operations are related to <code>DeleteBucketWebsite</code>:</p> <ul>
  4409. * <li> <p> <a
  4410. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html">DeleteBucketWebsite</a>
  4411. * </p> </li> <li> <p> <a
  4412. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>
  4413. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4414. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketWebsite">AWS
  4415. * API Reference</a></p>
  4416. *
  4417. * returns a future to the operation so that it can be executed in parallel to other requests.
  4418. */
  4419. virtual Model::GetBucketWebsiteOutcomeCallable GetBucketWebsiteCallable(const Model::GetBucketWebsiteRequest& request) const;
  4420. /**
  4421. * <p>Returns the website configuration for a bucket. To host website on Amazon S3,
  4422. * you can configure a bucket as website by adding a website configuration. For
  4423. * more information about hosting websites, see <a
  4424. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
  4425. * Websites on Amazon S3</a>. </p> <p>This GET action requires the
  4426. * <code>S3:GetBucketWebsite</code> permission. By default, only the bucket owner
  4427. * can read the bucket website configuration. However, bucket owners can allow
  4428. * other users to read the website configuration by writing a bucket policy
  4429. * granting them the <code>S3:GetBucketWebsite</code> permission.</p> <p>The
  4430. * following operations are related to <code>DeleteBucketWebsite</code>:</p> <ul>
  4431. * <li> <p> <a
  4432. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html">DeleteBucketWebsite</a>
  4433. * </p> </li> <li> <p> <a
  4434. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>
  4435. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4436. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketWebsite">AWS
  4437. * API Reference</a></p>
  4438. *
  4439. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  4440. */
  4441. virtual void GetBucketWebsiteAsync(const Model::GetBucketWebsiteRequest& request, const GetBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  4442. /**
  4443. * <p>Retrieves objects from Amazon S3. To use <code>GET</code>, you must have
  4444. * <code>READ</code> access to the object. If you grant <code>READ</code> access to
  4445. * the anonymous user, you can return the object without using an authorization
  4446. * header.</p> <p>An Amazon S3 bucket has no directory hierarchy such as you would
  4447. * find in a typical computer file system. You can, however, create a logical
  4448. * hierarchy by using object key names that imply a folder structure. For example,
  4449. * instead of naming an object <code>sample.jpg</code>, you can name it
  4450. * <code>photos/2006/February/sample.jpg</code>.</p> <p>To get an object from such
  4451. * a logical hierarchy, specify the full key name for the object in the
  4452. * <code>GET</code> operation. For a virtual hosted-style request example, if you
  4453. * have the object <code>photos/2006/February/sample.jpg</code>, specify the
  4454. * resource as <code>/photos/2006/February/sample.jpg</code>. For a path-style
  4455. * request example, if you have the object
  4456. * <code>photos/2006/February/sample.jpg</code> in the bucket named
  4457. * <code>examplebucket</code>, specify the resource as
  4458. * <code>/examplebucket/photos/2006/February/sample.jpg</code>. For more
  4459. * information about request types, see <a
  4460. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket">HTTP
  4461. * Host Header Bucket Specification</a>.</p> <p>To distribute large files to many
  4462. * people, you can save bandwidth costs by using BitTorrent. For more information,
  4463. * see <a
  4464. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Amazon S3
  4465. * Torrent</a>. For more information about returning the ACL of an object, see <a
  4466. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>.</p>
  4467. * <p>If the object you are retrieving is stored in the S3 Glacier or S3 Glacier
  4468. * Deep Archive storage class, or S3 Intelligent-Tiering Archive or S3
  4469. * Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you
  4470. * must first restore a copy using <a
  4471. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>.
  4472. * Otherwise, this action returns an <code>InvalidObjectStateError</code> error.
  4473. * For information about restoring archived objects, see <a
  4474. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring
  4475. * Archived Objects</a>.</p> <p>Encryption request headers, like
  4476. * <code>x-amz-server-side-encryption</code>, should not be sent for GET requests
  4477. * if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS)
  4478. * or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If
  4479. * your object does use these types of keys, you’ll get an HTTP 400 BadRequest
  4480. * error.</p> <p>If you encrypt an object by using server-side encryption with
  4481. * customer-provided encryption keys (SSE-C) when you store the object in Amazon
  4482. * S3, then when you GET the object, you must use the following headers:</p> <ul>
  4483. * <li> <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
  4484. * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
  4485. * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
  4486. * information about SSE-C, see <a
  4487. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
  4488. * Encryption (Using Customer-Provided Encryption Keys)</a>.</p> <p>Assuming you
  4489. * have permission to read object tags (permission for the
  4490. * <code>s3:GetObjectVersionTagging</code> action), the response also returns the
  4491. * <code>x-amz-tagging-count</code> header that provides the count of number of
  4492. * tags associated with the object. You can use <a
  4493. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
  4494. * to retrieve the tag set associated with an object.</p> <p> <b>Permissions</b>
  4495. * </p> <p>You need the <code>s3:GetObject</code> permission for this operation.
  4496. * For more information, see <a
  4497. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  4498. * Permissions in a Policy</a>. If the object you request does not exist, the error
  4499. * Amazon S3 returns depends on whether you also have the
  4500. * <code>s3:ListBucket</code> permission.</p> <ul> <li> <p>If you have the
  4501. * <code>s3:ListBucket</code> permission on the bucket, Amazon S3 will return an
  4502. * HTTP status code 404 ("no such key") error.</p> </li> <li> <p>If you don’t have
  4503. * the <code>s3:ListBucket</code> permission, Amazon S3 will return an HTTP status
  4504. * code 403 ("access denied") error.</p> </li> </ul> <p> <b>Versioning</b> </p>
  4505. * <p>By default, the GET action returns the current version of an object. To
  4506. * return a different version, use the <code>versionId</code> subresource.</p>
  4507. * <p>If the current version of the object is a delete marker, Amazon S3
  4508. * behaves as if the object was deleted and includes <code>x-amz-delete-marker:
  4509. * true</code> in the response.</p> <p>For more information about
  4510. * versioning, see <a
  4511. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html">PutBucketVersioning</a>.
  4512. * </p> <p> <b>Overriding Response Header Values</b> </p> <p>There are times when
  4513. * you want to override certain response header values in a GET response. For
  4514. * example, you might override the Content-Disposition response header value in
  4515. * your GET request.</p> <p>You can override values for a set of response headers
  4516. * using the following query parameters. These response header values are sent only
  4517. * on a successful request, that is, when status code 200 OK is returned. The set
  4518. * of headers you can override using these parameters is a subset of the headers
  4519. * that Amazon S3 accepts when you create an object. The response headers that you
  4520. * can override for the GET response are <code>Content-Type</code>,
  4521. * <code>Content-Language</code>, <code>Expires</code>, <code>Cache-Control</code>,
  4522. * <code>Content-Disposition</code>, and <code>Content-Encoding</code>. To override
  4523. * these header values in the GET response, you use the following request
  4524. * parameters.</p> <p>You must sign the request, either using an
  4525. * Authorization header or a presigned URL, when using these parameters. They
  4526. * cannot be used with an unsigned (anonymous) request.</p> <ul> <li> <p>
  4527. * <code>response-content-type</code> </p> </li> <li> <p>
  4528. * <code>response-content-language</code> </p> </li> <li> <p>
  4529. * <code>response-expires</code> </p> </li> <li> <p>
  4530. * <code>response-cache-control</code> </p> </li> <li> <p>
  4531. * <code>response-content-disposition</code> </p> </li> <li> <p>
  4532. * <code>response-content-encoding</code> </p> </li> </ul> <p> <b>Additional
  4533. * Considerations about Request Headers</b> </p> <p>If both of the
  4534. * <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present
  4535. * in the request as follows: <code>If-Match</code> condition evaluates to
  4536. * <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to
  4537. * <code>false</code>; then, S3 returns 200 OK and the data requested. </p> <p>If
  4538. * both of the <code>If-None-Match</code> and <code>If-Modified-Since</code>
  4539. * headers are present in the request as follows:<code> If-None-Match</code>
  4540. * condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code>
  4541. * condition evaluates to <code>true</code>; then, S3 returns 304 Not Modified
  4542. * response code.</p> <p>For more information about conditional requests, see <a
  4543. * href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p> <p>The following
  4544. * operations are related to <code>GetObject</code>:</p> <ul> <li> <p> <a
  4545. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>
  4546. * </p> </li> <li> <p> <a
  4547. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>
  4548. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4549. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject">AWS API
  4550. * Reference</a></p>
  4551. */
  4552. virtual Model::GetObjectOutcome GetObject(const Model::GetObjectRequest& request) const;
  4553. /**
  4554. * <p>Retrieves objects from Amazon S3. To use <code>GET</code>, you must have
  4555. * <code>READ</code> access to the object. If you grant <code>READ</code> access to
  4556. * the anonymous user, you can return the object without using an authorization
  4557. * header.</p> <p>An Amazon S3 bucket has no directory hierarchy such as you would
  4558. * find in a typical computer file system. You can, however, create a logical
  4559. * hierarchy by using object key names that imply a folder structure. For example,
  4560. * instead of naming an object <code>sample.jpg</code>, you can name it
  4561. * <code>photos/2006/February/sample.jpg</code>.</p> <p>To get an object from such
  4562. * a logical hierarchy, specify the full key name for the object in the
  4563. * <code>GET</code> operation. For a virtual hosted-style request example, if you
  4564. * have the object <code>photos/2006/February/sample.jpg</code>, specify the
  4565. * resource as <code>/photos/2006/February/sample.jpg</code>. For a path-style
  4566. * request example, if you have the object
  4567. * <code>photos/2006/February/sample.jpg</code> in the bucket named
  4568. * <code>examplebucket</code>, specify the resource as
  4569. * <code>/examplebucket/photos/2006/February/sample.jpg</code>. For more
  4570. * information about request types, see <a
  4571. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket">HTTP
  4572. * Host Header Bucket Specification</a>.</p> <p>To distribute large files to many
  4573. * people, you can save bandwidth costs by using BitTorrent. For more information,
  4574. * see <a
  4575. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Amazon S3
  4576. * Torrent</a>. For more information about returning the ACL of an object, see <a
  4577. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>.</p>
  4578. * <p>If the object you are retrieving is stored in the S3 Glacier or S3 Glacier
  4579. * Deep Archive storage class, or S3 Intelligent-Tiering Archive or S3
  4580. * Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you
  4581. * must first restore a copy using <a
  4582. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>.
  4583. * Otherwise, this action returns an <code>InvalidObjectStateError</code> error.
  4584. * For information about restoring archived objects, see <a
  4585. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring
  4586. * Archived Objects</a>.</p> <p>Encryption request headers, like
  4587. * <code>x-amz-server-side-encryption</code>, should not be sent for GET requests
  4588. * if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS)
  4589. * or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If
  4590. * your object does use these types of keys, you’ll get an HTTP 400 BadRequest
  4591. * error.</p> <p>If you encrypt an object by using server-side encryption with
  4592. * customer-provided encryption keys (SSE-C) when you store the object in Amazon
  4593. * S3, then when you GET the object, you must use the following headers:</p> <ul>
  4594. * <li> <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
  4595. * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
  4596. * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
  4597. * information about SSE-C, see <a
  4598. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
  4599. * Encryption (Using Customer-Provided Encryption Keys)</a>.</p> <p>Assuming you
  4600. * have permission to read object tags (permission for the
  4601. * <code>s3:GetObjectVersionTagging</code> action), the response also returns the
  4602. * <code>x-amz-tagging-count</code> header that provides the count of number of
  4603. * tags associated with the object. You can use <a
  4604. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
  4605. * to retrieve the tag set associated with an object.</p> <p> <b>Permissions</b>
  4606. * </p> <p>You need the <code>s3:GetObject</code> permission for this operation.
  4607. * For more information, see <a
  4608. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  4609. * Permissions in a Policy</a>. If the object you request does not exist, the error
  4610. * Amazon S3 returns depends on whether you also have the
  4611. * <code>s3:ListBucket</code> permission.</p> <ul> <li> <p>If you have the
  4612. * <code>s3:ListBucket</code> permission on the bucket, Amazon S3 will return an
  4613. * HTTP status code 404 ("no such key") error.</p> </li> <li> <p>If you don’t have
  4614. * the <code>s3:ListBucket</code> permission, Amazon S3 will return an HTTP status
  4615. * code 403 ("access denied") error.</p> </li> </ul> <p> <b>Versioning</b> </p>
  4616. * <p>By default, the GET action returns the current version of an object. To
  4617. * return a different version, use the <code>versionId</code> subresource.</p>
  4618. * <p>If the current version of the object is a delete marker, Amazon S3
  4619. * behaves as if the object was deleted and includes <code>x-amz-delete-marker:
  4620. * true</code> in the response.</p> <p>For more information about
  4621. * versioning, see <a
  4622. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html">PutBucketVersioning</a>.
  4623. * </p> <p> <b>Overriding Response Header Values</b> </p> <p>There are times when
  4624. * you want to override certain response header values in a GET response. For
  4625. * example, you might override the Content-Disposition response header value in
  4626. * your GET request.</p> <p>You can override values for a set of response headers
  4627. * using the following query parameters. These response header values are sent only
  4628. * on a successful request, that is, when status code 200 OK is returned. The set
  4629. * of headers you can override using these parameters is a subset of the headers
  4630. * that Amazon S3 accepts when you create an object. The response headers that you
  4631. * can override for the GET response are <code>Content-Type</code>,
  4632. * <code>Content-Language</code>, <code>Expires</code>, <code>Cache-Control</code>,
  4633. * <code>Content-Disposition</code>, and <code>Content-Encoding</code>. To override
  4634. * these header values in the GET response, you use the following request
  4635. * parameters.</p> <p>You must sign the request, either using an
  4636. * Authorization header or a presigned URL, when using these parameters. They
  4637. * cannot be used with an unsigned (anonymous) request.</p> <ul> <li> <p>
  4638. * <code>response-content-type</code> </p> </li> <li> <p>
  4639. * <code>response-content-language</code> </p> </li> <li> <p>
  4640. * <code>response-expires</code> </p> </li> <li> <p>
  4641. * <code>response-cache-control</code> </p> </li> <li> <p>
  4642. * <code>response-content-disposition</code> </p> </li> <li> <p>
  4643. * <code>response-content-encoding</code> </p> </li> </ul> <p> <b>Additional
  4644. * Considerations about Request Headers</b> </p> <p>If both of the
  4645. * <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present
  4646. * in the request as follows: <code>If-Match</code> condition evaluates to
  4647. * <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to
  4648. * <code>false</code>; then, S3 returns 200 OK and the data requested. </p> <p>If
  4649. * both of the <code>If-None-Match</code> and <code>If-Modified-Since</code>
  4650. * headers are present in the request as follows:<code> If-None-Match</code>
  4651. * condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code>
  4652. * condition evaluates to <code>true</code>; then, S3 returns 304 Not Modified
  4653. * response code.</p> <p>For more information about conditional requests, see <a
  4654. * href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p> <p>The following
  4655. * operations are related to <code>GetObject</code>:</p> <ul> <li> <p> <a
  4656. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>
  4657. * </p> </li> <li> <p> <a
  4658. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>
  4659. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4660. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject">AWS API
  4661. * Reference</a></p>
  4662. *
  4663. * returns a future to the operation so that it can be executed in parallel to other requests.
  4664. */
  4665. virtual Model::GetObjectOutcomeCallable GetObjectCallable(const Model::GetObjectRequest& request) const;
  4666. /**
  4667. * <p>Retrieves objects from Amazon S3. To use <code>GET</code>, you must have
  4668. * <code>READ</code> access to the object. If you grant <code>READ</code> access to
  4669. * the anonymous user, you can return the object without using an authorization
  4670. * header.</p> <p>An Amazon S3 bucket has no directory hierarchy such as you would
  4671. * find in a typical computer file system. You can, however, create a logical
  4672. * hierarchy by using object key names that imply a folder structure. For example,
  4673. * instead of naming an object <code>sample.jpg</code>, you can name it
  4674. * <code>photos/2006/February/sample.jpg</code>.</p> <p>To get an object from such
  4675. * a logical hierarchy, specify the full key name for the object in the
  4676. * <code>GET</code> operation. For a virtual hosted-style request example, if you
  4677. * have the object <code>photos/2006/February/sample.jpg</code>, specify the
  4678. * resource as <code>/photos/2006/February/sample.jpg</code>. For a path-style
  4679. * request example, if you have the object
  4680. * <code>photos/2006/February/sample.jpg</code> in the bucket named
  4681. * <code>examplebucket</code>, specify the resource as
  4682. * <code>/examplebucket/photos/2006/February/sample.jpg</code>. For more
  4683. * information about request types, see <a
  4684. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket">HTTP
  4685. * Host Header Bucket Specification</a>.</p> <p>To distribute large files to many
  4686. * people, you can save bandwidth costs by using BitTorrent. For more information,
  4687. * see <a
  4688. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Amazon S3
  4689. * Torrent</a>. For more information about returning the ACL of an object, see <a
  4690. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>.</p>
  4691. * <p>If the object you are retrieving is stored in the S3 Glacier or S3 Glacier
  4692. * Deep Archive storage class, or S3 Intelligent-Tiering Archive or S3
  4693. * Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you
  4694. * must first restore a copy using <a
  4695. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>.
  4696. * Otherwise, this action returns an <code>InvalidObjectStateError</code> error.
  4697. * For information about restoring archived objects, see <a
  4698. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring
  4699. * Archived Objects</a>.</p> <p>Encryption request headers, like
  4700. * <code>x-amz-server-side-encryption</code>, should not be sent for GET requests
  4701. * if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS)
  4702. * or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If
  4703. * your object does use these types of keys, you’ll get an HTTP 400 BadRequest
  4704. * error.</p> <p>If you encrypt an object by using server-side encryption with
  4705. * customer-provided encryption keys (SSE-C) when you store the object in Amazon
  4706. * S3, then when you GET the object, you must use the following headers:</p> <ul>
  4707. * <li> <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
  4708. * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
  4709. * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
  4710. * information about SSE-C, see <a
  4711. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
  4712. * Encryption (Using Customer-Provided Encryption Keys)</a>.</p> <p>Assuming you
  4713. * have permission to read object tags (permission for the
  4714. * <code>s3:GetObjectVersionTagging</code> action), the response also returns the
  4715. * <code>x-amz-tagging-count</code> header that provides the count of number of
  4716. * tags associated with the object. You can use <a
  4717. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
  4718. * to retrieve the tag set associated with an object.</p> <p> <b>Permissions</b>
  4719. * </p> <p>You need the <code>s3:GetObject</code> permission for this operation.
  4720. * For more information, see <a
  4721. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  4722. * Permissions in a Policy</a>. If the object you request does not exist, the error
  4723. * Amazon S3 returns depends on whether you also have the
  4724. * <code>s3:ListBucket</code> permission.</p> <ul> <li> <p>If you have the
  4725. * <code>s3:ListBucket</code> permission on the bucket, Amazon S3 will return an
  4726. * HTTP status code 404 ("no such key") error.</p> </li> <li> <p>If you don’t have
  4727. * the <code>s3:ListBucket</code> permission, Amazon S3 will return an HTTP status
  4728. * code 403 ("access denied") error.</p> </li> </ul> <p> <b>Versioning</b> </p>
  4729. * <p>By default, the GET action returns the current version of an object. To
  4730. * return a different version, use the <code>versionId</code> subresource.</p>
  4731. * <p>If the current version of the object is a delete marker, Amazon S3
  4732. * behaves as if the object was deleted and includes <code>x-amz-delete-marker:
  4733. * true</code> in the response.</p> <p>For more information about
  4734. * versioning, see <a
  4735. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html">PutBucketVersioning</a>.
  4736. * </p> <p> <b>Overriding Response Header Values</b> </p> <p>There are times when
  4737. * you want to override certain response header values in a GET response. For
  4738. * example, you might override the Content-Disposition response header value in
  4739. * your GET request.</p> <p>You can override values for a set of response headers
  4740. * using the following query parameters. These response header values are sent only
  4741. * on a successful request, that is, when status code 200 OK is returned. The set
  4742. * of headers you can override using these parameters is a subset of the headers
  4743. * that Amazon S3 accepts when you create an object. The response headers that you
  4744. * can override for the GET response are <code>Content-Type</code>,
  4745. * <code>Content-Language</code>, <code>Expires</code>, <code>Cache-Control</code>,
  4746. * <code>Content-Disposition</code>, and <code>Content-Encoding</code>. To override
  4747. * these header values in the GET response, you use the following request
  4748. * parameters.</p> <p>You must sign the request, either using an
  4749. * Authorization header or a presigned URL, when using these parameters. They
  4750. * cannot be used with an unsigned (anonymous) request.</p> <ul> <li> <p>
  4751. * <code>response-content-type</code> </p> </li> <li> <p>
  4752. * <code>response-content-language</code> </p> </li> <li> <p>
  4753. * <code>response-expires</code> </p> </li> <li> <p>
  4754. * <code>response-cache-control</code> </p> </li> <li> <p>
  4755. * <code>response-content-disposition</code> </p> </li> <li> <p>
  4756. * <code>response-content-encoding</code> </p> </li> </ul> <p> <b>Additional
  4757. * Considerations about Request Headers</b> </p> <p>If both of the
  4758. * <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present
  4759. * in the request as follows: <code>If-Match</code> condition evaluates to
  4760. * <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to
  4761. * <code>false</code>; then, S3 returns 200 OK and the data requested. </p> <p>If
  4762. * both of the <code>If-None-Match</code> and <code>If-Modified-Since</code>
  4763. * headers are present in the request as follows:<code> If-None-Match</code>
  4764. * condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code>
  4765. * condition evaluates to <code>true</code>; then, S3 returns 304 Not Modified
  4766. * response code.</p> <p>For more information about conditional requests, see <a
  4767. * href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p> <p>The following
  4768. * operations are related to <code>GetObject</code>:</p> <ul> <li> <p> <a
  4769. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>
  4770. * </p> </li> <li> <p> <a
  4771. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>
  4772. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4773. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject">AWS API
  4774. * Reference</a></p>
  4775. *
  4776. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  4777. */
  4778. virtual void GetObjectAsync(const Model::GetObjectRequest& request, const GetObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  4779. /**
  4780. * <p>Returns the access control list (ACL) of an object. To use this operation,
  4781. * you must have <code>READ_ACP</code> access to the object.</p> <p>This action is
  4782. * not supported by Amazon S3 on Outposts.</p> <p> <b>Versioning</b> </p> <p>By
  4783. * default, GET returns ACL information about the current version of an object. To
  4784. * return ACL information about a different version, use the versionId
  4785. * subresource.</p> <p>The following operations are related to
  4786. * <code>GetObjectAcl</code>:</p> <ul> <li> <p> <a
  4787. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  4788. * </p> </li> <li> <p> <a
  4789. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  4790. * </p> </li> <li> <p> <a
  4791. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  4792. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4793. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAcl">AWS API
  4794. * Reference</a></p>
  4795. */
  4796. virtual Model::GetObjectAclOutcome GetObjectAcl(const Model::GetObjectAclRequest& request) const;
  4797. /**
  4798. * <p>Returns the access control list (ACL) of an object. To use this operation,
  4799. * you must have <code>READ_ACP</code> access to the object.</p> <p>This action is
  4800. * not supported by Amazon S3 on Outposts.</p> <p> <b>Versioning</b> </p> <p>By
  4801. * default, GET returns ACL information about the current version of an object. To
  4802. * return ACL information about a different version, use the versionId
  4803. * subresource.</p> <p>The following operations are related to
  4804. * <code>GetObjectAcl</code>:</p> <ul> <li> <p> <a
  4805. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  4806. * </p> </li> <li> <p> <a
  4807. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  4808. * </p> </li> <li> <p> <a
  4809. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  4810. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4811. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAcl">AWS API
  4812. * Reference</a></p>
  4813. *
  4814. * returns a future to the operation so that it can be executed in parallel to other requests.
  4815. */
  4816. virtual Model::GetObjectAclOutcomeCallable GetObjectAclCallable(const Model::GetObjectAclRequest& request) const;
  4817. /**
  4818. * <p>Returns the access control list (ACL) of an object. To use this operation,
  4819. * you must have <code>READ_ACP</code> access to the object.</p> <p>This action is
  4820. * not supported by Amazon S3 on Outposts.</p> <p> <b>Versioning</b> </p> <p>By
  4821. * default, GET returns ACL information about the current version of an object. To
  4822. * return ACL information about a different version, use the versionId
  4823. * subresource.</p> <p>The following operations are related to
  4824. * <code>GetObjectAcl</code>:</p> <ul> <li> <p> <a
  4825. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  4826. * </p> </li> <li> <p> <a
  4827. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  4828. * </p> </li> <li> <p> <a
  4829. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  4830. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4831. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAcl">AWS API
  4832. * Reference</a></p>
  4833. *
  4834. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  4835. */
  4836. virtual void GetObjectAclAsync(const Model::GetObjectAclRequest& request, const GetObjectAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  4837. /**
  4838. * <p>Gets an object's current Legal Hold status. For more information, see <a
  4839. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  4840. * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
  4841. * Outposts.</p><p><h3>See Also:</h3> <a
  4842. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold">AWS
  4843. * API Reference</a></p>
  4844. */
  4845. virtual Model::GetObjectLegalHoldOutcome GetObjectLegalHold(const Model::GetObjectLegalHoldRequest& request) const;
  4846. /**
  4847. * <p>Gets an object's current Legal Hold status. For more information, see <a
  4848. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  4849. * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
  4850. * Outposts.</p><p><h3>See Also:</h3> <a
  4851. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold">AWS
  4852. * API Reference</a></p>
  4853. *
  4854. * returns a future to the operation so that it can be executed in parallel to other requests.
  4855. */
  4856. virtual Model::GetObjectLegalHoldOutcomeCallable GetObjectLegalHoldCallable(const Model::GetObjectLegalHoldRequest& request) const;
  4857. /**
  4858. * <p>Gets an object's current Legal Hold status. For more information, see <a
  4859. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  4860. * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
  4861. * Outposts.</p><p><h3>See Also:</h3> <a
  4862. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold">AWS
  4863. * API Reference</a></p>
  4864. *
  4865. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  4866. */
  4867. virtual void GetObjectLegalHoldAsync(const Model::GetObjectLegalHoldRequest& request, const GetObjectLegalHoldResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  4868. /**
  4869. * <p>Gets the Object Lock configuration for a bucket. The rule specified in the
  4870. * Object Lock configuration will be applied by default to every new object placed
  4871. * in the specified bucket. For more information, see <a
  4872. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  4873. * Objects</a>.</p><p><h3>See Also:</h3> <a
  4874. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration">AWS
  4875. * API Reference</a></p>
  4876. */
  4877. virtual Model::GetObjectLockConfigurationOutcome GetObjectLockConfiguration(const Model::GetObjectLockConfigurationRequest& request) const;
  4878. /**
  4879. * <p>Gets the Object Lock configuration for a bucket. The rule specified in the
  4880. * Object Lock configuration will be applied by default to every new object placed
  4881. * in the specified bucket. For more information, see <a
  4882. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  4883. * Objects</a>.</p><p><h3>See Also:</h3> <a
  4884. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration">AWS
  4885. * API Reference</a></p>
  4886. *
  4887. * returns a future to the operation so that it can be executed in parallel to other requests.
  4888. */
  4889. virtual Model::GetObjectLockConfigurationOutcomeCallable GetObjectLockConfigurationCallable(const Model::GetObjectLockConfigurationRequest& request) const;
  4890. /**
  4891. * <p>Gets the Object Lock configuration for a bucket. The rule specified in the
  4892. * Object Lock configuration will be applied by default to every new object placed
  4893. * in the specified bucket. For more information, see <a
  4894. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  4895. * Objects</a>.</p><p><h3>See Also:</h3> <a
  4896. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration">AWS
  4897. * API Reference</a></p>
  4898. *
  4899. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  4900. */
  4901. virtual void GetObjectLockConfigurationAsync(const Model::GetObjectLockConfigurationRequest& request, const GetObjectLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  4902. /**
  4903. * <p>Retrieves an object's retention settings. For more information, see <a
  4904. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  4905. * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
  4906. * Outposts.</p><p><h3>See Also:</h3> <a
  4907. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention">AWS
  4908. * API Reference</a></p>
  4909. */
  4910. virtual Model::GetObjectRetentionOutcome GetObjectRetention(const Model::GetObjectRetentionRequest& request) const;
  4911. /**
  4912. * <p>Retrieves an object's retention settings. For more information, see <a
  4913. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  4914. * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
  4915. * Outposts.</p><p><h3>See Also:</h3> <a
  4916. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention">AWS
  4917. * API Reference</a></p>
  4918. *
  4919. * returns a future to the operation so that it can be executed in parallel to other requests.
  4920. */
  4921. virtual Model::GetObjectRetentionOutcomeCallable GetObjectRetentionCallable(const Model::GetObjectRetentionRequest& request) const;
  4922. /**
  4923. * <p>Retrieves an object's retention settings. For more information, see <a
  4924. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  4925. * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
  4926. * Outposts.</p><p><h3>See Also:</h3> <a
  4927. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention">AWS
  4928. * API Reference</a></p>
  4929. *
  4930. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  4931. */
  4932. virtual void GetObjectRetentionAsync(const Model::GetObjectRetentionRequest& request, const GetObjectRetentionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  4933. /**
  4934. * <p>Returns the tag-set of an object. You send the GET request against the
  4935. * tagging subresource associated with the object.</p> <p>To use this operation,
  4936. * you must have permission to perform the <code>s3:GetObjectTagging</code> action.
  4937. * By default, the GET action returns information about current version of an
  4938. * object. For a versioned bucket, you can have multiple versions of an object in
  4939. * your bucket. To retrieve tags of any other version, use the versionId query
  4940. * parameter. You also need permission for the
  4941. * <code>s3:GetObjectVersionTagging</code> action.</p> <p> By default, the bucket
  4942. * owner has this permission and can grant this permission to others.</p> <p> For
  4943. * information about the Amazon S3 object tagging feature, see <a
  4944. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
  4945. * Tagging</a>.</p> <p>The following action is related to
  4946. * <code>GetObjectTagging</code>:</p> <ul> <li> <p> <a
  4947. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>
  4948. * </p> </li> <li> <p> <a
  4949. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>
  4950. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4951. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTagging">AWS
  4952. * API Reference</a></p>
  4953. */
  4954. virtual Model::GetObjectTaggingOutcome GetObjectTagging(const Model::GetObjectTaggingRequest& request) const;
  4955. /**
  4956. * <p>Returns the tag-set of an object. You send the GET request against the
  4957. * tagging subresource associated with the object.</p> <p>To use this operation,
  4958. * you must have permission to perform the <code>s3:GetObjectTagging</code> action.
  4959. * By default, the GET action returns information about current version of an
  4960. * object. For a versioned bucket, you can have multiple versions of an object in
  4961. * your bucket. To retrieve tags of any other version, use the versionId query
  4962. * parameter. You also need permission for the
  4963. * <code>s3:GetObjectVersionTagging</code> action.</p> <p> By default, the bucket
  4964. * owner has this permission and can grant this permission to others.</p> <p> For
  4965. * information about the Amazon S3 object tagging feature, see <a
  4966. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
  4967. * Tagging</a>.</p> <p>The following action is related to
  4968. * <code>GetObjectTagging</code>:</p> <ul> <li> <p> <a
  4969. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>
  4970. * </p> </li> <li> <p> <a
  4971. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>
  4972. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4973. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTagging">AWS
  4974. * API Reference</a></p>
  4975. *
  4976. * returns a future to the operation so that it can be executed in parallel to other requests.
  4977. */
  4978. virtual Model::GetObjectTaggingOutcomeCallable GetObjectTaggingCallable(const Model::GetObjectTaggingRequest& request) const;
  4979. /**
  4980. * <p>Returns the tag-set of an object. You send the GET request against the
  4981. * tagging subresource associated with the object.</p> <p>To use this operation,
  4982. * you must have permission to perform the <code>s3:GetObjectTagging</code> action.
  4983. * By default, the GET action returns information about current version of an
  4984. * object. For a versioned bucket, you can have multiple versions of an object in
  4985. * your bucket. To retrieve tags of any other version, use the versionId query
  4986. * parameter. You also need permission for the
  4987. * <code>s3:GetObjectVersionTagging</code> action.</p> <p> By default, the bucket
  4988. * owner has this permission and can grant this permission to others.</p> <p> For
  4989. * information about the Amazon S3 object tagging feature, see <a
  4990. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
  4991. * Tagging</a>.</p> <p>The following action is related to
  4992. * <code>GetObjectTagging</code>:</p> <ul> <li> <p> <a
  4993. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>
  4994. * </p> </li> <li> <p> <a
  4995. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>
  4996. * </p> </li> </ul><p><h3>See Also:</h3> <a
  4997. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTagging">AWS
  4998. * API Reference</a></p>
  4999. *
  5000. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  5001. */
  5002. virtual void GetObjectTaggingAsync(const Model::GetObjectTaggingRequest& request, const GetObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  5003. /**
  5004. * <p>Returns torrent files from a bucket. BitTorrent can save you bandwidth when
  5005. * you're distributing large files. For more information about BitTorrent, see <a
  5006. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Using
  5007. * BitTorrent with Amazon S3</a>.</p> <p>You can get torrent only for
  5008. * objects that are less than 5 GB in size, and that are not encrypted using
  5009. * server-side encryption with a customer-provided encryption key.</p>
  5010. * <p>To use GET, you must have READ access to the object.</p> <p>This action is
  5011. * not supported by Amazon S3 on Outposts.</p> <p>The following action is related
  5012. * to <code>GetObjectTorrent</code>:</p> <ul> <li> <p> <a
  5013. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  5014. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5015. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTorrent">AWS
  5016. * API Reference</a></p>
  5017. */
  5018. virtual Model::GetObjectTorrentOutcome GetObjectTorrent(const Model::GetObjectTorrentRequest& request) const;
  5019. /**
  5020. * <p>Returns torrent files from a bucket. BitTorrent can save you bandwidth when
  5021. * you're distributing large files. For more information about BitTorrent, see <a
  5022. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Using
  5023. * BitTorrent with Amazon S3</a>.</p> <p>You can get torrent only for
  5024. * objects that are less than 5 GB in size, and that are not encrypted using
  5025. * server-side encryption with a customer-provided encryption key.</p>
  5026. * <p>To use GET, you must have READ access to the object.</p> <p>This action is
  5027. * not supported by Amazon S3 on Outposts.</p> <p>The following action is related
  5028. * to <code>GetObjectTorrent</code>:</p> <ul> <li> <p> <a
  5029. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  5030. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5031. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTorrent">AWS
  5032. * API Reference</a></p>
  5033. *
  5034. * returns a future to the operation so that it can be executed in parallel to other requests.
  5035. */
  5036. virtual Model::GetObjectTorrentOutcomeCallable GetObjectTorrentCallable(const Model::GetObjectTorrentRequest& request) const;
  5037. /**
  5038. * <p>Returns torrent files from a bucket. BitTorrent can save you bandwidth when
  5039. * you're distributing large files. For more information about BitTorrent, see <a
  5040. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Using
  5041. * BitTorrent with Amazon S3</a>.</p> <p>You can get torrent only for
  5042. * objects that are less than 5 GB in size, and that are not encrypted using
  5043. * server-side encryption with a customer-provided encryption key.</p>
  5044. * <p>To use GET, you must have READ access to the object.</p> <p>This action is
  5045. * not supported by Amazon S3 on Outposts.</p> <p>The following action is related
  5046. * to <code>GetObjectTorrent</code>:</p> <ul> <li> <p> <a
  5047. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  5048. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5049. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTorrent">AWS
  5050. * API Reference</a></p>
  5051. *
  5052. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  5053. */
  5054. virtual void GetObjectTorrentAsync(const Model::GetObjectTorrentRequest& request, const GetObjectTorrentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  5055. /**
  5056. * <p>Retrieves the <code>PublicAccessBlock</code> configuration for an Amazon S3
  5057. * bucket. To use this operation, you must have the
  5058. * <code>s3:GetBucketPublicAccessBlock</code> permission. For more information
  5059. * about Amazon S3 permissions, see <a
  5060. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  5061. * Permissions in a Policy</a>.</p> <p>When Amazon S3 evaluates the
  5062. * <code>PublicAccessBlock</code> configuration for a bucket or an object, it
  5063. * checks the <code>PublicAccessBlock</code> configuration for both the bucket (or
  5064. * the bucket that contains the object) and the bucket owner's account. If the
  5065. * <code>PublicAccessBlock</code> settings are different between the bucket and the
  5066. * account, Amazon S3 uses the most restrictive combination of the bucket-level and
  5067. * account-level settings.</p> <p>For more information about when
  5068. * Amazon S3 considers a bucket or an object public, see <a
  5069. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
  5070. * Meaning of "Public"</a>.</p> <p>The following operations are related to
  5071. * <code>GetPublicAccessBlock</code>:</p> <ul> <li> <p> <a
  5072. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
  5073. * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
  5074. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
  5075. * </p> </li> <li> <p> <a
  5076. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
  5077. * </p> </li> <li> <p> <a
  5078. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
  5079. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5080. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock">AWS
  5081. * API Reference</a></p>
  5082. */
  5083. virtual Model::GetPublicAccessBlockOutcome GetPublicAccessBlock(const Model::GetPublicAccessBlockRequest& request) const;
  5084. /**
  5085. * <p>Retrieves the <code>PublicAccessBlock</code> configuration for an Amazon S3
  5086. * bucket. To use this operation, you must have the
  5087. * <code>s3:GetBucketPublicAccessBlock</code> permission. For more information
  5088. * about Amazon S3 permissions, see <a
  5089. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  5090. * Permissions in a Policy</a>.</p> <p>When Amazon S3 evaluates the
  5091. * <code>PublicAccessBlock</code> configuration for a bucket or an object, it
  5092. * checks the <code>PublicAccessBlock</code> configuration for both the bucket (or
  5093. * the bucket that contains the object) and the bucket owner's account. If the
  5094. * <code>PublicAccessBlock</code> settings are different between the bucket and the
  5095. * account, Amazon S3 uses the most restrictive combination of the bucket-level and
  5096. * account-level settings.</p> <p>For more information about when
  5097. * Amazon S3 considers a bucket or an object public, see <a
  5098. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
  5099. * Meaning of "Public"</a>.</p> <p>The following operations are related to
  5100. * <code>GetPublicAccessBlock</code>:</p> <ul> <li> <p> <a
  5101. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
  5102. * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
  5103. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
  5104. * </p> </li> <li> <p> <a
  5105. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
  5106. * </p> </li> <li> <p> <a
  5107. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
  5108. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5109. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock">AWS
  5110. * API Reference</a></p>
  5111. *
  5112. * returns a future to the operation so that it can be executed in parallel to other requests.
  5113. */
  5114. virtual Model::GetPublicAccessBlockOutcomeCallable GetPublicAccessBlockCallable(const Model::GetPublicAccessBlockRequest& request) const;
  5115. /**
  5116. * <p>Retrieves the <code>PublicAccessBlock</code> configuration for an Amazon S3
  5117. * bucket. To use this operation, you must have the
  5118. * <code>s3:GetBucketPublicAccessBlock</code> permission. For more information
  5119. * about Amazon S3 permissions, see <a
  5120. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  5121. * Permissions in a Policy</a>.</p> <p>When Amazon S3 evaluates the
  5122. * <code>PublicAccessBlock</code> configuration for a bucket or an object, it
  5123. * checks the <code>PublicAccessBlock</code> configuration for both the bucket (or
  5124. * the bucket that contains the object) and the bucket owner's account. If the
  5125. * <code>PublicAccessBlock</code> settings are different between the bucket and the
  5126. * account, Amazon S3 uses the most restrictive combination of the bucket-level and
  5127. * account-level settings.</p> <p>For more information about when
  5128. * Amazon S3 considers a bucket or an object public, see <a
  5129. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
  5130. * Meaning of "Public"</a>.</p> <p>The following operations are related to
  5131. * <code>GetPublicAccessBlock</code>:</p> <ul> <li> <p> <a
  5132. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
  5133. * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
  5134. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
  5135. * </p> </li> <li> <p> <a
  5136. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
  5137. * </p> </li> <li> <p> <a
  5138. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
  5139. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5140. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock">AWS
  5141. * API Reference</a></p>
  5142. *
  5143. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  5144. */
  5145. virtual void GetPublicAccessBlockAsync(const Model::GetPublicAccessBlockRequest& request, const GetPublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  5146. /**
  5147. * <p>This action is useful to determine if a bucket exists and you have permission
  5148. * to access it. The action returns a <code>200 OK</code> if the bucket exists and
  5149. * you have permission to access it.</p> <p>If the bucket does not exist or you do
  5150. * not have permission to access it, the <code>HEAD</code> request returns a
  5151. * generic <code>404 Not Found</code> or <code>403 Forbidden</code> code. A message
  5152. * body is not included, so you cannot determine the exception beyond these error
  5153. * codes.</p> <p>To use this operation, you must have permissions to perform the
  5154. * <code>s3:ListBucket</code> action. The bucket owner has this permission by
  5155. * default and can grant this permission to others. For more information about
  5156. * permissions, see <a
  5157. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  5158. * Related to Bucket Subresource Operations</a> and <a
  5159. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  5160. * Access Permissions to Your Amazon S3 Resources</a>.</p><p><h3>See Also:</h3>
  5161. * <a href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucket">AWS
  5162. * API Reference</a></p>
  5163. */
  5164. virtual Model::HeadBucketOutcome HeadBucket(const Model::HeadBucketRequest& request) const;
  5165. /**
  5166. * <p>This action is useful to determine if a bucket exists and you have permission
  5167. * to access it. The action returns a <code>200 OK</code> if the bucket exists and
  5168. * you have permission to access it.</p> <p>If the bucket does not exist or you do
  5169. * not have permission to access it, the <code>HEAD</code> request returns a
  5170. * generic <code>404 Not Found</code> or <code>403 Forbidden</code> code. A message
  5171. * body is not included, so you cannot determine the exception beyond these error
  5172. * codes.</p> <p>To use this operation, you must have permissions to perform the
  5173. * <code>s3:ListBucket</code> action. The bucket owner has this permission by
  5174. * default and can grant this permission to others. For more information about
  5175. * permissions, see <a
  5176. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  5177. * Related to Bucket Subresource Operations</a> and <a
  5178. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  5179. * Access Permissions to Your Amazon S3 Resources</a>.</p><p><h3>See Also:</h3>
  5180. * <a href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucket">AWS
  5181. * API Reference</a></p>
  5182. *
  5183. * returns a future to the operation so that it can be executed in parallel to other requests.
  5184. */
  5185. virtual Model::HeadBucketOutcomeCallable HeadBucketCallable(const Model::HeadBucketRequest& request) const;
  5186. /**
  5187. * <p>This action is useful to determine if a bucket exists and you have permission
  5188. * to access it. The action returns a <code>200 OK</code> if the bucket exists and
  5189. * you have permission to access it.</p> <p>If the bucket does not exist or you do
  5190. * not have permission to access it, the <code>HEAD</code> request returns a
  5191. * generic <code>404 Not Found</code> or <code>403 Forbidden</code> code. A message
  5192. * body is not included, so you cannot determine the exception beyond these error
  5193. * codes.</p> <p>To use this operation, you must have permissions to perform the
  5194. * <code>s3:ListBucket</code> action. The bucket owner has this permission by
  5195. * default and can grant this permission to others. For more information about
  5196. * permissions, see <a
  5197. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  5198. * Related to Bucket Subresource Operations</a> and <a
  5199. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  5200. * Access Permissions to Your Amazon S3 Resources</a>.</p><p><h3>See Also:</h3>
  5201. * <a href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucket">AWS
  5202. * API Reference</a></p>
  5203. *
  5204. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  5205. */
  5206. virtual void HeadBucketAsync(const Model::HeadBucketRequest& request, const HeadBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  5207. /**
  5208. * <p>The HEAD action retrieves metadata from an object without returning the
  5209. * object itself. This action is useful if you're only interested in an object's
  5210. * metadata. To use HEAD, you must have READ access to the object.</p> <p>A
  5211. * <code>HEAD</code> request has the same options as a <code>GET</code> action on
  5212. * an object. The response is identical to the <code>GET</code> response except
  5213. * that there is no response body. Because of this, if the <code>HEAD</code>
  5214. * request generates an error, it returns a generic <code>404 Not Found</code> or
  5215. * <code>403 Forbidden</code> code. It is not possible to retrieve the exact
  5216. * exception beyond these error codes.</p> <p>If you encrypt an object by using
  5217. * server-side encryption with customer-provided encryption keys (SSE-C) when you
  5218. * store the object in Amazon S3, then when you retrieve the metadata from the
  5219. * object, you must use the following headers:</p> <ul> <li>
  5220. * <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
  5221. * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
  5222. * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
  5223. * information about SSE-C, see <a
  5224. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
  5225. * Encryption (Using Customer-Provided Encryption Keys)</a>.</p> <ul> <li>
  5226. * <p>Encryption request headers, like <code>x-amz-server-side-encryption</code>,
  5227. * should not be sent for GET requests if your object uses server-side encryption
  5228. * with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon
  5229. * S3–managed encryption keys (SSE-S3). If your object does use these types of
  5230. * keys, you’ll get an HTTP 400 BadRequest error.</p> </li> <li> <p> The last
  5231. * modified property in this case is the creation date of the object.</p> </li>
  5232. * </ul> <p>Request headers are limited to 8 KB in size. For more
  5233. * information, see <a
  5234. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html">Common
  5235. * Request Headers</a>.</p> <p>Consider the following when using request
  5236. * headers:</p> <ul> <li> <p> Consideration 1 – If both of the
  5237. * <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present
  5238. * in the request as follows:</p> <ul> <li> <p> <code>If-Match</code> condition
  5239. * evaluates to <code>true</code>, and;</p> </li> <li> <p>
  5240. * <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>;</p>
  5241. * </li> </ul> <p>Then Amazon S3 returns <code>200 OK</code> and the data
  5242. * requested.</p> </li> <li> <p> Consideration 2 – If both of the
  5243. * <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are
  5244. * present in the request as follows:</p> <ul> <li> <p> <code>If-None-Match</code>
  5245. * condition evaluates to <code>false</code>, and;</p> </li> <li> <p>
  5246. * <code>If-Modified-Since</code> condition evaluates to <code>true</code>;</p>
  5247. * </li> </ul> <p>Then Amazon S3 returns the <code>304 Not Modified</code> response
  5248. * code.</p> </li> </ul> <p>For more information about conditional requests, see <a
  5249. * href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p> <p>
  5250. * <b>Permissions</b> </p> <p>You need the <code>s3:GetObject</code> permission for
  5251. * this operation. For more information, see <a
  5252. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  5253. * Permissions in a Policy</a>. If the object you request does not exist, the error
  5254. * Amazon S3 returns depends on whether you also have the s3:ListBucket
  5255. * permission.</p> <ul> <li> <p>If you have the <code>s3:ListBucket</code>
  5256. * permission on the bucket, Amazon S3 returns an HTTP status code 404 ("no such
  5257. * key") error.</p> </li> <li> <p>If you don’t have the <code>s3:ListBucket</code>
  5258. * permission, Amazon S3 returns an HTTP status code 403 ("access denied")
  5259. * error.</p> </li> </ul> <p>The following action is related to
  5260. * <code>HeadObject</code>:</p> <ul> <li> <p> <a
  5261. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  5262. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5263. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObject">AWS API
  5264. * Reference</a></p>
  5265. */
  5266. virtual Model::HeadObjectOutcome HeadObject(const Model::HeadObjectRequest& request) const;
  5267. /**
  5268. * <p>The HEAD action retrieves metadata from an object without returning the
  5269. * object itself. This action is useful if you're only interested in an object's
  5270. * metadata. To use HEAD, you must have READ access to the object.</p> <p>A
  5271. * <code>HEAD</code> request has the same options as a <code>GET</code> action on
  5272. * an object. The response is identical to the <code>GET</code> response except
  5273. * that there is no response body. Because of this, if the <code>HEAD</code>
  5274. * request generates an error, it returns a generic <code>404 Not Found</code> or
  5275. * <code>403 Forbidden</code> code. It is not possible to retrieve the exact
  5276. * exception beyond these error codes.</p> <p>If you encrypt an object by using
  5277. * server-side encryption with customer-provided encryption keys (SSE-C) when you
  5278. * store the object in Amazon S3, then when you retrieve the metadata from the
  5279. * object, you must use the following headers:</p> <ul> <li>
  5280. * <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
  5281. * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
  5282. * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
  5283. * information about SSE-C, see <a
  5284. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
  5285. * Encryption (Using Customer-Provided Encryption Keys)</a>.</p> <ul> <li>
  5286. * <p>Encryption request headers, like <code>x-amz-server-side-encryption</code>,
  5287. * should not be sent for GET requests if your object uses server-side encryption
  5288. * with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon
  5289. * S3–managed encryption keys (SSE-S3). If your object does use these types of
  5290. * keys, you’ll get an HTTP 400 BadRequest error.</p> </li> <li> <p> The last
  5291. * modified property in this case is the creation date of the object.</p> </li>
  5292. * </ul> <p>Request headers are limited to 8 KB in size. For more
  5293. * information, see <a
  5294. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html">Common
  5295. * Request Headers</a>.</p> <p>Consider the following when using request
  5296. * headers:</p> <ul> <li> <p> Consideration 1 – If both of the
  5297. * <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present
  5298. * in the request as follows:</p> <ul> <li> <p> <code>If-Match</code> condition
  5299. * evaluates to <code>true</code>, and;</p> </li> <li> <p>
  5300. * <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>;</p>
  5301. * </li> </ul> <p>Then Amazon S3 returns <code>200 OK</code> and the data
  5302. * requested.</p> </li> <li> <p> Consideration 2 – If both of the
  5303. * <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are
  5304. * present in the request as follows:</p> <ul> <li> <p> <code>If-None-Match</code>
  5305. * condition evaluates to <code>false</code>, and;</p> </li> <li> <p>
  5306. * <code>If-Modified-Since</code> condition evaluates to <code>true</code>;</p>
  5307. * </li> </ul> <p>Then Amazon S3 returns the <code>304 Not Modified</code> response
  5308. * code.</p> </li> </ul> <p>For more information about conditional requests, see <a
  5309. * href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p> <p>
  5310. * <b>Permissions</b> </p> <p>You need the <code>s3:GetObject</code> permission for
  5311. * this operation. For more information, see <a
  5312. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  5313. * Permissions in a Policy</a>. If the object you request does not exist, the error
  5314. * Amazon S3 returns depends on whether you also have the s3:ListBucket
  5315. * permission.</p> <ul> <li> <p>If you have the <code>s3:ListBucket</code>
  5316. * permission on the bucket, Amazon S3 returns an HTTP status code 404 ("no such
  5317. * key") error.</p> </li> <li> <p>If you don’t have the <code>s3:ListBucket</code>
  5318. * permission, Amazon S3 returns an HTTP status code 403 ("access denied")
  5319. * error.</p> </li> </ul> <p>The following action is related to
  5320. * <code>HeadObject</code>:</p> <ul> <li> <p> <a
  5321. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  5322. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5323. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObject">AWS API
  5324. * Reference</a></p>
  5325. *
  5326. * returns a future to the operation so that it can be executed in parallel to other requests.
  5327. */
  5328. virtual Model::HeadObjectOutcomeCallable HeadObjectCallable(const Model::HeadObjectRequest& request) const;
  5329. /**
  5330. * <p>The HEAD action retrieves metadata from an object without returning the
  5331. * object itself. This action is useful if you're only interested in an object's
  5332. * metadata. To use HEAD, you must have READ access to the object.</p> <p>A
  5333. * <code>HEAD</code> request has the same options as a <code>GET</code> action on
  5334. * an object. The response is identical to the <code>GET</code> response except
  5335. * that there is no response body. Because of this, if the <code>HEAD</code>
  5336. * request generates an error, it returns a generic <code>404 Not Found</code> or
  5337. * <code>403 Forbidden</code> code. It is not possible to retrieve the exact
  5338. * exception beyond these error codes.</p> <p>If you encrypt an object by using
  5339. * server-side encryption with customer-provided encryption keys (SSE-C) when you
  5340. * store the object in Amazon S3, then when you retrieve the metadata from the
  5341. * object, you must use the following headers:</p> <ul> <li>
  5342. * <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
  5343. * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
  5344. * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
  5345. * information about SSE-C, see <a
  5346. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
  5347. * Encryption (Using Customer-Provided Encryption Keys)</a>.</p> <ul> <li>
  5348. * <p>Encryption request headers, like <code>x-amz-server-side-encryption</code>,
  5349. * should not be sent for GET requests if your object uses server-side encryption
  5350. * with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon
  5351. * S3–managed encryption keys (SSE-S3). If your object does use these types of
  5352. * keys, you’ll get an HTTP 400 BadRequest error.</p> </li> <li> <p> The last
  5353. * modified property in this case is the creation date of the object.</p> </li>
  5354. * </ul> <p>Request headers are limited to 8 KB in size. For more
  5355. * information, see <a
  5356. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html">Common
  5357. * Request Headers</a>.</p> <p>Consider the following when using request
  5358. * headers:</p> <ul> <li> <p> Consideration 1 – If both of the
  5359. * <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present
  5360. * in the request as follows:</p> <ul> <li> <p> <code>If-Match</code> condition
  5361. * evaluates to <code>true</code>, and;</p> </li> <li> <p>
  5362. * <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>;</p>
  5363. * </li> </ul> <p>Then Amazon S3 returns <code>200 OK</code> and the data
  5364. * requested.</p> </li> <li> <p> Consideration 2 – If both of the
  5365. * <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are
  5366. * present in the request as follows:</p> <ul> <li> <p> <code>If-None-Match</code>
  5367. * condition evaluates to <code>false</code>, and;</p> </li> <li> <p>
  5368. * <code>If-Modified-Since</code> condition evaluates to <code>true</code>;</p>
  5369. * </li> </ul> <p>Then Amazon S3 returns the <code>304 Not Modified</code> response
  5370. * code.</p> </li> </ul> <p>For more information about conditional requests, see <a
  5371. * href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p> <p>
  5372. * <b>Permissions</b> </p> <p>You need the <code>s3:GetObject</code> permission for
  5373. * this operation. For more information, see <a
  5374. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  5375. * Permissions in a Policy</a>. If the object you request does not exist, the error
  5376. * Amazon S3 returns depends on whether you also have the s3:ListBucket
  5377. * permission.</p> <ul> <li> <p>If you have the <code>s3:ListBucket</code>
  5378. * permission on the bucket, Amazon S3 returns an HTTP status code 404 ("no such
  5379. * key") error.</p> </li> <li> <p>If you don’t have the <code>s3:ListBucket</code>
  5380. * permission, Amazon S3 returns an HTTP status code 403 ("access denied")
  5381. * error.</p> </li> </ul> <p>The following action is related to
  5382. * <code>HeadObject</code>:</p> <ul> <li> <p> <a
  5383. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  5384. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5385. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObject">AWS API
  5386. * Reference</a></p>
  5387. *
  5388. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  5389. */
  5390. virtual void HeadObjectAsync(const Model::HeadObjectRequest& request, const HeadObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  5391. /**
  5392. * <p>Lists the analytics configurations for the bucket. You can have up to 1,000
  5393. * analytics configurations per bucket.</p> <p>This action supports list pagination
  5394. * and does not return more than 100 configurations at a time. You should always
  5395. * check the <code>IsTruncated</code> element in the response. If there are no more
  5396. * configurations to list, <code>IsTruncated</code> is set to false. If there are
  5397. * more configurations to list, <code>IsTruncated</code> is set to true, and there
  5398. * will be a value in <code>NextContinuationToken</code>. You use the
  5399. * <code>NextContinuationToken</code> value to continue the pagination of the list
  5400. * by passing the value in continuation-token in the request to <code>GET</code>
  5401. * the next page.</p> <p>To use this operation, you must have permissions to
  5402. * perform the <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner
  5403. * has this permission by default. The bucket owner can grant this permission to
  5404. * others. For more information about permissions, see <a
  5405. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  5406. * Related to Bucket Subresource Operations</a> and <a
  5407. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  5408. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  5409. * Amazon S3 analytics feature, see <a
  5410. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
  5411. * S3 Analytics – Storage Class Analysis</a>. </p> <p>The following operations are
  5412. * related to <code>ListBucketAnalyticsConfigurations</code>:</p> <ul> <li> <p> <a
  5413. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
  5414. * </p> </li> <li> <p> <a
  5415. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
  5416. * </p> </li> <li> <p> <a
  5417. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
  5418. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5419. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketAnalyticsConfigurations">AWS
  5420. * API Reference</a></p>
  5421. */
  5422. virtual Model::ListBucketAnalyticsConfigurationsOutcome ListBucketAnalyticsConfigurations(const Model::ListBucketAnalyticsConfigurationsRequest& request) const;
  5423. /**
  5424. * <p>Lists the analytics configurations for the bucket. You can have up to 1,000
  5425. * analytics configurations per bucket.</p> <p>This action supports list pagination
  5426. * and does not return more than 100 configurations at a time. You should always
  5427. * check the <code>IsTruncated</code> element in the response. If there are no more
  5428. * configurations to list, <code>IsTruncated</code> is set to false. If there are
  5429. * more configurations to list, <code>IsTruncated</code> is set to true, and there
  5430. * will be a value in <code>NextContinuationToken</code>. You use the
  5431. * <code>NextContinuationToken</code> value to continue the pagination of the list
  5432. * by passing the value in continuation-token in the request to <code>GET</code>
  5433. * the next page.</p> <p>To use this operation, you must have permissions to
  5434. * perform the <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner
  5435. * has this permission by default. The bucket owner can grant this permission to
  5436. * others. For more information about permissions, see <a
  5437. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  5438. * Related to Bucket Subresource Operations</a> and <a
  5439. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  5440. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  5441. * Amazon S3 analytics feature, see <a
  5442. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
  5443. * S3 Analytics – Storage Class Analysis</a>. </p> <p>The following operations are
  5444. * related to <code>ListBucketAnalyticsConfigurations</code>:</p> <ul> <li> <p> <a
  5445. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
  5446. * </p> </li> <li> <p> <a
  5447. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
  5448. * </p> </li> <li> <p> <a
  5449. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
  5450. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5451. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketAnalyticsConfigurations">AWS
  5452. * API Reference</a></p>
  5453. *
  5454. * returns a future to the operation so that it can be executed in parallel to other requests.
  5455. */
  5456. virtual Model::ListBucketAnalyticsConfigurationsOutcomeCallable ListBucketAnalyticsConfigurationsCallable(const Model::ListBucketAnalyticsConfigurationsRequest& request) const;
  5457. /**
  5458. * <p>Lists the analytics configurations for the bucket. You can have up to 1,000
  5459. * analytics configurations per bucket.</p> <p>This action supports list pagination
  5460. * and does not return more than 100 configurations at a time. You should always
  5461. * check the <code>IsTruncated</code> element in the response. If there are no more
  5462. * configurations to list, <code>IsTruncated</code> is set to false. If there are
  5463. * more configurations to list, <code>IsTruncated</code> is set to true, and there
  5464. * will be a value in <code>NextContinuationToken</code>. You use the
  5465. * <code>NextContinuationToken</code> value to continue the pagination of the list
  5466. * by passing the value in continuation-token in the request to <code>GET</code>
  5467. * the next page.</p> <p>To use this operation, you must have permissions to
  5468. * perform the <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner
  5469. * has this permission by default. The bucket owner can grant this permission to
  5470. * others. For more information about permissions, see <a
  5471. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  5472. * Related to Bucket Subresource Operations</a> and <a
  5473. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  5474. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  5475. * Amazon S3 analytics feature, see <a
  5476. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
  5477. * S3 Analytics – Storage Class Analysis</a>. </p> <p>The following operations are
  5478. * related to <code>ListBucketAnalyticsConfigurations</code>:</p> <ul> <li> <p> <a
  5479. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
  5480. * </p> </li> <li> <p> <a
  5481. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
  5482. * </p> </li> <li> <p> <a
  5483. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
  5484. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5485. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketAnalyticsConfigurations">AWS
  5486. * API Reference</a></p>
  5487. *
  5488. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  5489. */
  5490. virtual void ListBucketAnalyticsConfigurationsAsync(const Model::ListBucketAnalyticsConfigurationsRequest& request, const ListBucketAnalyticsConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  5491. /**
  5492. * <p>Lists the S3 Intelligent-Tiering configuration from the specified bucket.</p>
  5493. * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage
  5494. * costs by automatically moving data to the most cost-effective storage access
  5495. * tier, without additional operational overhead. S3 Intelligent-Tiering delivers
  5496. * automatic cost savings by moving data between access tiers, when access patterns
  5497. * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
  5498. * larger than 128 KB that you plan to store for at least 30 days. If the size of
  5499. * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
  5500. * objects can be stored, but they are always charged at the frequent access tier
  5501. * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
  5502. * object before the end of the 30-day minimum storage duration period, you are
  5503. * charged for 30 days. For more information, see <a
  5504. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
  5505. * class for automatically optimizing frequently and infrequently accessed
  5506. * objects</a>.</p> <p>Operations related to
  5507. * <code>ListBucketIntelligentTieringConfigurations</code> include: </p> <ul> <li>
  5508. * <p> <a
  5509. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
  5510. * </p> </li> <li> <p> <a
  5511. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
  5512. * </p> </li> <li> <p> <a
  5513. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
  5514. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5515. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurations">AWS
  5516. * API Reference</a></p>
  5517. */
  5518. virtual Model::ListBucketIntelligentTieringConfigurationsOutcome ListBucketIntelligentTieringConfigurations(const Model::ListBucketIntelligentTieringConfigurationsRequest& request) const;
  5519. /**
  5520. * <p>Lists the S3 Intelligent-Tiering configuration from the specified bucket.</p>
  5521. * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage
  5522. * costs by automatically moving data to the most cost-effective storage access
  5523. * tier, without additional operational overhead. S3 Intelligent-Tiering delivers
  5524. * automatic cost savings by moving data between access tiers, when access patterns
  5525. * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
  5526. * larger than 128 KB that you plan to store for at least 30 days. If the size of
  5527. * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
  5528. * objects can be stored, but they are always charged at the frequent access tier
  5529. * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
  5530. * object before the end of the 30-day minimum storage duration period, you are
  5531. * charged for 30 days. For more information, see <a
  5532. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
  5533. * class for automatically optimizing frequently and infrequently accessed
  5534. * objects</a>.</p> <p>Operations related to
  5535. * <code>ListBucketIntelligentTieringConfigurations</code> include: </p> <ul> <li>
  5536. * <p> <a
  5537. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
  5538. * </p> </li> <li> <p> <a
  5539. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
  5540. * </p> </li> <li> <p> <a
  5541. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
  5542. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5543. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurations">AWS
  5544. * API Reference</a></p>
  5545. *
  5546. * returns a future to the operation so that it can be executed in parallel to other requests.
  5547. */
  5548. virtual Model::ListBucketIntelligentTieringConfigurationsOutcomeCallable ListBucketIntelligentTieringConfigurationsCallable(const Model::ListBucketIntelligentTieringConfigurationsRequest& request) const;
  5549. /**
  5550. * <p>Lists the S3 Intelligent-Tiering configuration from the specified bucket.</p>
  5551. * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage
  5552. * costs by automatically moving data to the most cost-effective storage access
  5553. * tier, without additional operational overhead. S3 Intelligent-Tiering delivers
  5554. * automatic cost savings by moving data between access tiers, when access patterns
  5555. * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
  5556. * larger than 128 KB that you plan to store for at least 30 days. If the size of
  5557. * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
  5558. * objects can be stored, but they are always charged at the frequent access tier
  5559. * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
  5560. * object before the end of the 30-day minimum storage duration period, you are
  5561. * charged for 30 days. For more information, see <a
  5562. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
  5563. * class for automatically optimizing frequently and infrequently accessed
  5564. * objects</a>.</p> <p>Operations related to
  5565. * <code>ListBucketIntelligentTieringConfigurations</code> include: </p> <ul> <li>
  5566. * <p> <a
  5567. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
  5568. * </p> </li> <li> <p> <a
  5569. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
  5570. * </p> </li> <li> <p> <a
  5571. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
  5572. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5573. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurations">AWS
  5574. * API Reference</a></p>
  5575. *
  5576. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  5577. */
  5578. virtual void ListBucketIntelligentTieringConfigurationsAsync(const Model::ListBucketIntelligentTieringConfigurationsRequest& request, const ListBucketIntelligentTieringConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  5579. /**
  5580. * <p>Returns a list of inventory configurations for the bucket. You can have up to
  5581. * 1,000 analytics configurations per bucket.</p> <p>This action supports list
  5582. * pagination and does not return more than 100 configurations at a time. Always
  5583. * check the <code>IsTruncated</code> element in the response. If there are no more
  5584. * configurations to list, <code>IsTruncated</code> is set to false. If there are
  5585. * more configurations to list, <code>IsTruncated</code> is set to true, and there
  5586. * is a value in <code>NextContinuationToken</code>. You use the
  5587. * <code>NextContinuationToken</code> value to continue the pagination of the list
  5588. * by passing the value in continuation-token in the request to <code>GET</code>
  5589. * the next page.</p> <p> To use this operation, you must have permissions to
  5590. * perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner
  5591. * has this permission by default. The bucket owner can grant this permission to
  5592. * others. For more information about permissions, see <a
  5593. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  5594. * Related to Bucket Subresource Operations</a> and <a
  5595. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  5596. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  5597. * the Amazon S3 inventory feature, see <a
  5598. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
  5599. * S3 Inventory</a> </p> <p>The following operations are related to
  5600. * <code>ListBucketInventoryConfigurations</code>:</p> <ul> <li> <p> <a
  5601. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
  5602. * </p> </li> <li> <p> <a
  5603. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
  5604. * </p> </li> <li> <p> <a
  5605. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
  5606. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5607. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketInventoryConfigurations">AWS
  5608. * API Reference</a></p>
  5609. */
  5610. virtual Model::ListBucketInventoryConfigurationsOutcome ListBucketInventoryConfigurations(const Model::ListBucketInventoryConfigurationsRequest& request) const;
  5611. /**
  5612. * <p>Returns a list of inventory configurations for the bucket. You can have up to
  5613. * 1,000 analytics configurations per bucket.</p> <p>This action supports list
  5614. * pagination and does not return more than 100 configurations at a time. Always
  5615. * check the <code>IsTruncated</code> element in the response. If there are no more
  5616. * configurations to list, <code>IsTruncated</code> is set to false. If there are
  5617. * more configurations to list, <code>IsTruncated</code> is set to true, and there
  5618. * is a value in <code>NextContinuationToken</code>. You use the
  5619. * <code>NextContinuationToken</code> value to continue the pagination of the list
  5620. * by passing the value in continuation-token in the request to <code>GET</code>
  5621. * the next page.</p> <p> To use this operation, you must have permissions to
  5622. * perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner
  5623. * has this permission by default. The bucket owner can grant this permission to
  5624. * others. For more information about permissions, see <a
  5625. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  5626. * Related to Bucket Subresource Operations</a> and <a
  5627. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  5628. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  5629. * the Amazon S3 inventory feature, see <a
  5630. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
  5631. * S3 Inventory</a> </p> <p>The following operations are related to
  5632. * <code>ListBucketInventoryConfigurations</code>:</p> <ul> <li> <p> <a
  5633. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
  5634. * </p> </li> <li> <p> <a
  5635. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
  5636. * </p> </li> <li> <p> <a
  5637. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
  5638. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5639. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketInventoryConfigurations">AWS
  5640. * API Reference</a></p>
  5641. *
  5642. * returns a future to the operation so that it can be executed in parallel to other requests.
  5643. */
  5644. virtual Model::ListBucketInventoryConfigurationsOutcomeCallable ListBucketInventoryConfigurationsCallable(const Model::ListBucketInventoryConfigurationsRequest& request) const;
  5645. /**
  5646. * <p>Returns a list of inventory configurations for the bucket. You can have up to
  5647. * 1,000 analytics configurations per bucket.</p> <p>This action supports list
  5648. * pagination and does not return more than 100 configurations at a time. Always
  5649. * check the <code>IsTruncated</code> element in the response. If there are no more
  5650. * configurations to list, <code>IsTruncated</code> is set to false. If there are
  5651. * more configurations to list, <code>IsTruncated</code> is set to true, and there
  5652. * is a value in <code>NextContinuationToken</code>. You use the
  5653. * <code>NextContinuationToken</code> value to continue the pagination of the list
  5654. * by passing the value in continuation-token in the request to <code>GET</code>
  5655. * the next page.</p> <p> To use this operation, you must have permissions to
  5656. * perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner
  5657. * has this permission by default. The bucket owner can grant this permission to
  5658. * others. For more information about permissions, see <a
  5659. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  5660. * Related to Bucket Subresource Operations</a> and <a
  5661. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  5662. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  5663. * the Amazon S3 inventory feature, see <a
  5664. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
  5665. * S3 Inventory</a> </p> <p>The following operations are related to
  5666. * <code>ListBucketInventoryConfigurations</code>:</p> <ul> <li> <p> <a
  5667. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
  5668. * </p> </li> <li> <p> <a
  5669. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
  5670. * </p> </li> <li> <p> <a
  5671. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
  5672. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5673. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketInventoryConfigurations">AWS
  5674. * API Reference</a></p>
  5675. *
  5676. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  5677. */
  5678. virtual void ListBucketInventoryConfigurationsAsync(const Model::ListBucketInventoryConfigurationsRequest& request, const ListBucketInventoryConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  5679. /**
  5680. * <p>Lists the metrics configurations for the bucket. The metrics configurations
  5681. * are only for the request metrics of the bucket and do not provide information on
  5682. * daily storage metrics. You can have up to 1,000 configurations per bucket.</p>
  5683. * <p>This action supports list pagination and does not return more than 100
  5684. * configurations at a time. Always check the <code>IsTruncated</code> element in
  5685. * the response. If there are no more configurations to list,
  5686. * <code>IsTruncated</code> is set to false. If there are more configurations to
  5687. * list, <code>IsTruncated</code> is set to true, and there is a value in
  5688. * <code>NextContinuationToken</code>. You use the
  5689. * <code>NextContinuationToken</code> value to continue the pagination of the list
  5690. * by passing the value in <code>continuation-token</code> in the request to
  5691. * <code>GET</code> the next page.</p> <p>To use this operation, you must have
  5692. * permissions to perform the <code>s3:GetMetricsConfiguration</code> action. The
  5693. * bucket owner has this permission by default. The bucket owner can grant this
  5694. * permission to others. For more information about permissions, see <a
  5695. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  5696. * Related to Bucket Subresource Operations</a> and <a
  5697. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  5698. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For more information
  5699. * about metrics configurations and CloudWatch request metrics, see <a
  5700. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  5701. * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
  5702. * to <code>ListBucketMetricsConfigurations</code>:</p> <ul> <li> <p> <a
  5703. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
  5704. * </p> </li> <li> <p> <a
  5705. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>
  5706. * </p> </li> <li> <p> <a
  5707. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
  5708. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5709. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketMetricsConfigurations">AWS
  5710. * API Reference</a></p>
  5711. */
  5712. virtual Model::ListBucketMetricsConfigurationsOutcome ListBucketMetricsConfigurations(const Model::ListBucketMetricsConfigurationsRequest& request) const;
  5713. /**
  5714. * <p>Lists the metrics configurations for the bucket. The metrics configurations
  5715. * are only for the request metrics of the bucket and do not provide information on
  5716. * daily storage metrics. You can have up to 1,000 configurations per bucket.</p>
  5717. * <p>This action supports list pagination and does not return more than 100
  5718. * configurations at a time. Always check the <code>IsTruncated</code> element in
  5719. * the response. If there are no more configurations to list,
  5720. * <code>IsTruncated</code> is set to false. If there are more configurations to
  5721. * list, <code>IsTruncated</code> is set to true, and there is a value in
  5722. * <code>NextContinuationToken</code>. You use the
  5723. * <code>NextContinuationToken</code> value to continue the pagination of the list
  5724. * by passing the value in <code>continuation-token</code> in the request to
  5725. * <code>GET</code> the next page.</p> <p>To use this operation, you must have
  5726. * permissions to perform the <code>s3:GetMetricsConfiguration</code> action. The
  5727. * bucket owner has this permission by default. The bucket owner can grant this
  5728. * permission to others. For more information about permissions, see <a
  5729. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  5730. * Related to Bucket Subresource Operations</a> and <a
  5731. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  5732. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For more information
  5733. * about metrics configurations and CloudWatch request metrics, see <a
  5734. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  5735. * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
  5736. * to <code>ListBucketMetricsConfigurations</code>:</p> <ul> <li> <p> <a
  5737. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
  5738. * </p> </li> <li> <p> <a
  5739. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>
  5740. * </p> </li> <li> <p> <a
  5741. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
  5742. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5743. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketMetricsConfigurations">AWS
  5744. * API Reference</a></p>
  5745. *
  5746. * returns a future to the operation so that it can be executed in parallel to other requests.
  5747. */
  5748. virtual Model::ListBucketMetricsConfigurationsOutcomeCallable ListBucketMetricsConfigurationsCallable(const Model::ListBucketMetricsConfigurationsRequest& request) const;
  5749. /**
  5750. * <p>Lists the metrics configurations for the bucket. The metrics configurations
  5751. * are only for the request metrics of the bucket and do not provide information on
  5752. * daily storage metrics. You can have up to 1,000 configurations per bucket.</p>
  5753. * <p>This action supports list pagination and does not return more than 100
  5754. * configurations at a time. Always check the <code>IsTruncated</code> element in
  5755. * the response. If there are no more configurations to list,
  5756. * <code>IsTruncated</code> is set to false. If there are more configurations to
  5757. * list, <code>IsTruncated</code> is set to true, and there is a value in
  5758. * <code>NextContinuationToken</code>. You use the
  5759. * <code>NextContinuationToken</code> value to continue the pagination of the list
  5760. * by passing the value in <code>continuation-token</code> in the request to
  5761. * <code>GET</code> the next page.</p> <p>To use this operation, you must have
  5762. * permissions to perform the <code>s3:GetMetricsConfiguration</code> action. The
  5763. * bucket owner has this permission by default. The bucket owner can grant this
  5764. * permission to others. For more information about permissions, see <a
  5765. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  5766. * Related to Bucket Subresource Operations</a> and <a
  5767. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  5768. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For more information
  5769. * about metrics configurations and CloudWatch request metrics, see <a
  5770. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  5771. * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
  5772. * to <code>ListBucketMetricsConfigurations</code>:</p> <ul> <li> <p> <a
  5773. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
  5774. * </p> </li> <li> <p> <a
  5775. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>
  5776. * </p> </li> <li> <p> <a
  5777. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
  5778. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5779. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketMetricsConfigurations">AWS
  5780. * API Reference</a></p>
  5781. *
  5782. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  5783. */
  5784. virtual void ListBucketMetricsConfigurationsAsync(const Model::ListBucketMetricsConfigurationsRequest& request, const ListBucketMetricsConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  5785. /**
  5786. * <p>Returns a list of all buckets owned by the authenticated sender of the
  5787. * request.</p><p><h3>See Also:</h3> <a
  5788. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBuckets">AWS API
  5789. * Reference</a></p>
  5790. */
  5791. virtual Model::ListBucketsOutcome ListBuckets() const;
  5792. /**
  5793. * <p>Returns a list of all buckets owned by the authenticated sender of the
  5794. * request.</p><p><h3>See Also:</h3> <a
  5795. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBuckets">AWS API
  5796. * Reference</a></p>
  5797. *
  5798. * returns a future to the operation so that it can be executed in parallel to other requests.
  5799. */
  5800. virtual Model::ListBucketsOutcomeCallable ListBucketsCallable() const;
  5801. /**
  5802. * <p>Returns a list of all buckets owned by the authenticated sender of the
  5803. * request.</p><p><h3>See Also:</h3> <a
  5804. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBuckets">AWS API
  5805. * Reference</a></p>
  5806. *
  5807. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  5808. */
  5809. virtual void ListBucketsAsync(const ListBucketsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  5810. /**
  5811. * <p>This action lists in-progress multipart uploads. An in-progress multipart
  5812. * upload is a multipart upload that has been initiated using the Initiate
  5813. * Multipart Upload request, but has not yet been completed or aborted.</p> <p>This
  5814. * action returns at most 1,000 multipart uploads in the response. 1,000 multipart
  5815. * uploads is the maximum number of uploads a response can include, which is also
  5816. * the default value. You can further limit the number of uploads in a response by
  5817. * specifying the <code>max-uploads</code> parameter in the response. If additional
  5818. * multipart uploads satisfy the list criteria, the response will contain an
  5819. * <code>IsTruncated</code> element with the value true. To list the additional
  5820. * multipart uploads, use the <code>key-marker</code> and
  5821. * <code>upload-id-marker</code> request parameters.</p> <p>In the response, the
  5822. * uploads are sorted by key. If your application has initiated more than one
  5823. * multipart upload using the same object key, then uploads in the response are
  5824. * first sorted by key. Additionally, uploads are sorted in ascending order within
  5825. * each key by the upload initiation time.</p> <p>For more information on multipart
  5826. * uploads, see <a
  5827. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
  5828. * Objects Using Multipart Upload</a>.</p> <p>For information on permissions
  5829. * required to use the multipart upload API, see <a
  5830. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  5831. * Upload and Permissions</a>.</p> <p>The following operations are related to
  5832. * <code>ListMultipartUploads</code>:</p> <ul> <li> <p> <a
  5833. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  5834. * </p> </li> <li> <p> <a
  5835. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  5836. * </p> </li> <li> <p> <a
  5837. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  5838. * </p> </li> <li> <p> <a
  5839. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  5840. * </p> </li> <li> <p> <a
  5841. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  5842. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5843. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploads">AWS
  5844. * API Reference</a></p>
  5845. */
  5846. virtual Model::ListMultipartUploadsOutcome ListMultipartUploads(const Model::ListMultipartUploadsRequest& request) const;
  5847. /**
  5848. * <p>This action lists in-progress multipart uploads. An in-progress multipart
  5849. * upload is a multipart upload that has been initiated using the Initiate
  5850. * Multipart Upload request, but has not yet been completed or aborted.</p> <p>This
  5851. * action returns at most 1,000 multipart uploads in the response. 1,000 multipart
  5852. * uploads is the maximum number of uploads a response can include, which is also
  5853. * the default value. You can further limit the number of uploads in a response by
  5854. * specifying the <code>max-uploads</code> parameter in the response. If additional
  5855. * multipart uploads satisfy the list criteria, the response will contain an
  5856. * <code>IsTruncated</code> element with the value true. To list the additional
  5857. * multipart uploads, use the <code>key-marker</code> and
  5858. * <code>upload-id-marker</code> request parameters.</p> <p>In the response, the
  5859. * uploads are sorted by key. If your application has initiated more than one
  5860. * multipart upload using the same object key, then uploads in the response are
  5861. * first sorted by key. Additionally, uploads are sorted in ascending order within
  5862. * each key by the upload initiation time.</p> <p>For more information on multipart
  5863. * uploads, see <a
  5864. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
  5865. * Objects Using Multipart Upload</a>.</p> <p>For information on permissions
  5866. * required to use the multipart upload API, see <a
  5867. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  5868. * Upload and Permissions</a>.</p> <p>The following operations are related to
  5869. * <code>ListMultipartUploads</code>:</p> <ul> <li> <p> <a
  5870. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  5871. * </p> </li> <li> <p> <a
  5872. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  5873. * </p> </li> <li> <p> <a
  5874. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  5875. * </p> </li> <li> <p> <a
  5876. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  5877. * </p> </li> <li> <p> <a
  5878. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  5879. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5880. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploads">AWS
  5881. * API Reference</a></p>
  5882. *
  5883. * returns a future to the operation so that it can be executed in parallel to other requests.
  5884. */
  5885. virtual Model::ListMultipartUploadsOutcomeCallable ListMultipartUploadsCallable(const Model::ListMultipartUploadsRequest& request) const;
  5886. /**
  5887. * <p>This action lists in-progress multipart uploads. An in-progress multipart
  5888. * upload is a multipart upload that has been initiated using the Initiate
  5889. * Multipart Upload request, but has not yet been completed or aborted.</p> <p>This
  5890. * action returns at most 1,000 multipart uploads in the response. 1,000 multipart
  5891. * uploads is the maximum number of uploads a response can include, which is also
  5892. * the default value. You can further limit the number of uploads in a response by
  5893. * specifying the <code>max-uploads</code> parameter in the response. If additional
  5894. * multipart uploads satisfy the list criteria, the response will contain an
  5895. * <code>IsTruncated</code> element with the value true. To list the additional
  5896. * multipart uploads, use the <code>key-marker</code> and
  5897. * <code>upload-id-marker</code> request parameters.</p> <p>In the response, the
  5898. * uploads are sorted by key. If your application has initiated more than one
  5899. * multipart upload using the same object key, then uploads in the response are
  5900. * first sorted by key. Additionally, uploads are sorted in ascending order within
  5901. * each key by the upload initiation time.</p> <p>For more information on multipart
  5902. * uploads, see <a
  5903. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
  5904. * Objects Using Multipart Upload</a>.</p> <p>For information on permissions
  5905. * required to use the multipart upload API, see <a
  5906. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  5907. * Upload and Permissions</a>.</p> <p>The following operations are related to
  5908. * <code>ListMultipartUploads</code>:</p> <ul> <li> <p> <a
  5909. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  5910. * </p> </li> <li> <p> <a
  5911. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  5912. * </p> </li> <li> <p> <a
  5913. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  5914. * </p> </li> <li> <p> <a
  5915. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  5916. * </p> </li> <li> <p> <a
  5917. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  5918. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5919. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploads">AWS
  5920. * API Reference</a></p>
  5921. *
  5922. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  5923. */
  5924. virtual void ListMultipartUploadsAsync(const Model::ListMultipartUploadsRequest& request, const ListMultipartUploadsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  5925. /**
  5926. * <p>Returns metadata about all versions of the objects in a bucket. You can also
  5927. * use request parameters as selection criteria to return metadata about a subset
  5928. * of all the object versions.</p> <p> To use this operation, you must
  5929. * have permissions to perform the <code>s3:ListBucketVersions</code> action. Be
  5930. * aware of the name difference. </p> <p> A 200 OK response can
  5931. * contain valid or invalid XML. Make sure to design your application to parse the
  5932. * contents of the response and handle it appropriately.</p> <p>To use this
  5933. * operation, you must have READ access to the bucket.</p> <p>This action is not
  5934. * supported by Amazon S3 on Outposts.</p> <p>The following operations are related
  5935. * to <code>ListObjectVersions</code>:</p> <ul> <li> <p> <a
  5936. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>
  5937. * </p> </li> <li> <p> <a
  5938. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  5939. * </p> </li> <li> <p> <a
  5940. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  5941. * </p> </li> <li> <p> <a
  5942. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  5943. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5944. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectVersions">AWS
  5945. * API Reference</a></p>
  5946. */
  5947. virtual Model::ListObjectVersionsOutcome ListObjectVersions(const Model::ListObjectVersionsRequest& request) const;
  5948. /**
  5949. * <p>Returns metadata about all versions of the objects in a bucket. You can also
  5950. * use request parameters as selection criteria to return metadata about a subset
  5951. * of all the object versions.</p> <p> To use this operation, you must
  5952. * have permissions to perform the <code>s3:ListBucketVersions</code> action. Be
  5953. * aware of the name difference. </p> <p> A 200 OK response can
  5954. * contain valid or invalid XML. Make sure to design your application to parse the
  5955. * contents of the response and handle it appropriately.</p> <p>To use this
  5956. * operation, you must have READ access to the bucket.</p> <p>This action is not
  5957. * supported by Amazon S3 on Outposts.</p> <p>The following operations are related
  5958. * to <code>ListObjectVersions</code>:</p> <ul> <li> <p> <a
  5959. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>
  5960. * </p> </li> <li> <p> <a
  5961. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  5962. * </p> </li> <li> <p> <a
  5963. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  5964. * </p> </li> <li> <p> <a
  5965. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  5966. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5967. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectVersions">AWS
  5968. * API Reference</a></p>
  5969. *
  5970. * returns a future to the operation so that it can be executed in parallel to other requests.
  5971. */
  5972. virtual Model::ListObjectVersionsOutcomeCallable ListObjectVersionsCallable(const Model::ListObjectVersionsRequest& request) const;
  5973. /**
  5974. * <p>Returns metadata about all versions of the objects in a bucket. You can also
  5975. * use request parameters as selection criteria to return metadata about a subset
  5976. * of all the object versions.</p> <p> To use this operation, you must
  5977. * have permissions to perform the <code>s3:ListBucketVersions</code> action. Be
  5978. * aware of the name difference. </p> <p> A 200 OK response can
  5979. * contain valid or invalid XML. Make sure to design your application to parse the
  5980. * contents of the response and handle it appropriately.</p> <p>To use this
  5981. * operation, you must have READ access to the bucket.</p> <p>This action is not
  5982. * supported by Amazon S3 on Outposts.</p> <p>The following operations are related
  5983. * to <code>ListObjectVersions</code>:</p> <ul> <li> <p> <a
  5984. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>
  5985. * </p> </li> <li> <p> <a
  5986. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  5987. * </p> </li> <li> <p> <a
  5988. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  5989. * </p> </li> <li> <p> <a
  5990. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  5991. * </p> </li> </ul><p><h3>See Also:</h3> <a
  5992. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectVersions">AWS
  5993. * API Reference</a></p>
  5994. *
  5995. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  5996. */
  5997. virtual void ListObjectVersionsAsync(const Model::ListObjectVersionsRequest& request, const ListObjectVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  5998. /**
  5999. * <p>Returns some or all (up to 1,000) of the objects in a bucket. You can use the
  6000. * request parameters as selection criteria to return a subset of the objects in a
  6001. * bucket. A 200 OK response can contain valid or invalid XML. Be sure to design
  6002. * your application to parse the contents of the response and handle it
  6003. * appropriately.</p> <p>This action has been revised. We recommend
  6004. * that you use the newer version, <a
  6005. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>,
  6006. * when developing applications. For backward compatibility, Amazon S3 continues to
  6007. * support <code>ListObjects</code>.</p> <p>The following operations
  6008. * are related to <code>ListObjects</code>:</p> <ul> <li> <p> <a
  6009. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>
  6010. * </p> </li> <li> <p> <a
  6011. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  6012. * </p> </li> <li> <p> <a
  6013. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  6014. * </p> </li> <li> <p> <a
  6015. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  6016. * </p> </li> <li> <p> <a
  6017. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>
  6018. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6019. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjects">AWS API
  6020. * Reference</a></p>
  6021. */
  6022. virtual Model::ListObjectsOutcome ListObjects(const Model::ListObjectsRequest& request) const;
  6023. /**
  6024. * <p>Returns some or all (up to 1,000) of the objects in a bucket. You can use the
  6025. * request parameters as selection criteria to return a subset of the objects in a
  6026. * bucket. A 200 OK response can contain valid or invalid XML. Be sure to design
  6027. * your application to parse the contents of the response and handle it
  6028. * appropriately.</p> <p>This action has been revised. We recommend
  6029. * that you use the newer version, <a
  6030. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>,
  6031. * when developing applications. For backward compatibility, Amazon S3 continues to
  6032. * support <code>ListObjects</code>.</p> <p>The following operations
  6033. * are related to <code>ListObjects</code>:</p> <ul> <li> <p> <a
  6034. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>
  6035. * </p> </li> <li> <p> <a
  6036. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  6037. * </p> </li> <li> <p> <a
  6038. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  6039. * </p> </li> <li> <p> <a
  6040. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  6041. * </p> </li> <li> <p> <a
  6042. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>
  6043. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6044. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjects">AWS API
  6045. * Reference</a></p>
  6046. *
  6047. * returns a future to the operation so that it can be executed in parallel to other requests.
  6048. */
  6049. virtual Model::ListObjectsOutcomeCallable ListObjectsCallable(const Model::ListObjectsRequest& request) const;
  6050. /**
  6051. * <p>Returns some or all (up to 1,000) of the objects in a bucket. You can use the
  6052. * request parameters as selection criteria to return a subset of the objects in a
  6053. * bucket. A 200 OK response can contain valid or invalid XML. Be sure to design
  6054. * your application to parse the contents of the response and handle it
  6055. * appropriately.</p> <p>This action has been revised. We recommend
  6056. * that you use the newer version, <a
  6057. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>,
  6058. * when developing applications. For backward compatibility, Amazon S3 continues to
  6059. * support <code>ListObjects</code>.</p> <p>The following operations
  6060. * are related to <code>ListObjects</code>:</p> <ul> <li> <p> <a
  6061. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>
  6062. * </p> </li> <li> <p> <a
  6063. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  6064. * </p> </li> <li> <p> <a
  6065. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  6066. * </p> </li> <li> <p> <a
  6067. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  6068. * </p> </li> <li> <p> <a
  6069. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>
  6070. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6071. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjects">AWS API
  6072. * Reference</a></p>
  6073. *
  6074. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  6075. */
  6076. virtual void ListObjectsAsync(const Model::ListObjectsRequest& request, const ListObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  6077. /**
  6078. * <p>Returns some or all (up to 1,000) of the objects in a bucket. You can use the
  6079. * request parameters as selection criteria to return a subset of the objects in a
  6080. * bucket. A <code>200 OK</code> response can contain valid or invalid XML. Make
  6081. * sure to design your application to parse the contents of the response and handle
  6082. * it appropriately. Objects are returned sorted in an ascending order of the
  6083. * respective key names in the list.</p> <p>To use this operation, you must have
  6084. * READ access to the bucket.</p> <p>To use this action in an AWS Identity and
  6085. * Access Management (IAM) policy, you must have permissions to perform the
  6086. * <code>s3:ListBucket</code> action. The bucket owner has this permission by
  6087. * default and can grant this permission to others. For more information about
  6088. * permissions, see <a
  6089. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  6090. * Related to Bucket Subresource Operations</a> and <a
  6091. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  6092. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>This
  6093. * section describes the latest revision of this action. We recommend that you use
  6094. * this revised API for application development. For backward compatibility, Amazon
  6095. * S3 continues to support the prior version of this API, <a
  6096. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>.</p>
  6097. * <p>To get a list of your buckets, see <a
  6098. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>.</p>
  6099. * <p>The following operations are related to <code>ListObjectsV2</code>:</p> <ul>
  6100. * <li> <p> <a
  6101. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  6102. * </p> </li> <li> <p> <a
  6103. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  6104. * </p> </li> <li> <p> <a
  6105. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  6106. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6107. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsV2">AWS
  6108. * API Reference</a></p>
  6109. */
  6110. virtual Model::ListObjectsV2Outcome ListObjectsV2(const Model::ListObjectsV2Request& request) const;
  6111. /**
  6112. * <p>Returns some or all (up to 1,000) of the objects in a bucket. You can use the
  6113. * request parameters as selection criteria to return a subset of the objects in a
  6114. * bucket. A <code>200 OK</code> response can contain valid or invalid XML. Make
  6115. * sure to design your application to parse the contents of the response and handle
  6116. * it appropriately. Objects are returned sorted in an ascending order of the
  6117. * respective key names in the list.</p> <p>To use this operation, you must have
  6118. * READ access to the bucket.</p> <p>To use this action in an AWS Identity and
  6119. * Access Management (IAM) policy, you must have permissions to perform the
  6120. * <code>s3:ListBucket</code> action. The bucket owner has this permission by
  6121. * default and can grant this permission to others. For more information about
  6122. * permissions, see <a
  6123. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  6124. * Related to Bucket Subresource Operations</a> and <a
  6125. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  6126. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>This
  6127. * section describes the latest revision of this action. We recommend that you use
  6128. * this revised API for application development. For backward compatibility, Amazon
  6129. * S3 continues to support the prior version of this API, <a
  6130. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>.</p>
  6131. * <p>To get a list of your buckets, see <a
  6132. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>.</p>
  6133. * <p>The following operations are related to <code>ListObjectsV2</code>:</p> <ul>
  6134. * <li> <p> <a
  6135. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  6136. * </p> </li> <li> <p> <a
  6137. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  6138. * </p> </li> <li> <p> <a
  6139. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  6140. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6141. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsV2">AWS
  6142. * API Reference</a></p>
  6143. *
  6144. * returns a future to the operation so that it can be executed in parallel to other requests.
  6145. */
  6146. virtual Model::ListObjectsV2OutcomeCallable ListObjectsV2Callable(const Model::ListObjectsV2Request& request) const;
  6147. /**
  6148. * <p>Returns some or all (up to 1,000) of the objects in a bucket. You can use the
  6149. * request parameters as selection criteria to return a subset of the objects in a
  6150. * bucket. A <code>200 OK</code> response can contain valid or invalid XML. Make
  6151. * sure to design your application to parse the contents of the response and handle
  6152. * it appropriately. Objects are returned sorted in an ascending order of the
  6153. * respective key names in the list.</p> <p>To use this operation, you must have
  6154. * READ access to the bucket.</p> <p>To use this action in an AWS Identity and
  6155. * Access Management (IAM) policy, you must have permissions to perform the
  6156. * <code>s3:ListBucket</code> action. The bucket owner has this permission by
  6157. * default and can grant this permission to others. For more information about
  6158. * permissions, see <a
  6159. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  6160. * Related to Bucket Subresource Operations</a> and <a
  6161. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  6162. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>This
  6163. * section describes the latest revision of this action. We recommend that you use
  6164. * this revised API for application development. For backward compatibility, Amazon
  6165. * S3 continues to support the prior version of this API, <a
  6166. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>.</p>
  6167. * <p>To get a list of your buckets, see <a
  6168. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>.</p>
  6169. * <p>The following operations are related to <code>ListObjectsV2</code>:</p> <ul>
  6170. * <li> <p> <a
  6171. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  6172. * </p> </li> <li> <p> <a
  6173. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  6174. * </p> </li> <li> <p> <a
  6175. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  6176. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6177. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsV2">AWS
  6178. * API Reference</a></p>
  6179. *
  6180. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  6181. */
  6182. virtual void ListObjectsV2Async(const Model::ListObjectsV2Request& request, const ListObjectsV2ResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  6183. /**
  6184. * <p>Lists the parts that have been uploaded for a specific multipart upload. This
  6185. * operation must include the upload ID, which you obtain by sending the initiate
  6186. * multipart upload request (see <a
  6187. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>).
  6188. * This request returns a maximum of 1,000 uploaded parts. The default number of
  6189. * parts returned is 1,000 parts. You can restrict the number of parts returned by
  6190. * specifying the <code>max-parts</code> request parameter. If your multipart
  6191. * upload consists of more than 1,000 parts, the response returns an
  6192. * <code>IsTruncated</code> field with the value of true, and a
  6193. * <code>NextPartNumberMarker</code> element. In subsequent <code>ListParts</code>
  6194. * requests you can include the part-number-marker query string parameter and set
  6195. * its value to the <code>NextPartNumberMarker</code> field value from the previous
  6196. * response.</p> <p>For more information on multipart uploads, see <a
  6197. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
  6198. * Objects Using Multipart Upload</a>.</p> <p>For information on permissions
  6199. * required to use the multipart upload API, see <a
  6200. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  6201. * Upload and Permissions</a>.</p> <p>The following operations are related to
  6202. * <code>ListParts</code>:</p> <ul> <li> <p> <a
  6203. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  6204. * </p> </li> <li> <p> <a
  6205. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  6206. * </p> </li> <li> <p> <a
  6207. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  6208. * </p> </li> <li> <p> <a
  6209. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  6210. * </p> </li> <li> <p> <a
  6211. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  6212. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6213. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListParts">AWS API
  6214. * Reference</a></p>
  6215. */
  6216. virtual Model::ListPartsOutcome ListParts(const Model::ListPartsRequest& request) const;
  6217. /**
  6218. * <p>Lists the parts that have been uploaded for a specific multipart upload. This
  6219. * operation must include the upload ID, which you obtain by sending the initiate
  6220. * multipart upload request (see <a
  6221. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>).
  6222. * This request returns a maximum of 1,000 uploaded parts. The default number of
  6223. * parts returned is 1,000 parts. You can restrict the number of parts returned by
  6224. * specifying the <code>max-parts</code> request parameter. If your multipart
  6225. * upload consists of more than 1,000 parts, the response returns an
  6226. * <code>IsTruncated</code> field with the value of true, and a
  6227. * <code>NextPartNumberMarker</code> element. In subsequent <code>ListParts</code>
  6228. * requests you can include the part-number-marker query string parameter and set
  6229. * its value to the <code>NextPartNumberMarker</code> field value from the previous
  6230. * response.</p> <p>For more information on multipart uploads, see <a
  6231. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
  6232. * Objects Using Multipart Upload</a>.</p> <p>For information on permissions
  6233. * required to use the multipart upload API, see <a
  6234. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  6235. * Upload and Permissions</a>.</p> <p>The following operations are related to
  6236. * <code>ListParts</code>:</p> <ul> <li> <p> <a
  6237. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  6238. * </p> </li> <li> <p> <a
  6239. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  6240. * </p> </li> <li> <p> <a
  6241. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  6242. * </p> </li> <li> <p> <a
  6243. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  6244. * </p> </li> <li> <p> <a
  6245. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  6246. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6247. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListParts">AWS API
  6248. * Reference</a></p>
  6249. *
  6250. * returns a future to the operation so that it can be executed in parallel to other requests.
  6251. */
  6252. virtual Model::ListPartsOutcomeCallable ListPartsCallable(const Model::ListPartsRequest& request) const;
  6253. /**
  6254. * <p>Lists the parts that have been uploaded for a specific multipart upload. This
  6255. * operation must include the upload ID, which you obtain by sending the initiate
  6256. * multipart upload request (see <a
  6257. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>).
  6258. * This request returns a maximum of 1,000 uploaded parts. The default number of
  6259. * parts returned is 1,000 parts. You can restrict the number of parts returned by
  6260. * specifying the <code>max-parts</code> request parameter. If your multipart
  6261. * upload consists of more than 1,000 parts, the response returns an
  6262. * <code>IsTruncated</code> field with the value of true, and a
  6263. * <code>NextPartNumberMarker</code> element. In subsequent <code>ListParts</code>
  6264. * requests you can include the part-number-marker query string parameter and set
  6265. * its value to the <code>NextPartNumberMarker</code> field value from the previous
  6266. * response.</p> <p>For more information on multipart uploads, see <a
  6267. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
  6268. * Objects Using Multipart Upload</a>.</p> <p>For information on permissions
  6269. * required to use the multipart upload API, see <a
  6270. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  6271. * Upload and Permissions</a>.</p> <p>The following operations are related to
  6272. * <code>ListParts</code>:</p> <ul> <li> <p> <a
  6273. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  6274. * </p> </li> <li> <p> <a
  6275. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  6276. * </p> </li> <li> <p> <a
  6277. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  6278. * </p> </li> <li> <p> <a
  6279. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  6280. * </p> </li> <li> <p> <a
  6281. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  6282. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6283. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListParts">AWS API
  6284. * Reference</a></p>
  6285. *
  6286. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  6287. */
  6288. virtual void ListPartsAsync(const Model::ListPartsRequest& request, const ListPartsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  6289. /**
  6290. * <p>Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer
  6291. * Acceleration is a bucket-level feature that enables you to perform faster data
  6292. * transfers to Amazon S3.</p> <p> To use this operation, you must have permission
  6293. * to perform the s3:PutAccelerateConfiguration action. The bucket owner has this
  6294. * permission by default. The bucket owner can grant this permission to others. For
  6295. * more information about permissions, see <a
  6296. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  6297. * Related to Bucket Subresource Operations</a> and <a
  6298. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  6299. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> The Transfer
  6300. * Acceleration state of a bucket can be set to one of the following two
  6301. * values:</p> <ul> <li> <p> Enabled – Enables accelerated data transfers to the
  6302. * bucket.</p> </li> <li> <p> Suspended – Disables accelerated data transfers to
  6303. * the bucket.</p> </li> </ul> <p>The <a
  6304. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a>
  6305. * action returns the transfer acceleration state of a bucket.</p> <p>After setting
  6306. * the Transfer Acceleration state of a bucket to Enabled, it might take up to
  6307. * thirty minutes before the data transfer rates to the bucket increase.</p> <p>
  6308. * The name of the bucket used for Transfer Acceleration must be DNS-compliant and
  6309. * must not contain periods (".").</p> <p> For more information about transfer
  6310. * acceleration, see <a
  6311. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
  6312. * Acceleration</a>.</p> <p>The following operations are related to
  6313. * <code>PutBucketAccelerateConfiguration</code>:</p> <ul> <li> <p> <a
  6314. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a>
  6315. * </p> </li> <li> <p> <a
  6316. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  6317. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6318. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAccelerateConfiguration">AWS
  6319. * API Reference</a></p>
  6320. */
  6321. virtual Model::PutBucketAccelerateConfigurationOutcome PutBucketAccelerateConfiguration(const Model::PutBucketAccelerateConfigurationRequest& request) const;
  6322. /**
  6323. * <p>Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer
  6324. * Acceleration is a bucket-level feature that enables you to perform faster data
  6325. * transfers to Amazon S3.</p> <p> To use this operation, you must have permission
  6326. * to perform the s3:PutAccelerateConfiguration action. The bucket owner has this
  6327. * permission by default. The bucket owner can grant this permission to others. For
  6328. * more information about permissions, see <a
  6329. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  6330. * Related to Bucket Subresource Operations</a> and <a
  6331. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  6332. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> The Transfer
  6333. * Acceleration state of a bucket can be set to one of the following two
  6334. * values:</p> <ul> <li> <p> Enabled – Enables accelerated data transfers to the
  6335. * bucket.</p> </li> <li> <p> Suspended – Disables accelerated data transfers to
  6336. * the bucket.</p> </li> </ul> <p>The <a
  6337. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a>
  6338. * action returns the transfer acceleration state of a bucket.</p> <p>After setting
  6339. * the Transfer Acceleration state of a bucket to Enabled, it might take up to
  6340. * thirty minutes before the data transfer rates to the bucket increase.</p> <p>
  6341. * The name of the bucket used for Transfer Acceleration must be DNS-compliant and
  6342. * must not contain periods (".").</p> <p> For more information about transfer
  6343. * acceleration, see <a
  6344. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
  6345. * Acceleration</a>.</p> <p>The following operations are related to
  6346. * <code>PutBucketAccelerateConfiguration</code>:</p> <ul> <li> <p> <a
  6347. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a>
  6348. * </p> </li> <li> <p> <a
  6349. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  6350. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6351. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAccelerateConfiguration">AWS
  6352. * API Reference</a></p>
  6353. *
  6354. * returns a future to the operation so that it can be executed in parallel to other requests.
  6355. */
  6356. virtual Model::PutBucketAccelerateConfigurationOutcomeCallable PutBucketAccelerateConfigurationCallable(const Model::PutBucketAccelerateConfigurationRequest& request) const;
  6357. /**
  6358. * <p>Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer
  6359. * Acceleration is a bucket-level feature that enables you to perform faster data
  6360. * transfers to Amazon S3.</p> <p> To use this operation, you must have permission
  6361. * to perform the s3:PutAccelerateConfiguration action. The bucket owner has this
  6362. * permission by default. The bucket owner can grant this permission to others. For
  6363. * more information about permissions, see <a
  6364. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  6365. * Related to Bucket Subresource Operations</a> and <a
  6366. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  6367. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> The Transfer
  6368. * Acceleration state of a bucket can be set to one of the following two
  6369. * values:</p> <ul> <li> <p> Enabled – Enables accelerated data transfers to the
  6370. * bucket.</p> </li> <li> <p> Suspended – Disables accelerated data transfers to
  6371. * the bucket.</p> </li> </ul> <p>The <a
  6372. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a>
  6373. * action returns the transfer acceleration state of a bucket.</p> <p>After setting
  6374. * the Transfer Acceleration state of a bucket to Enabled, it might take up to
  6375. * thirty minutes before the data transfer rates to the bucket increase.</p> <p>
  6376. * The name of the bucket used for Transfer Acceleration must be DNS-compliant and
  6377. * must not contain periods (".").</p> <p> For more information about transfer
  6378. * acceleration, see <a
  6379. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
  6380. * Acceleration</a>.</p> <p>The following operations are related to
  6381. * <code>PutBucketAccelerateConfiguration</code>:</p> <ul> <li> <p> <a
  6382. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a>
  6383. * </p> </li> <li> <p> <a
  6384. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  6385. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6386. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAccelerateConfiguration">AWS
  6387. * API Reference</a></p>
  6388. *
  6389. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  6390. */
  6391. virtual void PutBucketAccelerateConfigurationAsync(const Model::PutBucketAccelerateConfigurationRequest& request, const PutBucketAccelerateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  6392. /**
  6393. * <p>Sets the permissions on an existing bucket using access control lists (ACL).
  6394. * For more information, see <a
  6395. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
  6396. * ACLs</a>. To set the ACL of a bucket, you must have <code>WRITE_ACP</code>
  6397. * permission.</p> <p>You can use one of the following two ways to set a bucket's
  6398. * permissions:</p> <ul> <li> <p>Specify the ACL in the request body</p> </li> <li>
  6399. * <p>Specify permissions using request headers</p> </li> </ul> <p>You
  6400. * cannot specify access permission using both the body and the request
  6401. * headers.</p> <p>Depending on your application needs, you may choose to
  6402. * set the ACL on a bucket using either the request body or the headers. For
  6403. * example, if you have an existing application that updates a bucket ACL using the
  6404. * request body, then you can continue to use that approach.</p> <p> <b>Access
  6405. * Permissions</b> </p> <p>You can set access permissions using one of the
  6406. * following methods:</p> <ul> <li> <p>Specify a canned ACL with the
  6407. * <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined
  6408. * ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of
  6409. * grantees and permissions. Specify the canned ACL name as the value of
  6410. * <code>x-amz-acl</code>. If you use this header, you cannot use other access
  6411. * control-specific headers in your request. For more information, see <a
  6412. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  6413. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
  6414. * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
  6415. * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
  6416. * headers. When using these headers, you specify explicit access permissions and
  6417. * grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If
  6418. * you use these ACL-specific headers, you cannot use the <code>x-amz-acl</code>
  6419. * header to set a canned ACL. These parameters map to the set of permissions that
  6420. * Amazon S3 supports in an ACL. For more information, see <a
  6421. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  6422. * Control List (ACL) Overview</a>.</p> <p>You specify each grantee as a type=value
  6423. * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
  6424. * – if the value specified is the canonical user ID of an AWS account</p> </li>
  6425. * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
  6426. * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
  6427. * the email address of an AWS account</p> <p>Using email addresses to
  6428. * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
  6429. * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
  6430. * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
  6431. * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
  6432. * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
  6433. * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
  6434. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  6435. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
  6436. * example, the following <code>x-amz-grant-write</code> header grants create,
  6437. * overwrite, and delete objects permission to LogDelivery group predefined by
  6438. * Amazon S3 and two AWS accounts identified by their email addresses.</p> <p>
  6439. * <code>x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery",
  6440. * id="111122223333", id="555566667777" </code> </p> </li> </ul> <p>You can use
  6441. * either a canned ACL or specify access permissions explicitly. You cannot do
  6442. * both.</p> <p> <b>Grantee Values</b> </p> <p>You can specify the person (grantee)
  6443. * to whom you're assigning access rights (using request elements) in the following
  6444. * ways:</p> <ul> <li> <p>By the person's ID:</p> <p> <code>&lt;Grantee
  6445. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6446. * xsi:type="CanonicalUser"&gt;&lt;ID&gt;&lt;&gt;ID&lt;&gt;&lt;/ID&gt;&lt;DisplayName&gt;&lt;&gt;GranteesEmail&lt;&gt;&lt;/DisplayName&gt;
  6447. * &lt;/Grantee&gt;</code> </p> <p>DisplayName is optional and ignored in the
  6448. * request</p> </li> <li> <p>By URI:</p> <p> <code>&lt;Grantee
  6449. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6450. * xsi:type="Group"&gt;&lt;URI&gt;&lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;&lt;/URI&gt;&lt;/Grantee&gt;</code>
  6451. * </p> </li> <li> <p>By Email address:</p> <p> <code>&lt;Grantee
  6452. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6453. * xsi:type="AmazonCustomerByEmail"&gt;&lt;EmailAddress&gt;&lt;&gt;Grantees@email.com&lt;&gt;&lt;/EmailAddress&gt;lt;/Grantee&gt;</code>
  6454. * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
  6455. * Object acl request, appears as the CanonicalUser. </p> <p>Using email
  6456. * addresses to specify a grantee is only supported in the following AWS Regions:
  6457. * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
  6458. * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
  6459. * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
  6460. * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
  6461. * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
  6462. * Regions and endpoints, see <a
  6463. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  6464. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p
  6465. * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  6466. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  6467. * </p> </li> <li> <p> <a
  6468. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  6469. * </p> </li> <li> <p> <a
  6470. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>
  6471. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6472. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAcl">AWS API
  6473. * Reference</a></p>
  6474. */
  6475. virtual Model::PutBucketAclOutcome PutBucketAcl(const Model::PutBucketAclRequest& request) const;
  6476. /**
  6477. * <p>Sets the permissions on an existing bucket using access control lists (ACL).
  6478. * For more information, see <a
  6479. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
  6480. * ACLs</a>. To set the ACL of a bucket, you must have <code>WRITE_ACP</code>
  6481. * permission.</p> <p>You can use one of the following two ways to set a bucket's
  6482. * permissions:</p> <ul> <li> <p>Specify the ACL in the request body</p> </li> <li>
  6483. * <p>Specify permissions using request headers</p> </li> </ul> <p>You
  6484. * cannot specify access permission using both the body and the request
  6485. * headers.</p> <p>Depending on your application needs, you may choose to
  6486. * set the ACL on a bucket using either the request body or the headers. For
  6487. * example, if you have an existing application that updates a bucket ACL using the
  6488. * request body, then you can continue to use that approach.</p> <p> <b>Access
  6489. * Permissions</b> </p> <p>You can set access permissions using one of the
  6490. * following methods:</p> <ul> <li> <p>Specify a canned ACL with the
  6491. * <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined
  6492. * ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of
  6493. * grantees and permissions. Specify the canned ACL name as the value of
  6494. * <code>x-amz-acl</code>. If you use this header, you cannot use other access
  6495. * control-specific headers in your request. For more information, see <a
  6496. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  6497. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
  6498. * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
  6499. * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
  6500. * headers. When using these headers, you specify explicit access permissions and
  6501. * grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If
  6502. * you use these ACL-specific headers, you cannot use the <code>x-amz-acl</code>
  6503. * header to set a canned ACL. These parameters map to the set of permissions that
  6504. * Amazon S3 supports in an ACL. For more information, see <a
  6505. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  6506. * Control List (ACL) Overview</a>.</p> <p>You specify each grantee as a type=value
  6507. * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
  6508. * – if the value specified is the canonical user ID of an AWS account</p> </li>
  6509. * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
  6510. * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
  6511. * the email address of an AWS account</p> <p>Using email addresses to
  6512. * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
  6513. * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
  6514. * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
  6515. * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
  6516. * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
  6517. * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
  6518. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  6519. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
  6520. * example, the following <code>x-amz-grant-write</code> header grants create,
  6521. * overwrite, and delete objects permission to LogDelivery group predefined by
  6522. * Amazon S3 and two AWS accounts identified by their email addresses.</p> <p>
  6523. * <code>x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery",
  6524. * id="111122223333", id="555566667777" </code> </p> </li> </ul> <p>You can use
  6525. * either a canned ACL or specify access permissions explicitly. You cannot do
  6526. * both.</p> <p> <b>Grantee Values</b> </p> <p>You can specify the person (grantee)
  6527. * to whom you're assigning access rights (using request elements) in the following
  6528. * ways:</p> <ul> <li> <p>By the person's ID:</p> <p> <code>&lt;Grantee
  6529. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6530. * xsi:type="CanonicalUser"&gt;&lt;ID&gt;&lt;&gt;ID&lt;&gt;&lt;/ID&gt;&lt;DisplayName&gt;&lt;&gt;GranteesEmail&lt;&gt;&lt;/DisplayName&gt;
  6531. * &lt;/Grantee&gt;</code> </p> <p>DisplayName is optional and ignored in the
  6532. * request</p> </li> <li> <p>By URI:</p> <p> <code>&lt;Grantee
  6533. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6534. * xsi:type="Group"&gt;&lt;URI&gt;&lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;&lt;/URI&gt;&lt;/Grantee&gt;</code>
  6535. * </p> </li> <li> <p>By Email address:</p> <p> <code>&lt;Grantee
  6536. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6537. * xsi:type="AmazonCustomerByEmail"&gt;&lt;EmailAddress&gt;&lt;&gt;Grantees@email.com&lt;&gt;&lt;/EmailAddress&gt;lt;/Grantee&gt;</code>
  6538. * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
  6539. * Object acl request, appears as the CanonicalUser. </p> <p>Using email
  6540. * addresses to specify a grantee is only supported in the following AWS Regions:
  6541. * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
  6542. * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
  6543. * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
  6544. * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
  6545. * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
  6546. * Regions and endpoints, see <a
  6547. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  6548. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p
  6549. * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  6550. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  6551. * </p> </li> <li> <p> <a
  6552. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  6553. * </p> </li> <li> <p> <a
  6554. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>
  6555. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6556. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAcl">AWS API
  6557. * Reference</a></p>
  6558. *
  6559. * returns a future to the operation so that it can be executed in parallel to other requests.
  6560. */
  6561. virtual Model::PutBucketAclOutcomeCallable PutBucketAclCallable(const Model::PutBucketAclRequest& request) const;
  6562. /**
  6563. * <p>Sets the permissions on an existing bucket using access control lists (ACL).
  6564. * For more information, see <a
  6565. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
  6566. * ACLs</a>. To set the ACL of a bucket, you must have <code>WRITE_ACP</code>
  6567. * permission.</p> <p>You can use one of the following two ways to set a bucket's
  6568. * permissions:</p> <ul> <li> <p>Specify the ACL in the request body</p> </li> <li>
  6569. * <p>Specify permissions using request headers</p> </li> </ul> <p>You
  6570. * cannot specify access permission using both the body and the request
  6571. * headers.</p> <p>Depending on your application needs, you may choose to
  6572. * set the ACL on a bucket using either the request body or the headers. For
  6573. * example, if you have an existing application that updates a bucket ACL using the
  6574. * request body, then you can continue to use that approach.</p> <p> <b>Access
  6575. * Permissions</b> </p> <p>You can set access permissions using one of the
  6576. * following methods:</p> <ul> <li> <p>Specify a canned ACL with the
  6577. * <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined
  6578. * ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of
  6579. * grantees and permissions. Specify the canned ACL name as the value of
  6580. * <code>x-amz-acl</code>. If you use this header, you cannot use other access
  6581. * control-specific headers in your request. For more information, see <a
  6582. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  6583. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
  6584. * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
  6585. * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
  6586. * headers. When using these headers, you specify explicit access permissions and
  6587. * grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If
  6588. * you use these ACL-specific headers, you cannot use the <code>x-amz-acl</code>
  6589. * header to set a canned ACL. These parameters map to the set of permissions that
  6590. * Amazon S3 supports in an ACL. For more information, see <a
  6591. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  6592. * Control List (ACL) Overview</a>.</p> <p>You specify each grantee as a type=value
  6593. * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
  6594. * – if the value specified is the canonical user ID of an AWS account</p> </li>
  6595. * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
  6596. * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
  6597. * the email address of an AWS account</p> <p>Using email addresses to
  6598. * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
  6599. * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
  6600. * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
  6601. * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
  6602. * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
  6603. * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
  6604. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  6605. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
  6606. * example, the following <code>x-amz-grant-write</code> header grants create,
  6607. * overwrite, and delete objects permission to LogDelivery group predefined by
  6608. * Amazon S3 and two AWS accounts identified by their email addresses.</p> <p>
  6609. * <code>x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery",
  6610. * id="111122223333", id="555566667777" </code> </p> </li> </ul> <p>You can use
  6611. * either a canned ACL or specify access permissions explicitly. You cannot do
  6612. * both.</p> <p> <b>Grantee Values</b> </p> <p>You can specify the person (grantee)
  6613. * to whom you're assigning access rights (using request elements) in the following
  6614. * ways:</p> <ul> <li> <p>By the person's ID:</p> <p> <code>&lt;Grantee
  6615. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6616. * xsi:type="CanonicalUser"&gt;&lt;ID&gt;&lt;&gt;ID&lt;&gt;&lt;/ID&gt;&lt;DisplayName&gt;&lt;&gt;GranteesEmail&lt;&gt;&lt;/DisplayName&gt;
  6617. * &lt;/Grantee&gt;</code> </p> <p>DisplayName is optional and ignored in the
  6618. * request</p> </li> <li> <p>By URI:</p> <p> <code>&lt;Grantee
  6619. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6620. * xsi:type="Group"&gt;&lt;URI&gt;&lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;&lt;/URI&gt;&lt;/Grantee&gt;</code>
  6621. * </p> </li> <li> <p>By Email address:</p> <p> <code>&lt;Grantee
  6622. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6623. * xsi:type="AmazonCustomerByEmail"&gt;&lt;EmailAddress&gt;&lt;&gt;Grantees@email.com&lt;&gt;&lt;/EmailAddress&gt;lt;/Grantee&gt;</code>
  6624. * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
  6625. * Object acl request, appears as the CanonicalUser. </p> <p>Using email
  6626. * addresses to specify a grantee is only supported in the following AWS Regions:
  6627. * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
  6628. * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
  6629. * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
  6630. * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
  6631. * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
  6632. * Regions and endpoints, see <a
  6633. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  6634. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p
  6635. * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  6636. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  6637. * </p> </li> <li> <p> <a
  6638. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  6639. * </p> </li> <li> <p> <a
  6640. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>
  6641. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6642. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAcl">AWS API
  6643. * Reference</a></p>
  6644. *
  6645. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  6646. */
  6647. virtual void PutBucketAclAsync(const Model::PutBucketAclRequest& request, const PutBucketAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  6648. /**
  6649. * <p>Sets an analytics configuration for the bucket (specified by the analytics
  6650. * configuration ID). You can have up to 1,000 analytics configurations per
  6651. * bucket.</p> <p>You can choose to have storage class analysis export analysis
  6652. * reports sent to a comma-separated values (CSV) flat file. See the
  6653. * <code>DataExport</code> request element. Reports are updated daily and are based
  6654. * on the object filters that you configure. When selecting data export, you
  6655. * specify a destination bucket and an optional destination prefix where the file
  6656. * is written. You can export the data to a destination bucket in a different
  6657. * account. However, the destination bucket must be in the same Region as the
  6658. * bucket that you are making the PUT analytics configuration to. For more
  6659. * information, see <a
  6660. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
  6661. * S3 Analytics – Storage Class Analysis</a>. </p> <p>You must create a
  6662. * bucket policy on the destination bucket where the exported file is written to
  6663. * grant permissions to Amazon S3 to write objects to the bucket. For an example
  6664. * policy, see <a
  6665. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9">Granting
  6666. * Permissions for Amazon S3 Inventory and Storage Class Analysis</a>.</p>
  6667. * <p>To use this operation, you must have permissions to perform the
  6668. * <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner has this
  6669. * permission by default. The bucket owner can grant this permission to others. For
  6670. * more information about permissions, see <a
  6671. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  6672. * Related to Bucket Subresource Operations</a> and <a
  6673. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  6674. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p class="title">
  6675. * <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>HTTP Error: HTTP 400 Bad
  6676. * Request</i> </p> </li> <li> <p> <i>Code: InvalidArgument</i> </p> </li> <li> <p>
  6677. * <i>Cause: Invalid argument.</i> </p> </li> </ul> </li> <li> <ul> <li> <p>
  6678. * <i>HTTP Error: HTTP 400 Bad Request</i> </p> </li> <li> <p> <i>Code:
  6679. * TooManyConfigurations</i> </p> </li> <li> <p> <i>Cause: You are attempting to
  6680. * create a new configuration but have already reached the 1,000-configuration
  6681. * limit.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>HTTP Error: HTTP 403
  6682. * Forbidden</i> </p> </li> <li> <p> <i>Code: AccessDenied</i> </p> </li> <li> <p>
  6683. * <i>Cause: You are not the owner of the specified bucket, or you do not have the
  6684. * s3:PutAnalyticsConfiguration bucket permission to set the configuration on the
  6685. * bucket.</i> </p> </li> </ul> </li> </ul> <p class="title"> <b>Related
  6686. * Resources</b> </p> <ul> <li> <p> <a
  6687. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
  6688. * </p> </li> <li> <p> <a
  6689. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
  6690. * </p> </li> <li> <p> <a
  6691. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
  6692. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6693. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAnalyticsConfiguration">AWS
  6694. * API Reference</a></p>
  6695. */
  6696. virtual Model::PutBucketAnalyticsConfigurationOutcome PutBucketAnalyticsConfiguration(const Model::PutBucketAnalyticsConfigurationRequest& request) const;
  6697. /**
  6698. * <p>Sets an analytics configuration for the bucket (specified by the analytics
  6699. * configuration ID). You can have up to 1,000 analytics configurations per
  6700. * bucket.</p> <p>You can choose to have storage class analysis export analysis
  6701. * reports sent to a comma-separated values (CSV) flat file. See the
  6702. * <code>DataExport</code> request element. Reports are updated daily and are based
  6703. * on the object filters that you configure. When selecting data export, you
  6704. * specify a destination bucket and an optional destination prefix where the file
  6705. * is written. You can export the data to a destination bucket in a different
  6706. * account. However, the destination bucket must be in the same Region as the
  6707. * bucket that you are making the PUT analytics configuration to. For more
  6708. * information, see <a
  6709. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
  6710. * S3 Analytics – Storage Class Analysis</a>. </p> <p>You must create a
  6711. * bucket policy on the destination bucket where the exported file is written to
  6712. * grant permissions to Amazon S3 to write objects to the bucket. For an example
  6713. * policy, see <a
  6714. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9">Granting
  6715. * Permissions for Amazon S3 Inventory and Storage Class Analysis</a>.</p>
  6716. * <p>To use this operation, you must have permissions to perform the
  6717. * <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner has this
  6718. * permission by default. The bucket owner can grant this permission to others. For
  6719. * more information about permissions, see <a
  6720. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  6721. * Related to Bucket Subresource Operations</a> and <a
  6722. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  6723. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p class="title">
  6724. * <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>HTTP Error: HTTP 400 Bad
  6725. * Request</i> </p> </li> <li> <p> <i>Code: InvalidArgument</i> </p> </li> <li> <p>
  6726. * <i>Cause: Invalid argument.</i> </p> </li> </ul> </li> <li> <ul> <li> <p>
  6727. * <i>HTTP Error: HTTP 400 Bad Request</i> </p> </li> <li> <p> <i>Code:
  6728. * TooManyConfigurations</i> </p> </li> <li> <p> <i>Cause: You are attempting to
  6729. * create a new configuration but have already reached the 1,000-configuration
  6730. * limit.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>HTTP Error: HTTP 403
  6731. * Forbidden</i> </p> </li> <li> <p> <i>Code: AccessDenied</i> </p> </li> <li> <p>
  6732. * <i>Cause: You are not the owner of the specified bucket, or you do not have the
  6733. * s3:PutAnalyticsConfiguration bucket permission to set the configuration on the
  6734. * bucket.</i> </p> </li> </ul> </li> </ul> <p class="title"> <b>Related
  6735. * Resources</b> </p> <ul> <li> <p> <a
  6736. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
  6737. * </p> </li> <li> <p> <a
  6738. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
  6739. * </p> </li> <li> <p> <a
  6740. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
  6741. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6742. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAnalyticsConfiguration">AWS
  6743. * API Reference</a></p>
  6744. *
  6745. * returns a future to the operation so that it can be executed in parallel to other requests.
  6746. */
  6747. virtual Model::PutBucketAnalyticsConfigurationOutcomeCallable PutBucketAnalyticsConfigurationCallable(const Model::PutBucketAnalyticsConfigurationRequest& request) const;
  6748. /**
  6749. * <p>Sets an analytics configuration for the bucket (specified by the analytics
  6750. * configuration ID). You can have up to 1,000 analytics configurations per
  6751. * bucket.</p> <p>You can choose to have storage class analysis export analysis
  6752. * reports sent to a comma-separated values (CSV) flat file. See the
  6753. * <code>DataExport</code> request element. Reports are updated daily and are based
  6754. * on the object filters that you configure. When selecting data export, you
  6755. * specify a destination bucket and an optional destination prefix where the file
  6756. * is written. You can export the data to a destination bucket in a different
  6757. * account. However, the destination bucket must be in the same Region as the
  6758. * bucket that you are making the PUT analytics configuration to. For more
  6759. * information, see <a
  6760. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
  6761. * S3 Analytics – Storage Class Analysis</a>. </p> <p>You must create a
  6762. * bucket policy on the destination bucket where the exported file is written to
  6763. * grant permissions to Amazon S3 to write objects to the bucket. For an example
  6764. * policy, see <a
  6765. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9">Granting
  6766. * Permissions for Amazon S3 Inventory and Storage Class Analysis</a>.</p>
  6767. * <p>To use this operation, you must have permissions to perform the
  6768. * <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner has this
  6769. * permission by default. The bucket owner can grant this permission to others. For
  6770. * more information about permissions, see <a
  6771. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  6772. * Related to Bucket Subresource Operations</a> and <a
  6773. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  6774. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p class="title">
  6775. * <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>HTTP Error: HTTP 400 Bad
  6776. * Request</i> </p> </li> <li> <p> <i>Code: InvalidArgument</i> </p> </li> <li> <p>
  6777. * <i>Cause: Invalid argument.</i> </p> </li> </ul> </li> <li> <ul> <li> <p>
  6778. * <i>HTTP Error: HTTP 400 Bad Request</i> </p> </li> <li> <p> <i>Code:
  6779. * TooManyConfigurations</i> </p> </li> <li> <p> <i>Cause: You are attempting to
  6780. * create a new configuration but have already reached the 1,000-configuration
  6781. * limit.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>HTTP Error: HTTP 403
  6782. * Forbidden</i> </p> </li> <li> <p> <i>Code: AccessDenied</i> </p> </li> <li> <p>
  6783. * <i>Cause: You are not the owner of the specified bucket, or you do not have the
  6784. * s3:PutAnalyticsConfiguration bucket permission to set the configuration on the
  6785. * bucket.</i> </p> </li> </ul> </li> </ul> <p class="title"> <b>Related
  6786. * Resources</b> </p> <ul> <li> <p> <a
  6787. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
  6788. * </p> </li> <li> <p> <a
  6789. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
  6790. * </p> </li> <li> <p> <a
  6791. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
  6792. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6793. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAnalyticsConfiguration">AWS
  6794. * API Reference</a></p>
  6795. *
  6796. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  6797. */
  6798. virtual void PutBucketAnalyticsConfigurationAsync(const Model::PutBucketAnalyticsConfigurationRequest& request, const PutBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  6799. /**
  6800. * <p>Sets the <code>cors</code> configuration for your bucket. If the
  6801. * configuration exists, Amazon S3 replaces it.</p> <p>To use this operation, you
  6802. * must be allowed to perform the <code>s3:PutBucketCORS</code> action. By default,
  6803. * the bucket owner has this permission and can grant it to others.</p> <p>You set
  6804. * this configuration on a bucket so that the bucket can service cross-origin
  6805. * requests. For example, you might want to enable a request whose origin is
  6806. * <code>http://www.example.com</code> to access your Amazon S3 bucket at
  6807. * <code>my.example.bucket.com</code> by using the browser's
  6808. * <code>XMLHttpRequest</code> capability.</p> <p>To enable cross-origin resource
  6809. * sharing (CORS) on a bucket, you add the <code>cors</code> subresource to the
  6810. * bucket. The <code>cors</code> subresource is an XML document in which you
  6811. * configure rules that identify origins and the HTTP methods that can be executed
  6812. * on your bucket. The document is limited to 64 KB in size. </p> <p>When Amazon S3
  6813. * receives a cross-origin request (or a pre-flight OPTIONS request) against a
  6814. * bucket, it evaluates the <code>cors</code> configuration on the bucket and uses
  6815. * the first <code>CORSRule</code> rule that matches the incoming browser request
  6816. * to enable a cross-origin request. For a rule to match, the following conditions
  6817. * must be met:</p> <ul> <li> <p>The request's <code>Origin</code> header must
  6818. * match <code>AllowedOrigin</code> elements.</p> </li> <li> <p>The request method
  6819. * (for example, GET, PUT, HEAD, and so on) or the
  6820. * <code>Access-Control-Request-Method</code> header in case of a pre-flight
  6821. * <code>OPTIONS</code> request must be one of the <code>AllowedMethod</code>
  6822. * elements. </p> </li> <li> <p>Every header specified in the
  6823. * <code>Access-Control-Request-Headers</code> request header of a pre-flight
  6824. * request must match an <code>AllowedHeader</code> element. </p> </li> </ul> <p>
  6825. * For more information about CORS, go to <a
  6826. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling
  6827. * Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.</p> <p
  6828. * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  6829. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html">GetBucketCors</a>
  6830. * </p> </li> <li> <p> <a
  6831. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>
  6832. * </p> </li> <li> <p> <a
  6833. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>
  6834. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6835. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketCors">AWS
  6836. * API Reference</a></p>
  6837. */
  6838. virtual Model::PutBucketCorsOutcome PutBucketCors(const Model::PutBucketCorsRequest& request) const;
  6839. /**
  6840. * <p>Sets the <code>cors</code> configuration for your bucket. If the
  6841. * configuration exists, Amazon S3 replaces it.</p> <p>To use this operation, you
  6842. * must be allowed to perform the <code>s3:PutBucketCORS</code> action. By default,
  6843. * the bucket owner has this permission and can grant it to others.</p> <p>You set
  6844. * this configuration on a bucket so that the bucket can service cross-origin
  6845. * requests. For example, you might want to enable a request whose origin is
  6846. * <code>http://www.example.com</code> to access your Amazon S3 bucket at
  6847. * <code>my.example.bucket.com</code> by using the browser's
  6848. * <code>XMLHttpRequest</code> capability.</p> <p>To enable cross-origin resource
  6849. * sharing (CORS) on a bucket, you add the <code>cors</code> subresource to the
  6850. * bucket. The <code>cors</code> subresource is an XML document in which you
  6851. * configure rules that identify origins and the HTTP methods that can be executed
  6852. * on your bucket. The document is limited to 64 KB in size. </p> <p>When Amazon S3
  6853. * receives a cross-origin request (or a pre-flight OPTIONS request) against a
  6854. * bucket, it evaluates the <code>cors</code> configuration on the bucket and uses
  6855. * the first <code>CORSRule</code> rule that matches the incoming browser request
  6856. * to enable a cross-origin request. For a rule to match, the following conditions
  6857. * must be met:</p> <ul> <li> <p>The request's <code>Origin</code> header must
  6858. * match <code>AllowedOrigin</code> elements.</p> </li> <li> <p>The request method
  6859. * (for example, GET, PUT, HEAD, and so on) or the
  6860. * <code>Access-Control-Request-Method</code> header in case of a pre-flight
  6861. * <code>OPTIONS</code> request must be one of the <code>AllowedMethod</code>
  6862. * elements. </p> </li> <li> <p>Every header specified in the
  6863. * <code>Access-Control-Request-Headers</code> request header of a pre-flight
  6864. * request must match an <code>AllowedHeader</code> element. </p> </li> </ul> <p>
  6865. * For more information about CORS, go to <a
  6866. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling
  6867. * Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.</p> <p
  6868. * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  6869. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html">GetBucketCors</a>
  6870. * </p> </li> <li> <p> <a
  6871. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>
  6872. * </p> </li> <li> <p> <a
  6873. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>
  6874. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6875. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketCors">AWS
  6876. * API Reference</a></p>
  6877. *
  6878. * returns a future to the operation so that it can be executed in parallel to other requests.
  6879. */
  6880. virtual Model::PutBucketCorsOutcomeCallable PutBucketCorsCallable(const Model::PutBucketCorsRequest& request) const;
  6881. /**
  6882. * <p>Sets the <code>cors</code> configuration for your bucket. If the
  6883. * configuration exists, Amazon S3 replaces it.</p> <p>To use this operation, you
  6884. * must be allowed to perform the <code>s3:PutBucketCORS</code> action. By default,
  6885. * the bucket owner has this permission and can grant it to others.</p> <p>You set
  6886. * this configuration on a bucket so that the bucket can service cross-origin
  6887. * requests. For example, you might want to enable a request whose origin is
  6888. * <code>http://www.example.com</code> to access your Amazon S3 bucket at
  6889. * <code>my.example.bucket.com</code> by using the browser's
  6890. * <code>XMLHttpRequest</code> capability.</p> <p>To enable cross-origin resource
  6891. * sharing (CORS) on a bucket, you add the <code>cors</code> subresource to the
  6892. * bucket. The <code>cors</code> subresource is an XML document in which you
  6893. * configure rules that identify origins and the HTTP methods that can be executed
  6894. * on your bucket. The document is limited to 64 KB in size. </p> <p>When Amazon S3
  6895. * receives a cross-origin request (or a pre-flight OPTIONS request) against a
  6896. * bucket, it evaluates the <code>cors</code> configuration on the bucket and uses
  6897. * the first <code>CORSRule</code> rule that matches the incoming browser request
  6898. * to enable a cross-origin request. For a rule to match, the following conditions
  6899. * must be met:</p> <ul> <li> <p>The request's <code>Origin</code> header must
  6900. * match <code>AllowedOrigin</code> elements.</p> </li> <li> <p>The request method
  6901. * (for example, GET, PUT, HEAD, and so on) or the
  6902. * <code>Access-Control-Request-Method</code> header in case of a pre-flight
  6903. * <code>OPTIONS</code> request must be one of the <code>AllowedMethod</code>
  6904. * elements. </p> </li> <li> <p>Every header specified in the
  6905. * <code>Access-Control-Request-Headers</code> request header of a pre-flight
  6906. * request must match an <code>AllowedHeader</code> element. </p> </li> </ul> <p>
  6907. * For more information about CORS, go to <a
  6908. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling
  6909. * Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.</p> <p
  6910. * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  6911. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html">GetBucketCors</a>
  6912. * </p> </li> <li> <p> <a
  6913. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>
  6914. * </p> </li> <li> <p> <a
  6915. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>
  6916. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6917. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketCors">AWS
  6918. * API Reference</a></p>
  6919. *
  6920. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  6921. */
  6922. virtual void PutBucketCorsAsync(const Model::PutBucketCorsRequest& request, const PutBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  6923. /**
  6924. * <p>This action uses the <code>encryption</code> subresource to configure default
  6925. * encryption and Amazon S3 Bucket Key for an existing bucket.</p> <p>Default
  6926. * encryption for a bucket can use server-side encryption with Amazon S3-managed
  6927. * keys (SSE-S3) or AWS KMS customer master keys (SSE-KMS). If you specify default
  6928. * encryption using SSE-KMS, you can also configure Amazon S3 Bucket Key. For
  6929. * information about default encryption, see <a
  6930. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
  6931. * S3 default bucket encryption</a> in the <i>Amazon S3 User Guide</i>. For more
  6932. * information about S3 Bucket Keys, see <a
  6933. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
  6934. * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p>This
  6935. * action requires AWS Signature Version 4. For more information, see <a
  6936. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">
  6937. * Authenticating Requests (AWS Signature Version 4)</a>. </p> <p>To
  6938. * use this operation, you must have permissions to perform the
  6939. * <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this
  6940. * permission by default. The bucket owner can grant this permission to others. For
  6941. * more information about permissions, see <a
  6942. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  6943. * Related to Bucket Subresource Operations</a> and <a
  6944. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  6945. * Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User Guide.
  6946. * </p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  6947. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>
  6948. * </p> </li> <li> <p> <a
  6949. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>
  6950. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6951. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketEncryption">AWS
  6952. * API Reference</a></p>
  6953. */
  6954. virtual Model::PutBucketEncryptionOutcome PutBucketEncryption(const Model::PutBucketEncryptionRequest& request) const;
  6955. /**
  6956. * <p>This action uses the <code>encryption</code> subresource to configure default
  6957. * encryption and Amazon S3 Bucket Key for an existing bucket.</p> <p>Default
  6958. * encryption for a bucket can use server-side encryption with Amazon S3-managed
  6959. * keys (SSE-S3) or AWS KMS customer master keys (SSE-KMS). If you specify default
  6960. * encryption using SSE-KMS, you can also configure Amazon S3 Bucket Key. For
  6961. * information about default encryption, see <a
  6962. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
  6963. * S3 default bucket encryption</a> in the <i>Amazon S3 User Guide</i>. For more
  6964. * information about S3 Bucket Keys, see <a
  6965. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
  6966. * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p>This
  6967. * action requires AWS Signature Version 4. For more information, see <a
  6968. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">
  6969. * Authenticating Requests (AWS Signature Version 4)</a>. </p> <p>To
  6970. * use this operation, you must have permissions to perform the
  6971. * <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this
  6972. * permission by default. The bucket owner can grant this permission to others. For
  6973. * more information about permissions, see <a
  6974. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  6975. * Related to Bucket Subresource Operations</a> and <a
  6976. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  6977. * Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User Guide.
  6978. * </p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  6979. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>
  6980. * </p> </li> <li> <p> <a
  6981. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>
  6982. * </p> </li> </ul><p><h3>See Also:</h3> <a
  6983. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketEncryption">AWS
  6984. * API Reference</a></p>
  6985. *
  6986. * returns a future to the operation so that it can be executed in parallel to other requests.
  6987. */
  6988. virtual Model::PutBucketEncryptionOutcomeCallable PutBucketEncryptionCallable(const Model::PutBucketEncryptionRequest& request) const;
  6989. /**
  6990. * <p>This action uses the <code>encryption</code> subresource to configure default
  6991. * encryption and Amazon S3 Bucket Key for an existing bucket.</p> <p>Default
  6992. * encryption for a bucket can use server-side encryption with Amazon S3-managed
  6993. * keys (SSE-S3) or AWS KMS customer master keys (SSE-KMS). If you specify default
  6994. * encryption using SSE-KMS, you can also configure Amazon S3 Bucket Key. For
  6995. * information about default encryption, see <a
  6996. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
  6997. * S3 default bucket encryption</a> in the <i>Amazon S3 User Guide</i>. For more
  6998. * information about S3 Bucket Keys, see <a
  6999. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
  7000. * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p>This
  7001. * action requires AWS Signature Version 4. For more information, see <a
  7002. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">
  7003. * Authenticating Requests (AWS Signature Version 4)</a>. </p> <p>To
  7004. * use this operation, you must have permissions to perform the
  7005. * <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this
  7006. * permission by default. The bucket owner can grant this permission to others. For
  7007. * more information about permissions, see <a
  7008. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  7009. * Related to Bucket Subresource Operations</a> and <a
  7010. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  7011. * Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User Guide.
  7012. * </p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  7013. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>
  7014. * </p> </li> <li> <p> <a
  7015. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>
  7016. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7017. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketEncryption">AWS
  7018. * API Reference</a></p>
  7019. *
  7020. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  7021. */
  7022. virtual void PutBucketEncryptionAsync(const Model::PutBucketEncryptionRequest& request, const PutBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  7023. /**
  7024. * <p>Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can
  7025. * have up to 1,000 S3 Intelligent-Tiering configurations per bucket.</p> <p>The S3
  7026. * Intelligent-Tiering storage class is designed to optimize storage costs by
  7027. * automatically moving data to the most cost-effective storage access tier,
  7028. * without additional operational overhead. S3 Intelligent-Tiering delivers
  7029. * automatic cost savings by moving data between access tiers, when access patterns
  7030. * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
  7031. * larger than 128 KB that you plan to store for at least 30 days. If the size of
  7032. * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
  7033. * objects can be stored, but they are always charged at the frequent access tier
  7034. * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
  7035. * object before the end of the 30-day minimum storage duration period, you are
  7036. * charged for 30 days. For more information, see <a
  7037. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
  7038. * class for automatically optimizing frequently and infrequently accessed
  7039. * objects</a>.</p> <p>Operations related to
  7040. * <code>PutBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
  7041. * <p> <a
  7042. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
  7043. * </p> </li> <li> <p> <a
  7044. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
  7045. * </p> </li> <li> <p> <a
  7046. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
  7047. * </p> </li> </ul> <p>You only need S3 Intelligent-Tiering enabled on a
  7048. * bucket if you want to automatically move objects stored in the S3
  7049. * Intelligent-Tiering storage class to the Archive Access or Deep Archive Access
  7050. * tier.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <p
  7051. * class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul> <li> <p> <i>Code:</i>
  7052. * InvalidArgument</p> </li> <li> <p> <i>Cause:</i> Invalid Argument</p> </li>
  7053. * </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul>
  7054. * <li> <p> <i>Code:</i> TooManyConfigurations</p> </li> <li> <p> <i>Cause:</i> You
  7055. * are attempting to create a new configuration but have already reached the
  7056. * 1,000-configuration limit. </p> </li> </ul> </li> <li> <p class="title"> <b>HTTP
  7057. * 403 Forbidden Error</b> </p> <ul> <li> <p> <i>Code:</i> AccessDenied</p> </li>
  7058. * <li> <p> <i>Cause:</i> You are not the owner of the specified bucket, or you do
  7059. * not have the <code>s3:PutIntelligentTieringConfiguration</code> bucket
  7060. * permission to set the configuration on the bucket. </p> </li> </ul> </li>
  7061. * </ul><p><h3>See Also:</h3> <a
  7062. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfiguration">AWS
  7063. * API Reference</a></p>
  7064. */
  7065. virtual Model::PutBucketIntelligentTieringConfigurationOutcome PutBucketIntelligentTieringConfiguration(const Model::PutBucketIntelligentTieringConfigurationRequest& request) const;
  7066. /**
  7067. * <p>Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can
  7068. * have up to 1,000 S3 Intelligent-Tiering configurations per bucket.</p> <p>The S3
  7069. * Intelligent-Tiering storage class is designed to optimize storage costs by
  7070. * automatically moving data to the most cost-effective storage access tier,
  7071. * without additional operational overhead. S3 Intelligent-Tiering delivers
  7072. * automatic cost savings by moving data between access tiers, when access patterns
  7073. * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
  7074. * larger than 128 KB that you plan to store for at least 30 days. If the size of
  7075. * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
  7076. * objects can be stored, but they are always charged at the frequent access tier
  7077. * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
  7078. * object before the end of the 30-day minimum storage duration period, you are
  7079. * charged for 30 days. For more information, see <a
  7080. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
  7081. * class for automatically optimizing frequently and infrequently accessed
  7082. * objects</a>.</p> <p>Operations related to
  7083. * <code>PutBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
  7084. * <p> <a
  7085. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
  7086. * </p> </li> <li> <p> <a
  7087. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
  7088. * </p> </li> <li> <p> <a
  7089. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
  7090. * </p> </li> </ul> <p>You only need S3 Intelligent-Tiering enabled on a
  7091. * bucket if you want to automatically move objects stored in the S3
  7092. * Intelligent-Tiering storage class to the Archive Access or Deep Archive Access
  7093. * tier.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <p
  7094. * class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul> <li> <p> <i>Code:</i>
  7095. * InvalidArgument</p> </li> <li> <p> <i>Cause:</i> Invalid Argument</p> </li>
  7096. * </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul>
  7097. * <li> <p> <i>Code:</i> TooManyConfigurations</p> </li> <li> <p> <i>Cause:</i> You
  7098. * are attempting to create a new configuration but have already reached the
  7099. * 1,000-configuration limit. </p> </li> </ul> </li> <li> <p class="title"> <b>HTTP
  7100. * 403 Forbidden Error</b> </p> <ul> <li> <p> <i>Code:</i> AccessDenied</p> </li>
  7101. * <li> <p> <i>Cause:</i> You are not the owner of the specified bucket, or you do
  7102. * not have the <code>s3:PutIntelligentTieringConfiguration</code> bucket
  7103. * permission to set the configuration on the bucket. </p> </li> </ul> </li>
  7104. * </ul><p><h3>See Also:</h3> <a
  7105. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfiguration">AWS
  7106. * API Reference</a></p>
  7107. *
  7108. * returns a future to the operation so that it can be executed in parallel to other requests.
  7109. */
  7110. virtual Model::PutBucketIntelligentTieringConfigurationOutcomeCallable PutBucketIntelligentTieringConfigurationCallable(const Model::PutBucketIntelligentTieringConfigurationRequest& request) const;
  7111. /**
  7112. * <p>Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can
  7113. * have up to 1,000 S3 Intelligent-Tiering configurations per bucket.</p> <p>The S3
  7114. * Intelligent-Tiering storage class is designed to optimize storage costs by
  7115. * automatically moving data to the most cost-effective storage access tier,
  7116. * without additional operational overhead. S3 Intelligent-Tiering delivers
  7117. * automatic cost savings by moving data between access tiers, when access patterns
  7118. * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
  7119. * larger than 128 KB that you plan to store for at least 30 days. If the size of
  7120. * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
  7121. * objects can be stored, but they are always charged at the frequent access tier
  7122. * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
  7123. * object before the end of the 30-day minimum storage duration period, you are
  7124. * charged for 30 days. For more information, see <a
  7125. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
  7126. * class for automatically optimizing frequently and infrequently accessed
  7127. * objects</a>.</p> <p>Operations related to
  7128. * <code>PutBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
  7129. * <p> <a
  7130. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
  7131. * </p> </li> <li> <p> <a
  7132. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
  7133. * </p> </li> <li> <p> <a
  7134. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
  7135. * </p> </li> </ul> <p>You only need S3 Intelligent-Tiering enabled on a
  7136. * bucket if you want to automatically move objects stored in the S3
  7137. * Intelligent-Tiering storage class to the Archive Access or Deep Archive Access
  7138. * tier.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <p
  7139. * class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul> <li> <p> <i>Code:</i>
  7140. * InvalidArgument</p> </li> <li> <p> <i>Cause:</i> Invalid Argument</p> </li>
  7141. * </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul>
  7142. * <li> <p> <i>Code:</i> TooManyConfigurations</p> </li> <li> <p> <i>Cause:</i> You
  7143. * are attempting to create a new configuration but have already reached the
  7144. * 1,000-configuration limit. </p> </li> </ul> </li> <li> <p class="title"> <b>HTTP
  7145. * 403 Forbidden Error</b> </p> <ul> <li> <p> <i>Code:</i> AccessDenied</p> </li>
  7146. * <li> <p> <i>Cause:</i> You are not the owner of the specified bucket, or you do
  7147. * not have the <code>s3:PutIntelligentTieringConfiguration</code> bucket
  7148. * permission to set the configuration on the bucket. </p> </li> </ul> </li>
  7149. * </ul><p><h3>See Also:</h3> <a
  7150. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfiguration">AWS
  7151. * API Reference</a></p>
  7152. *
  7153. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  7154. */
  7155. virtual void PutBucketIntelligentTieringConfigurationAsync(const Model::PutBucketIntelligentTieringConfigurationRequest& request, const PutBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  7156. /**
  7157. * <p>This implementation of the <code>PUT</code> action adds an inventory
  7158. * configuration (identified by the inventory ID) to the bucket. You can have up to
  7159. * 1,000 inventory configurations per bucket. </p> <p>Amazon S3 inventory generates
  7160. * inventories of the objects in the bucket on a daily or weekly basis, and the
  7161. * results are published to a flat file. The bucket that is inventoried is called
  7162. * the <i>source</i> bucket, and the bucket where the inventory flat file is stored
  7163. * is called the <i>destination</i> bucket. The <i>destination</i> bucket must be
  7164. * in the same AWS Region as the <i>source</i> bucket. </p> <p>When you configure
  7165. * an inventory for a <i>source</i> bucket, you specify the <i>destination</i>
  7166. * bucket where you want the inventory to be stored, and whether to generate the
  7167. * inventory daily or weekly. You can also configure what object metadata to
  7168. * include and whether to inventory all object versions or only current versions.
  7169. * For more information, see <a
  7170. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
  7171. * S3 Inventory</a> in the Amazon S3 User Guide.</p> <p>You must create
  7172. * a bucket policy on the <i>destination</i> bucket to grant permissions to Amazon
  7173. * S3 to write objects to the bucket in the defined location. For an example
  7174. * policy, see <a
  7175. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9">
  7176. * Granting Permissions for Amazon S3 Inventory and Storage Class Analysis</a>.</p>
  7177. * <p>To use this operation, you must have permissions to perform the
  7178. * <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this
  7179. * permission by default and can grant this permission to others. For more
  7180. * information about permissions, see <a
  7181. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  7182. * Related to Bucket Subresource Operations</a> and <a
  7183. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  7184. * Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User
  7185. * Guide.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <p
  7186. * class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul> <li> <p> <i>Code:</i>
  7187. * InvalidArgument</p> </li> <li> <p> <i>Cause:</i> Invalid Argument</p> </li>
  7188. * </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul>
  7189. * <li> <p> <i>Code:</i> TooManyConfigurations</p> </li> <li> <p> <i>Cause:</i> You
  7190. * are attempting to create a new configuration but have already reached the
  7191. * 1,000-configuration limit. </p> </li> </ul> </li> <li> <p class="title"> <b>HTTP
  7192. * 403 Forbidden Error</b> </p> <ul> <li> <p> <i>Code:</i> AccessDenied</p> </li>
  7193. * <li> <p> <i>Cause:</i> You are not the owner of the specified bucket, or you do
  7194. * not have the <code>s3:PutInventoryConfiguration</code> bucket permission to set
  7195. * the configuration on the bucket. </p> </li> </ul> </li> </ul> <p class="title">
  7196. * <b>Related Resources</b> </p> <ul> <li> <p> <a
  7197. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
  7198. * </p> </li> <li> <p> <a
  7199. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
  7200. * </p> </li> <li> <p> <a
  7201. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
  7202. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7203. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketInventoryConfiguration">AWS
  7204. * API Reference</a></p>
  7205. */
  7206. virtual Model::PutBucketInventoryConfigurationOutcome PutBucketInventoryConfiguration(const Model::PutBucketInventoryConfigurationRequest& request) const;
  7207. /**
  7208. * <p>This implementation of the <code>PUT</code> action adds an inventory
  7209. * configuration (identified by the inventory ID) to the bucket. You can have up to
  7210. * 1,000 inventory configurations per bucket. </p> <p>Amazon S3 inventory generates
  7211. * inventories of the objects in the bucket on a daily or weekly basis, and the
  7212. * results are published to a flat file. The bucket that is inventoried is called
  7213. * the <i>source</i> bucket, and the bucket where the inventory flat file is stored
  7214. * is called the <i>destination</i> bucket. The <i>destination</i> bucket must be
  7215. * in the same AWS Region as the <i>source</i> bucket. </p> <p>When you configure
  7216. * an inventory for a <i>source</i> bucket, you specify the <i>destination</i>
  7217. * bucket where you want the inventory to be stored, and whether to generate the
  7218. * inventory daily or weekly. You can also configure what object metadata to
  7219. * include and whether to inventory all object versions or only current versions.
  7220. * For more information, see <a
  7221. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
  7222. * S3 Inventory</a> in the Amazon S3 User Guide.</p> <p>You must create
  7223. * a bucket policy on the <i>destination</i> bucket to grant permissions to Amazon
  7224. * S3 to write objects to the bucket in the defined location. For an example
  7225. * policy, see <a
  7226. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9">
  7227. * Granting Permissions for Amazon S3 Inventory and Storage Class Analysis</a>.</p>
  7228. * <p>To use this operation, you must have permissions to perform the
  7229. * <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this
  7230. * permission by default and can grant this permission to others. For more
  7231. * information about permissions, see <a
  7232. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  7233. * Related to Bucket Subresource Operations</a> and <a
  7234. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  7235. * Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User
  7236. * Guide.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <p
  7237. * class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul> <li> <p> <i>Code:</i>
  7238. * InvalidArgument</p> </li> <li> <p> <i>Cause:</i> Invalid Argument</p> </li>
  7239. * </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul>
  7240. * <li> <p> <i>Code:</i> TooManyConfigurations</p> </li> <li> <p> <i>Cause:</i> You
  7241. * are attempting to create a new configuration but have already reached the
  7242. * 1,000-configuration limit. </p> </li> </ul> </li> <li> <p class="title"> <b>HTTP
  7243. * 403 Forbidden Error</b> </p> <ul> <li> <p> <i>Code:</i> AccessDenied</p> </li>
  7244. * <li> <p> <i>Cause:</i> You are not the owner of the specified bucket, or you do
  7245. * not have the <code>s3:PutInventoryConfiguration</code> bucket permission to set
  7246. * the configuration on the bucket. </p> </li> </ul> </li> </ul> <p class="title">
  7247. * <b>Related Resources</b> </p> <ul> <li> <p> <a
  7248. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
  7249. * </p> </li> <li> <p> <a
  7250. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
  7251. * </p> </li> <li> <p> <a
  7252. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
  7253. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7254. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketInventoryConfiguration">AWS
  7255. * API Reference</a></p>
  7256. *
  7257. * returns a future to the operation so that it can be executed in parallel to other requests.
  7258. */
  7259. virtual Model::PutBucketInventoryConfigurationOutcomeCallable PutBucketInventoryConfigurationCallable(const Model::PutBucketInventoryConfigurationRequest& request) const;
  7260. /**
  7261. * <p>This implementation of the <code>PUT</code> action adds an inventory
  7262. * configuration (identified by the inventory ID) to the bucket. You can have up to
  7263. * 1,000 inventory configurations per bucket. </p> <p>Amazon S3 inventory generates
  7264. * inventories of the objects in the bucket on a daily or weekly basis, and the
  7265. * results are published to a flat file. The bucket that is inventoried is called
  7266. * the <i>source</i> bucket, and the bucket where the inventory flat file is stored
  7267. * is called the <i>destination</i> bucket. The <i>destination</i> bucket must be
  7268. * in the same AWS Region as the <i>source</i> bucket. </p> <p>When you configure
  7269. * an inventory for a <i>source</i> bucket, you specify the <i>destination</i>
  7270. * bucket where you want the inventory to be stored, and whether to generate the
  7271. * inventory daily or weekly. You can also configure what object metadata to
  7272. * include and whether to inventory all object versions or only current versions.
  7273. * For more information, see <a
  7274. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
  7275. * S3 Inventory</a> in the Amazon S3 User Guide.</p> <p>You must create
  7276. * a bucket policy on the <i>destination</i> bucket to grant permissions to Amazon
  7277. * S3 to write objects to the bucket in the defined location. For an example
  7278. * policy, see <a
  7279. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9">
  7280. * Granting Permissions for Amazon S3 Inventory and Storage Class Analysis</a>.</p>
  7281. * <p>To use this operation, you must have permissions to perform the
  7282. * <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this
  7283. * permission by default and can grant this permission to others. For more
  7284. * information about permissions, see <a
  7285. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  7286. * Related to Bucket Subresource Operations</a> and <a
  7287. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  7288. * Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User
  7289. * Guide.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <p
  7290. * class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul> <li> <p> <i>Code:</i>
  7291. * InvalidArgument</p> </li> <li> <p> <i>Cause:</i> Invalid Argument</p> </li>
  7292. * </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul>
  7293. * <li> <p> <i>Code:</i> TooManyConfigurations</p> </li> <li> <p> <i>Cause:</i> You
  7294. * are attempting to create a new configuration but have already reached the
  7295. * 1,000-configuration limit. </p> </li> </ul> </li> <li> <p class="title"> <b>HTTP
  7296. * 403 Forbidden Error</b> </p> <ul> <li> <p> <i>Code:</i> AccessDenied</p> </li>
  7297. * <li> <p> <i>Cause:</i> You are not the owner of the specified bucket, or you do
  7298. * not have the <code>s3:PutInventoryConfiguration</code> bucket permission to set
  7299. * the configuration on the bucket. </p> </li> </ul> </li> </ul> <p class="title">
  7300. * <b>Related Resources</b> </p> <ul> <li> <p> <a
  7301. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
  7302. * </p> </li> <li> <p> <a
  7303. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
  7304. * </p> </li> <li> <p> <a
  7305. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
  7306. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7307. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketInventoryConfiguration">AWS
  7308. * API Reference</a></p>
  7309. *
  7310. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  7311. */
  7312. virtual void PutBucketInventoryConfigurationAsync(const Model::PutBucketInventoryConfigurationRequest& request, const PutBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  7313. /**
  7314. * <p>Creates a new lifecycle configuration for the bucket or replaces an existing
  7315. * lifecycle configuration. For information about lifecycle configuration, see <a
  7316. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  7317. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>Bucket
  7318. * lifecycle configuration now supports specifying a lifecycle rule using an object
  7319. * key name prefix, one or more object tags, or a combination of both. Accordingly,
  7320. * this section describes the latest API. The previous version of the API supported
  7321. * filtering based only on an object key name prefix, which is supported for
  7322. * backward compatibility. For the related API description, see <a
  7323. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>.</p>
  7324. * <p> <b>Rules</b> </p> <p>You specify the lifecycle configuration in your
  7325. * request body. The lifecycle configuration is specified as XML consisting of one
  7326. * or more rules. Each rule consists of the following:</p> <ul> <li> <p>Filter
  7327. * identifying a subset of objects to which the rule applies. The filter can be
  7328. * based on a key name prefix, object tags, or a combination of both.</p> </li>
  7329. * <li> <p>Status whether the rule is in effect.</p> </li> <li> <p>One or more
  7330. * lifecycle transition and expiration actions that you want Amazon S3 to perform
  7331. * on the objects identified by the filter. If the state of your bucket is
  7332. * versioning-enabled or versioning-suspended, you can have many versions of the
  7333. * same object (one current version and zero or more noncurrent versions). Amazon
  7334. * S3 provides predefined actions that you can specify for current and noncurrent
  7335. * object versions.</p> </li> </ul> <p>For more information, see <a
  7336. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
  7337. * Lifecycle Management</a> and <a
  7338. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html">Lifecycle
  7339. * Configuration Elements</a>.</p> <p> <b>Permissions</b> </p> <p>By default, all
  7340. * Amazon S3 resources are private, including buckets, objects, and related
  7341. * subresources (for example, lifecycle configuration and website configuration).
  7342. * Only the resource owner (that is, the AWS account that created it) can access
  7343. * the resource. The resource owner can optionally grant access permissions to
  7344. * others by writing an access policy. For this operation, a user must get the
  7345. * s3:PutLifecycleConfiguration permission.</p> <p>You can also explicitly deny
  7346. * permissions. Explicit deny also supersedes any other permissions. If you want to
  7347. * block users or accounts from removing or deleting objects from your bucket, you
  7348. * must deny them permissions for the following actions:</p> <ul> <li>
  7349. * <p>s3:DeleteObject</p> </li> <li> <p>s3:DeleteObjectVersion</p> </li> <li>
  7350. * <p>s3:PutLifecycleConfiguration</p> </li> </ul> <p>For more information about
  7351. * permissions, see <a
  7352. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  7353. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following are
  7354. * related to <code>PutBucketLifecycleConfiguration</code>:</p> <ul> <li> <p> <a
  7355. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html">Examples
  7356. * of Lifecycle Configuration</a> </p> </li> <li> <p> <a
  7357. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
  7358. * </p> </li> <li> <p> <a
  7359. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>
  7360. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7361. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfiguration">AWS
  7362. * API Reference</a></p>
  7363. */
  7364. virtual Model::PutBucketLifecycleConfigurationOutcome PutBucketLifecycleConfiguration(const Model::PutBucketLifecycleConfigurationRequest& request) const;
  7365. /**
  7366. * <p>Creates a new lifecycle configuration for the bucket or replaces an existing
  7367. * lifecycle configuration. For information about lifecycle configuration, see <a
  7368. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  7369. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>Bucket
  7370. * lifecycle configuration now supports specifying a lifecycle rule using an object
  7371. * key name prefix, one or more object tags, or a combination of both. Accordingly,
  7372. * this section describes the latest API. The previous version of the API supported
  7373. * filtering based only on an object key name prefix, which is supported for
  7374. * backward compatibility. For the related API description, see <a
  7375. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>.</p>
  7376. * <p> <b>Rules</b> </p> <p>You specify the lifecycle configuration in your
  7377. * request body. The lifecycle configuration is specified as XML consisting of one
  7378. * or more rules. Each rule consists of the following:</p> <ul> <li> <p>Filter
  7379. * identifying a subset of objects to which the rule applies. The filter can be
  7380. * based on a key name prefix, object tags, or a combination of both.</p> </li>
  7381. * <li> <p>Status whether the rule is in effect.</p> </li> <li> <p>One or more
  7382. * lifecycle transition and expiration actions that you want Amazon S3 to perform
  7383. * on the objects identified by the filter. If the state of your bucket is
  7384. * versioning-enabled or versioning-suspended, you can have many versions of the
  7385. * same object (one current version and zero or more noncurrent versions). Amazon
  7386. * S3 provides predefined actions that you can specify for current and noncurrent
  7387. * object versions.</p> </li> </ul> <p>For more information, see <a
  7388. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
  7389. * Lifecycle Management</a> and <a
  7390. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html">Lifecycle
  7391. * Configuration Elements</a>.</p> <p> <b>Permissions</b> </p> <p>By default, all
  7392. * Amazon S3 resources are private, including buckets, objects, and related
  7393. * subresources (for example, lifecycle configuration and website configuration).
  7394. * Only the resource owner (that is, the AWS account that created it) can access
  7395. * the resource. The resource owner can optionally grant access permissions to
  7396. * others by writing an access policy. For this operation, a user must get the
  7397. * s3:PutLifecycleConfiguration permission.</p> <p>You can also explicitly deny
  7398. * permissions. Explicit deny also supersedes any other permissions. If you want to
  7399. * block users or accounts from removing or deleting objects from your bucket, you
  7400. * must deny them permissions for the following actions:</p> <ul> <li>
  7401. * <p>s3:DeleteObject</p> </li> <li> <p>s3:DeleteObjectVersion</p> </li> <li>
  7402. * <p>s3:PutLifecycleConfiguration</p> </li> </ul> <p>For more information about
  7403. * permissions, see <a
  7404. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  7405. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following are
  7406. * related to <code>PutBucketLifecycleConfiguration</code>:</p> <ul> <li> <p> <a
  7407. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html">Examples
  7408. * of Lifecycle Configuration</a> </p> </li> <li> <p> <a
  7409. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
  7410. * </p> </li> <li> <p> <a
  7411. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>
  7412. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7413. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfiguration">AWS
  7414. * API Reference</a></p>
  7415. *
  7416. * returns a future to the operation so that it can be executed in parallel to other requests.
  7417. */
  7418. virtual Model::PutBucketLifecycleConfigurationOutcomeCallable PutBucketLifecycleConfigurationCallable(const Model::PutBucketLifecycleConfigurationRequest& request) const;
  7419. /**
  7420. * <p>Creates a new lifecycle configuration for the bucket or replaces an existing
  7421. * lifecycle configuration. For information about lifecycle configuration, see <a
  7422. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  7423. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>Bucket
  7424. * lifecycle configuration now supports specifying a lifecycle rule using an object
  7425. * key name prefix, one or more object tags, or a combination of both. Accordingly,
  7426. * this section describes the latest API. The previous version of the API supported
  7427. * filtering based only on an object key name prefix, which is supported for
  7428. * backward compatibility. For the related API description, see <a
  7429. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>.</p>
  7430. * <p> <b>Rules</b> </p> <p>You specify the lifecycle configuration in your
  7431. * request body. The lifecycle configuration is specified as XML consisting of one
  7432. * or more rules. Each rule consists of the following:</p> <ul> <li> <p>Filter
  7433. * identifying a subset of objects to which the rule applies. The filter can be
  7434. * based on a key name prefix, object tags, or a combination of both.</p> </li>
  7435. * <li> <p>Status whether the rule is in effect.</p> </li> <li> <p>One or more
  7436. * lifecycle transition and expiration actions that you want Amazon S3 to perform
  7437. * on the objects identified by the filter. If the state of your bucket is
  7438. * versioning-enabled or versioning-suspended, you can have many versions of the
  7439. * same object (one current version and zero or more noncurrent versions). Amazon
  7440. * S3 provides predefined actions that you can specify for current and noncurrent
  7441. * object versions.</p> </li> </ul> <p>For more information, see <a
  7442. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
  7443. * Lifecycle Management</a> and <a
  7444. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html">Lifecycle
  7445. * Configuration Elements</a>.</p> <p> <b>Permissions</b> </p> <p>By default, all
  7446. * Amazon S3 resources are private, including buckets, objects, and related
  7447. * subresources (for example, lifecycle configuration and website configuration).
  7448. * Only the resource owner (that is, the AWS account that created it) can access
  7449. * the resource. The resource owner can optionally grant access permissions to
  7450. * others by writing an access policy. For this operation, a user must get the
  7451. * s3:PutLifecycleConfiguration permission.</p> <p>You can also explicitly deny
  7452. * permissions. Explicit deny also supersedes any other permissions. If you want to
  7453. * block users or accounts from removing or deleting objects from your bucket, you
  7454. * must deny them permissions for the following actions:</p> <ul> <li>
  7455. * <p>s3:DeleteObject</p> </li> <li> <p>s3:DeleteObjectVersion</p> </li> <li>
  7456. * <p>s3:PutLifecycleConfiguration</p> </li> </ul> <p>For more information about
  7457. * permissions, see <a
  7458. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  7459. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following are
  7460. * related to <code>PutBucketLifecycleConfiguration</code>:</p> <ul> <li> <p> <a
  7461. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html">Examples
  7462. * of Lifecycle Configuration</a> </p> </li> <li> <p> <a
  7463. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
  7464. * </p> </li> <li> <p> <a
  7465. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>
  7466. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7467. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfiguration">AWS
  7468. * API Reference</a></p>
  7469. *
  7470. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  7471. */
  7472. virtual void PutBucketLifecycleConfigurationAsync(const Model::PutBucketLifecycleConfigurationRequest& request, const PutBucketLifecycleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  7473. /**
  7474. * <p>Set the logging parameters for a bucket and to specify permissions for who
  7475. * can view and modify the logging parameters. All logs are saved to buckets in the
  7476. * same AWS Region as the source bucket. To set the logging status of a bucket, you
  7477. * must be the bucket owner.</p> <p>The bucket owner is automatically granted
  7478. * FULL_CONTROL to all logs. You use the <code>Grantee</code> request element to
  7479. * grant access to other people. The <code>Permissions</code> request element
  7480. * specifies the kind of access the grantee has to the logs.</p> <p> <b>Grantee
  7481. * Values</b> </p> <p>You can specify the person (grantee) to whom you're assigning
  7482. * access rights (using request elements) in the following ways:</p> <ul> <li>
  7483. * <p>By the person's ID:</p> <p> <code>&lt;Grantee
  7484. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7485. * xsi:type="CanonicalUser"&gt;&lt;ID&gt;&lt;&gt;ID&lt;&gt;&lt;/ID&gt;&lt;DisplayName&gt;&lt;&gt;GranteesEmail&lt;&gt;&lt;/DisplayName&gt;
  7486. * &lt;/Grantee&gt;</code> </p> <p>DisplayName is optional and ignored in the
  7487. * request.</p> </li> <li> <p>By Email address:</p> <p> <code> &lt;Grantee
  7488. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7489. * xsi:type="AmazonCustomerByEmail"&gt;&lt;EmailAddress&gt;&lt;&gt;Grantees@email.com&lt;&gt;&lt;/EmailAddress&gt;&lt;/Grantee&gt;</code>
  7490. * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
  7491. * Object acl request, appears as the CanonicalUser.</p> </li> <li> <p>By URI:</p>
  7492. * <p> <code>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7493. * xsi:type="Group"&gt;&lt;URI&gt;&lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;&lt;/URI&gt;&lt;/Grantee&gt;</code>
  7494. * </p> </li> </ul> <p>To enable logging, you use LoggingEnabled and its children
  7495. * request elements. To disable logging, you use an empty BucketLoggingStatus
  7496. * request element:</p> <p> <code>&lt;BucketLoggingStatus
  7497. * xmlns="http://doc.s3.amazonaws.com/2006-03-01" /&gt;</code> </p> <p>For more
  7498. * information about server access logging, see <a
  7499. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html">Server
  7500. * Access Logging</a>. </p> <p>For more information about creating a bucket, see <a
  7501. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>.
  7502. * For more information about returning the logging status of a bucket, see <a
  7503. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>.</p>
  7504. * <p>The following operations are related to <code>PutBucketLogging</code>:</p>
  7505. * <ul> <li> <p> <a
  7506. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  7507. * </p> </li> <li> <p> <a
  7508. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  7509. * </p> </li> <li> <p> <a
  7510. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  7511. * </p> </li> <li> <p> <a
  7512. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>
  7513. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7514. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLogging">AWS
  7515. * API Reference</a></p>
  7516. */
  7517. virtual Model::PutBucketLoggingOutcome PutBucketLogging(const Model::PutBucketLoggingRequest& request) const;
  7518. /**
  7519. * <p>Set the logging parameters for a bucket and to specify permissions for who
  7520. * can view and modify the logging parameters. All logs are saved to buckets in the
  7521. * same AWS Region as the source bucket. To set the logging status of a bucket, you
  7522. * must be the bucket owner.</p> <p>The bucket owner is automatically granted
  7523. * FULL_CONTROL to all logs. You use the <code>Grantee</code> request element to
  7524. * grant access to other people. The <code>Permissions</code> request element
  7525. * specifies the kind of access the grantee has to the logs.</p> <p> <b>Grantee
  7526. * Values</b> </p> <p>You can specify the person (grantee) to whom you're assigning
  7527. * access rights (using request elements) in the following ways:</p> <ul> <li>
  7528. * <p>By the person's ID:</p> <p> <code>&lt;Grantee
  7529. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7530. * xsi:type="CanonicalUser"&gt;&lt;ID&gt;&lt;&gt;ID&lt;&gt;&lt;/ID&gt;&lt;DisplayName&gt;&lt;&gt;GranteesEmail&lt;&gt;&lt;/DisplayName&gt;
  7531. * &lt;/Grantee&gt;</code> </p> <p>DisplayName is optional and ignored in the
  7532. * request.</p> </li> <li> <p>By Email address:</p> <p> <code> &lt;Grantee
  7533. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7534. * xsi:type="AmazonCustomerByEmail"&gt;&lt;EmailAddress&gt;&lt;&gt;Grantees@email.com&lt;&gt;&lt;/EmailAddress&gt;&lt;/Grantee&gt;</code>
  7535. * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
  7536. * Object acl request, appears as the CanonicalUser.</p> </li> <li> <p>By URI:</p>
  7537. * <p> <code>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7538. * xsi:type="Group"&gt;&lt;URI&gt;&lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;&lt;/URI&gt;&lt;/Grantee&gt;</code>
  7539. * </p> </li> </ul> <p>To enable logging, you use LoggingEnabled and its children
  7540. * request elements. To disable logging, you use an empty BucketLoggingStatus
  7541. * request element:</p> <p> <code>&lt;BucketLoggingStatus
  7542. * xmlns="http://doc.s3.amazonaws.com/2006-03-01" /&gt;</code> </p> <p>For more
  7543. * information about server access logging, see <a
  7544. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html">Server
  7545. * Access Logging</a>. </p> <p>For more information about creating a bucket, see <a
  7546. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>.
  7547. * For more information about returning the logging status of a bucket, see <a
  7548. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>.</p>
  7549. * <p>The following operations are related to <code>PutBucketLogging</code>:</p>
  7550. * <ul> <li> <p> <a
  7551. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  7552. * </p> </li> <li> <p> <a
  7553. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  7554. * </p> </li> <li> <p> <a
  7555. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  7556. * </p> </li> <li> <p> <a
  7557. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>
  7558. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7559. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLogging">AWS
  7560. * API Reference</a></p>
  7561. *
  7562. * returns a future to the operation so that it can be executed in parallel to other requests.
  7563. */
  7564. virtual Model::PutBucketLoggingOutcomeCallable PutBucketLoggingCallable(const Model::PutBucketLoggingRequest& request) const;
  7565. /**
  7566. * <p>Set the logging parameters for a bucket and to specify permissions for who
  7567. * can view and modify the logging parameters. All logs are saved to buckets in the
  7568. * same AWS Region as the source bucket. To set the logging status of a bucket, you
  7569. * must be the bucket owner.</p> <p>The bucket owner is automatically granted
  7570. * FULL_CONTROL to all logs. You use the <code>Grantee</code> request element to
  7571. * grant access to other people. The <code>Permissions</code> request element
  7572. * specifies the kind of access the grantee has to the logs.</p> <p> <b>Grantee
  7573. * Values</b> </p> <p>You can specify the person (grantee) to whom you're assigning
  7574. * access rights (using request elements) in the following ways:</p> <ul> <li>
  7575. * <p>By the person's ID:</p> <p> <code>&lt;Grantee
  7576. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7577. * xsi:type="CanonicalUser"&gt;&lt;ID&gt;&lt;&gt;ID&lt;&gt;&lt;/ID&gt;&lt;DisplayName&gt;&lt;&gt;GranteesEmail&lt;&gt;&lt;/DisplayName&gt;
  7578. * &lt;/Grantee&gt;</code> </p> <p>DisplayName is optional and ignored in the
  7579. * request.</p> </li> <li> <p>By Email address:</p> <p> <code> &lt;Grantee
  7580. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7581. * xsi:type="AmazonCustomerByEmail"&gt;&lt;EmailAddress&gt;&lt;&gt;Grantees@email.com&lt;&gt;&lt;/EmailAddress&gt;&lt;/Grantee&gt;</code>
  7582. * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
  7583. * Object acl request, appears as the CanonicalUser.</p> </li> <li> <p>By URI:</p>
  7584. * <p> <code>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7585. * xsi:type="Group"&gt;&lt;URI&gt;&lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;&lt;/URI&gt;&lt;/Grantee&gt;</code>
  7586. * </p> </li> </ul> <p>To enable logging, you use LoggingEnabled and its children
  7587. * request elements. To disable logging, you use an empty BucketLoggingStatus
  7588. * request element:</p> <p> <code>&lt;BucketLoggingStatus
  7589. * xmlns="http://doc.s3.amazonaws.com/2006-03-01" /&gt;</code> </p> <p>For more
  7590. * information about server access logging, see <a
  7591. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html">Server
  7592. * Access Logging</a>. </p> <p>For more information about creating a bucket, see <a
  7593. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>.
  7594. * For more information about returning the logging status of a bucket, see <a
  7595. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>.</p>
  7596. * <p>The following operations are related to <code>PutBucketLogging</code>:</p>
  7597. * <ul> <li> <p> <a
  7598. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  7599. * </p> </li> <li> <p> <a
  7600. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  7601. * </p> </li> <li> <p> <a
  7602. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  7603. * </p> </li> <li> <p> <a
  7604. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>
  7605. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7606. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLogging">AWS
  7607. * API Reference</a></p>
  7608. *
  7609. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  7610. */
  7611. virtual void PutBucketLoggingAsync(const Model::PutBucketLoggingRequest& request, const PutBucketLoggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  7612. /**
  7613. * <p>Sets a metrics configuration (specified by the metrics configuration ID) for
  7614. * the bucket. You can have up to 1,000 metrics configurations per bucket. If
  7615. * you're updating an existing metrics configuration, note that this is a full
  7616. * replacement of the existing metrics configuration. If you don't include the
  7617. * elements you want to keep, they are erased.</p> <p>To use this operation, you
  7618. * must have permissions to perform the <code>s3:PutMetricsConfiguration</code>
  7619. * action. The bucket owner has this permission by default. The bucket owner can
  7620. * grant this permission to others. For more information about permissions, see <a
  7621. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  7622. * Related to Bucket Subresource Operations</a> and <a
  7623. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  7624. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  7625. * CloudWatch request metrics for Amazon S3, see <a
  7626. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  7627. * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
  7628. * to <code>PutBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
  7629. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
  7630. * </p> </li> <li> <p> <a
  7631. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
  7632. * </p> </li> <li> <p> <a
  7633. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
  7634. * </p> </li> </ul> <p> <code>GetBucketLifecycle</code> has the following special
  7635. * error:</p> <ul> <li> <p>Error code: <code>TooManyConfigurations</code> </p> <ul>
  7636. * <li> <p>Description: You are attempting to create a new configuration but have
  7637. * already reached the 1,000-configuration limit.</p> </li> <li> <p>HTTP Status
  7638. * Code: HTTP 400 Bad Request</p> </li> </ul> </li> </ul><p><h3>See Also:</h3> <a
  7639. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketMetricsConfiguration">AWS
  7640. * API Reference</a></p>
  7641. */
  7642. virtual Model::PutBucketMetricsConfigurationOutcome PutBucketMetricsConfiguration(const Model::PutBucketMetricsConfigurationRequest& request) const;
  7643. /**
  7644. * <p>Sets a metrics configuration (specified by the metrics configuration ID) for
  7645. * the bucket. You can have up to 1,000 metrics configurations per bucket. If
  7646. * you're updating an existing metrics configuration, note that this is a full
  7647. * replacement of the existing metrics configuration. If you don't include the
  7648. * elements you want to keep, they are erased.</p> <p>To use this operation, you
  7649. * must have permissions to perform the <code>s3:PutMetricsConfiguration</code>
  7650. * action. The bucket owner has this permission by default. The bucket owner can
  7651. * grant this permission to others. For more information about permissions, see <a
  7652. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  7653. * Related to Bucket Subresource Operations</a> and <a
  7654. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  7655. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  7656. * CloudWatch request metrics for Amazon S3, see <a
  7657. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  7658. * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
  7659. * to <code>PutBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
  7660. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
  7661. * </p> </li> <li> <p> <a
  7662. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
  7663. * </p> </li> <li> <p> <a
  7664. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
  7665. * </p> </li> </ul> <p> <code>GetBucketLifecycle</code> has the following special
  7666. * error:</p> <ul> <li> <p>Error code: <code>TooManyConfigurations</code> </p> <ul>
  7667. * <li> <p>Description: You are attempting to create a new configuration but have
  7668. * already reached the 1,000-configuration limit.</p> </li> <li> <p>HTTP Status
  7669. * Code: HTTP 400 Bad Request</p> </li> </ul> </li> </ul><p><h3>See Also:</h3> <a
  7670. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketMetricsConfiguration">AWS
  7671. * API Reference</a></p>
  7672. *
  7673. * returns a future to the operation so that it can be executed in parallel to other requests.
  7674. */
  7675. virtual Model::PutBucketMetricsConfigurationOutcomeCallable PutBucketMetricsConfigurationCallable(const Model::PutBucketMetricsConfigurationRequest& request) const;
  7676. /**
  7677. * <p>Sets a metrics configuration (specified by the metrics configuration ID) for
  7678. * the bucket. You can have up to 1,000 metrics configurations per bucket. If
  7679. * you're updating an existing metrics configuration, note that this is a full
  7680. * replacement of the existing metrics configuration. If you don't include the
  7681. * elements you want to keep, they are erased.</p> <p>To use this operation, you
  7682. * must have permissions to perform the <code>s3:PutMetricsConfiguration</code>
  7683. * action. The bucket owner has this permission by default. The bucket owner can
  7684. * grant this permission to others. For more information about permissions, see <a
  7685. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  7686. * Related to Bucket Subresource Operations</a> and <a
  7687. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  7688. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
  7689. * CloudWatch request metrics for Amazon S3, see <a
  7690. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
  7691. * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
  7692. * to <code>PutBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
  7693. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
  7694. * </p> </li> <li> <p> <a
  7695. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
  7696. * </p> </li> <li> <p> <a
  7697. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
  7698. * </p> </li> </ul> <p> <code>GetBucketLifecycle</code> has the following special
  7699. * error:</p> <ul> <li> <p>Error code: <code>TooManyConfigurations</code> </p> <ul>
  7700. * <li> <p>Description: You are attempting to create a new configuration but have
  7701. * already reached the 1,000-configuration limit.</p> </li> <li> <p>HTTP Status
  7702. * Code: HTTP 400 Bad Request</p> </li> </ul> </li> </ul><p><h3>See Also:</h3> <a
  7703. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketMetricsConfiguration">AWS
  7704. * API Reference</a></p>
  7705. *
  7706. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  7707. */
  7708. virtual void PutBucketMetricsConfigurationAsync(const Model::PutBucketMetricsConfigurationRequest& request, const PutBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  7709. /**
  7710. * <p>Enables notifications of specified events for a bucket. For more information
  7711. * about event notifications, see <a
  7712. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
  7713. * Event Notifications</a>.</p> <p>Using this API, you can replace an existing
  7714. * notification configuration. The configuration is an XML file that defines the
  7715. * event types that you want Amazon S3 to publish and the destination where you
  7716. * want Amazon S3 to publish an event notification when it detects an event of the
  7717. * specified type.</p> <p>By default, your bucket has no event notifications
  7718. * configured. That is, the notification configuration will be an empty
  7719. * <code>NotificationConfiguration</code>.</p> <p>
  7720. * <code>&lt;NotificationConfiguration&gt;</code> </p> <p>
  7721. * <code>&lt;/NotificationConfiguration&gt;</code> </p> <p>This action replaces the
  7722. * existing notification configuration with the configuration you include in the
  7723. * request body.</p> <p>After Amazon S3 receives this request, it first verifies
  7724. * that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue
  7725. * Service (Amazon SQS) destination exists, and that the bucket owner has
  7726. * permission to publish to it by sending a test notification. In the case of AWS
  7727. * Lambda destinations, Amazon S3 verifies that the Lambda function permissions
  7728. * grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For
  7729. * more information, see <a
  7730. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
  7731. * Notifications for Amazon S3 Events</a>.</p> <p>You can disable notifications by
  7732. * adding the empty NotificationConfiguration element.</p> <p>By default, only the
  7733. * bucket owner can configure notifications on a bucket. However, bucket owners can
  7734. * use a bucket policy to grant permission to other users to set this configuration
  7735. * with <code>s3:PutBucketNotification</code> permission.</p> <p>The PUT
  7736. * notification is an atomic operation. For example, suppose your notification
  7737. * configuration includes SNS topic, SQS queue, and Lambda function configurations.
  7738. * When you send a PUT request with this configuration, Amazon S3 sends test
  7739. * messages to your SNS topic. If the message fails, the entire PUT action will
  7740. * fail, and Amazon S3 will not add the configuration to your bucket.</p>
  7741. * <p> <b>Responses</b> </p> <p>If the configuration in the request body includes
  7742. * only one <code>TopicConfiguration</code> specifying only the
  7743. * <code>s3:ReducedRedundancyLostObject</code> event type, the response will also
  7744. * include the <code>x-amz-sns-test-message-id</code> header containing the message
  7745. * ID of the test notification sent to the topic.</p> <p>The following action is
  7746. * related to <code>PutBucketNotificationConfiguration</code>:</p> <ul> <li> <p> <a
  7747. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>
  7748. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7749. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationConfiguration">AWS
  7750. * API Reference</a></p>
  7751. */
  7752. virtual Model::PutBucketNotificationConfigurationOutcome PutBucketNotificationConfiguration(const Model::PutBucketNotificationConfigurationRequest& request) const;
  7753. /**
  7754. * <p>Enables notifications of specified events for a bucket. For more information
  7755. * about event notifications, see <a
  7756. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
  7757. * Event Notifications</a>.</p> <p>Using this API, you can replace an existing
  7758. * notification configuration. The configuration is an XML file that defines the
  7759. * event types that you want Amazon S3 to publish and the destination where you
  7760. * want Amazon S3 to publish an event notification when it detects an event of the
  7761. * specified type.</p> <p>By default, your bucket has no event notifications
  7762. * configured. That is, the notification configuration will be an empty
  7763. * <code>NotificationConfiguration</code>.</p> <p>
  7764. * <code>&lt;NotificationConfiguration&gt;</code> </p> <p>
  7765. * <code>&lt;/NotificationConfiguration&gt;</code> </p> <p>This action replaces the
  7766. * existing notification configuration with the configuration you include in the
  7767. * request body.</p> <p>After Amazon S3 receives this request, it first verifies
  7768. * that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue
  7769. * Service (Amazon SQS) destination exists, and that the bucket owner has
  7770. * permission to publish to it by sending a test notification. In the case of AWS
  7771. * Lambda destinations, Amazon S3 verifies that the Lambda function permissions
  7772. * grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For
  7773. * more information, see <a
  7774. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
  7775. * Notifications for Amazon S3 Events</a>.</p> <p>You can disable notifications by
  7776. * adding the empty NotificationConfiguration element.</p> <p>By default, only the
  7777. * bucket owner can configure notifications on a bucket. However, bucket owners can
  7778. * use a bucket policy to grant permission to other users to set this configuration
  7779. * with <code>s3:PutBucketNotification</code> permission.</p> <p>The PUT
  7780. * notification is an atomic operation. For example, suppose your notification
  7781. * configuration includes SNS topic, SQS queue, and Lambda function configurations.
  7782. * When you send a PUT request with this configuration, Amazon S3 sends test
  7783. * messages to your SNS topic. If the message fails, the entire PUT action will
  7784. * fail, and Amazon S3 will not add the configuration to your bucket.</p>
  7785. * <p> <b>Responses</b> </p> <p>If the configuration in the request body includes
  7786. * only one <code>TopicConfiguration</code> specifying only the
  7787. * <code>s3:ReducedRedundancyLostObject</code> event type, the response will also
  7788. * include the <code>x-amz-sns-test-message-id</code> header containing the message
  7789. * ID of the test notification sent to the topic.</p> <p>The following action is
  7790. * related to <code>PutBucketNotificationConfiguration</code>:</p> <ul> <li> <p> <a
  7791. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>
  7792. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7793. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationConfiguration">AWS
  7794. * API Reference</a></p>
  7795. *
  7796. * returns a future to the operation so that it can be executed in parallel to other requests.
  7797. */
  7798. virtual Model::PutBucketNotificationConfigurationOutcomeCallable PutBucketNotificationConfigurationCallable(const Model::PutBucketNotificationConfigurationRequest& request) const;
  7799. /**
  7800. * <p>Enables notifications of specified events for a bucket. For more information
  7801. * about event notifications, see <a
  7802. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
  7803. * Event Notifications</a>.</p> <p>Using this API, you can replace an existing
  7804. * notification configuration. The configuration is an XML file that defines the
  7805. * event types that you want Amazon S3 to publish and the destination where you
  7806. * want Amazon S3 to publish an event notification when it detects an event of the
  7807. * specified type.</p> <p>By default, your bucket has no event notifications
  7808. * configured. That is, the notification configuration will be an empty
  7809. * <code>NotificationConfiguration</code>.</p> <p>
  7810. * <code>&lt;NotificationConfiguration&gt;</code> </p> <p>
  7811. * <code>&lt;/NotificationConfiguration&gt;</code> </p> <p>This action replaces the
  7812. * existing notification configuration with the configuration you include in the
  7813. * request body.</p> <p>After Amazon S3 receives this request, it first verifies
  7814. * that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue
  7815. * Service (Amazon SQS) destination exists, and that the bucket owner has
  7816. * permission to publish to it by sending a test notification. In the case of AWS
  7817. * Lambda destinations, Amazon S3 verifies that the Lambda function permissions
  7818. * grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For
  7819. * more information, see <a
  7820. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
  7821. * Notifications for Amazon S3 Events</a>.</p> <p>You can disable notifications by
  7822. * adding the empty NotificationConfiguration element.</p> <p>By default, only the
  7823. * bucket owner can configure notifications on a bucket. However, bucket owners can
  7824. * use a bucket policy to grant permission to other users to set this configuration
  7825. * with <code>s3:PutBucketNotification</code> permission.</p> <p>The PUT
  7826. * notification is an atomic operation. For example, suppose your notification
  7827. * configuration includes SNS topic, SQS queue, and Lambda function configurations.
  7828. * When you send a PUT request with this configuration, Amazon S3 sends test
  7829. * messages to your SNS topic. If the message fails, the entire PUT action will
  7830. * fail, and Amazon S3 will not add the configuration to your bucket.</p>
  7831. * <p> <b>Responses</b> </p> <p>If the configuration in the request body includes
  7832. * only one <code>TopicConfiguration</code> specifying only the
  7833. * <code>s3:ReducedRedundancyLostObject</code> event type, the response will also
  7834. * include the <code>x-amz-sns-test-message-id</code> header containing the message
  7835. * ID of the test notification sent to the topic.</p> <p>The following action is
  7836. * related to <code>PutBucketNotificationConfiguration</code>:</p> <ul> <li> <p> <a
  7837. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>
  7838. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7839. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationConfiguration">AWS
  7840. * API Reference</a></p>
  7841. *
  7842. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  7843. */
  7844. virtual void PutBucketNotificationConfigurationAsync(const Model::PutBucketNotificationConfigurationRequest& request, const PutBucketNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  7845. /**
  7846. * <p>Creates or modifies <code>OwnershipControls</code> for an Amazon S3 bucket.
  7847. * To use this operation, you must have the
  7848. * <code>s3:PutBucketOwnershipControls</code> permission. For more information
  7849. * about Amazon S3 permissions, see <a
  7850. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  7851. * Permissions in a Policy</a>. </p> <p>For information about Amazon S3 Object
  7852. * Ownership, see <a
  7853. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
  7854. * Object Ownership</a>. </p> <p>The following operations are related to
  7855. * <code>PutBucketOwnershipControls</code>:</p> <ul> <li> <p>
  7856. * <a>GetBucketOwnershipControls</a> </p> </li> <li> <p>
  7857. * <a>DeleteBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  7858. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControls">AWS
  7859. * API Reference</a></p>
  7860. */
  7861. virtual Model::PutBucketOwnershipControlsOutcome PutBucketOwnershipControls(const Model::PutBucketOwnershipControlsRequest& request) const;
  7862. /**
  7863. * <p>Creates or modifies <code>OwnershipControls</code> for an Amazon S3 bucket.
  7864. * To use this operation, you must have the
  7865. * <code>s3:PutBucketOwnershipControls</code> permission. For more information
  7866. * about Amazon S3 permissions, see <a
  7867. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  7868. * Permissions in a Policy</a>. </p> <p>For information about Amazon S3 Object
  7869. * Ownership, see <a
  7870. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
  7871. * Object Ownership</a>. </p> <p>The following operations are related to
  7872. * <code>PutBucketOwnershipControls</code>:</p> <ul> <li> <p>
  7873. * <a>GetBucketOwnershipControls</a> </p> </li> <li> <p>
  7874. * <a>DeleteBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  7875. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControls">AWS
  7876. * API Reference</a></p>
  7877. *
  7878. * returns a future to the operation so that it can be executed in parallel to other requests.
  7879. */
  7880. virtual Model::PutBucketOwnershipControlsOutcomeCallable PutBucketOwnershipControlsCallable(const Model::PutBucketOwnershipControlsRequest& request) const;
  7881. /**
  7882. * <p>Creates or modifies <code>OwnershipControls</code> for an Amazon S3 bucket.
  7883. * To use this operation, you must have the
  7884. * <code>s3:PutBucketOwnershipControls</code> permission. For more information
  7885. * about Amazon S3 permissions, see <a
  7886. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  7887. * Permissions in a Policy</a>. </p> <p>For information about Amazon S3 Object
  7888. * Ownership, see <a
  7889. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
  7890. * Object Ownership</a>. </p> <p>The following operations are related to
  7891. * <code>PutBucketOwnershipControls</code>:</p> <ul> <li> <p>
  7892. * <a>GetBucketOwnershipControls</a> </p> </li> <li> <p>
  7893. * <a>DeleteBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  7894. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControls">AWS
  7895. * API Reference</a></p>
  7896. *
  7897. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  7898. */
  7899. virtual void PutBucketOwnershipControlsAsync(const Model::PutBucketOwnershipControlsRequest& request, const PutBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  7900. /**
  7901. * <p>Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using
  7902. * an identity other than the root user of the AWS account that owns the bucket,
  7903. * the calling identity must have the <code>PutBucketPolicy</code> permissions on
  7904. * the specified bucket and belong to the bucket owner's account in order to use
  7905. * this operation.</p> <p>If you don't have <code>PutBucketPolicy</code>
  7906. * permissions, Amazon S3 returns a <code>403 Access Denied</code> error. If you
  7907. * have the correct permissions, but you're not using an identity that belongs to
  7908. * the bucket owner's account, Amazon S3 returns a <code>405 Method Not
  7909. * Allowed</code> error.</p> <p> As a security precaution, the root
  7910. * user of the AWS account that owns a bucket can always use this operation, even
  7911. * if the policy explicitly denies the root user the ability to perform this
  7912. * action. </p> <p>For more information about bucket policies, see <a
  7913. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  7914. * Bucket Policies and User Policies</a>.</p> <p>The following operations are
  7915. * related to <code>PutBucketPolicy</code>:</p> <ul> <li> <p> <a
  7916. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  7917. * </p> </li> <li> <p> <a
  7918. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  7919. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7920. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketPolicy">AWS
  7921. * API Reference</a></p>
  7922. */
  7923. virtual Model::PutBucketPolicyOutcome PutBucketPolicy(const Model::PutBucketPolicyRequest& request) const;
  7924. /**
  7925. * <p>Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using
  7926. * an identity other than the root user of the AWS account that owns the bucket,
  7927. * the calling identity must have the <code>PutBucketPolicy</code> permissions on
  7928. * the specified bucket and belong to the bucket owner's account in order to use
  7929. * this operation.</p> <p>If you don't have <code>PutBucketPolicy</code>
  7930. * permissions, Amazon S3 returns a <code>403 Access Denied</code> error. If you
  7931. * have the correct permissions, but you're not using an identity that belongs to
  7932. * the bucket owner's account, Amazon S3 returns a <code>405 Method Not
  7933. * Allowed</code> error.</p> <p> As a security precaution, the root
  7934. * user of the AWS account that owns a bucket can always use this operation, even
  7935. * if the policy explicitly denies the root user the ability to perform this
  7936. * action. </p> <p>For more information about bucket policies, see <a
  7937. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  7938. * Bucket Policies and User Policies</a>.</p> <p>The following operations are
  7939. * related to <code>PutBucketPolicy</code>:</p> <ul> <li> <p> <a
  7940. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  7941. * </p> </li> <li> <p> <a
  7942. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  7943. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7944. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketPolicy">AWS
  7945. * API Reference</a></p>
  7946. *
  7947. * returns a future to the operation so that it can be executed in parallel to other requests.
  7948. */
  7949. virtual Model::PutBucketPolicyOutcomeCallable PutBucketPolicyCallable(const Model::PutBucketPolicyRequest& request) const;
  7950. /**
  7951. * <p>Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using
  7952. * an identity other than the root user of the AWS account that owns the bucket,
  7953. * the calling identity must have the <code>PutBucketPolicy</code> permissions on
  7954. * the specified bucket and belong to the bucket owner's account in order to use
  7955. * this operation.</p> <p>If you don't have <code>PutBucketPolicy</code>
  7956. * permissions, Amazon S3 returns a <code>403 Access Denied</code> error. If you
  7957. * have the correct permissions, but you're not using an identity that belongs to
  7958. * the bucket owner's account, Amazon S3 returns a <code>405 Method Not
  7959. * Allowed</code> error.</p> <p> As a security precaution, the root
  7960. * user of the AWS account that owns a bucket can always use this operation, even
  7961. * if the policy explicitly denies the root user the ability to perform this
  7962. * action. </p> <p>For more information about bucket policies, see <a
  7963. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
  7964. * Bucket Policies and User Policies</a>.</p> <p>The following operations are
  7965. * related to <code>PutBucketPolicy</code>:</p> <ul> <li> <p> <a
  7966. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  7967. * </p> </li> <li> <p> <a
  7968. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  7969. * </p> </li> </ul><p><h3>See Also:</h3> <a
  7970. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketPolicy">AWS
  7971. * API Reference</a></p>
  7972. *
  7973. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  7974. */
  7975. virtual void PutBucketPolicyAsync(const Model::PutBucketPolicyRequest& request, const PutBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  7976. /**
  7977. * <p> Creates a replication configuration or replaces an existing one. For more
  7978. * information, see <a
  7979. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
  7980. * in the <i>Amazon S3 Developer Guide</i>. </p> <p>To perform this
  7981. * operation, the user or role performing the action must have the <a
  7982. * href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html">iam:PassRole</a>
  7983. * permission.</p> <p>Specify the replication configuration in the request
  7984. * body. In the replication configuration, you provide the name of the destination
  7985. * bucket or buckets where you want Amazon S3 to replicate objects, the IAM role
  7986. * that Amazon S3 can assume to replicate objects on your behalf, and other
  7987. * relevant information.</p> <p>A replication configuration must include at least
  7988. * one rule, and can contain a maximum of 1,000. Each rule identifies a subset of
  7989. * objects to replicate by filtering the objects in the source bucket. To choose
  7990. * additional subsets of objects to replicate, add a rule for each subset.</p>
  7991. * <p>To specify a subset of the objects in the source bucket to apply a
  7992. * replication rule to, add the Filter element as a child of the Rule element. You
  7993. * can filter objects based on an object key prefix, one or more object tags, or
  7994. * both. When you add the Filter element in the configuration, you must also add
  7995. * the following elements: <code>DeleteMarkerReplication</code>,
  7996. * <code>Status</code>, and <code>Priority</code>.</p> <p>If you are using
  7997. * an earlier version of the replication configuration, Amazon S3 handles
  7998. * replication of delete markers differently. For more information, see <a
  7999. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations">Backward
  8000. * Compatibility</a>.</p> <p>For information about enabling versioning on a
  8001. * bucket, see <a
  8002. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html">Using
  8003. * Versioning</a>.</p> <p>By default, a resource owner, in this case the AWS
  8004. * account that created the bucket, can perform this operation. The resource owner
  8005. * can also grant others permissions to perform the operation. For more information
  8006. * about permissions, see <a
  8007. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  8008. * Permissions in a Policy</a> and <a
  8009. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  8010. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> <b>Handling
  8011. * Replication of Encrypted Objects</b> </p> <p>By default, Amazon S3 doesn't
  8012. * replicate objects that are stored at rest using server-side encryption with CMKs
  8013. * stored in AWS KMS. To replicate AWS KMS-encrypted objects, add the following:
  8014. * <code>SourceSelectionCriteria</code>, <code>SseKmsEncryptedObjects</code>,
  8015. * <code>Status</code>, <code>EncryptionConfiguration</code>, and
  8016. * <code>ReplicaKmsKeyID</code>. For information about replication configuration,
  8017. * see <a
  8018. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html">Replicating
  8019. * Objects Created with SSE Using CMKs stored in AWS KMS</a>.</p> <p>For
  8020. * information on <code>PutBucketReplication</code> errors, see <a
  8021. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List
  8022. * of replication-related error codes</a> </p> <p>The following operations are
  8023. * related to <code>PutBucketReplication</code>:</p> <ul> <li> <p> <a
  8024. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>
  8025. * </p> </li> <li> <p> <a
  8026. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>
  8027. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8028. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplication">AWS
  8029. * API Reference</a></p>
  8030. */
  8031. virtual Model::PutBucketReplicationOutcome PutBucketReplication(const Model::PutBucketReplicationRequest& request) const;
  8032. /**
  8033. * <p> Creates a replication configuration or replaces an existing one. For more
  8034. * information, see <a
  8035. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
  8036. * in the <i>Amazon S3 Developer Guide</i>. </p> <p>To perform this
  8037. * operation, the user or role performing the action must have the <a
  8038. * href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html">iam:PassRole</a>
  8039. * permission.</p> <p>Specify the replication configuration in the request
  8040. * body. In the replication configuration, you provide the name of the destination
  8041. * bucket or buckets where you want Amazon S3 to replicate objects, the IAM role
  8042. * that Amazon S3 can assume to replicate objects on your behalf, and other
  8043. * relevant information.</p> <p>A replication configuration must include at least
  8044. * one rule, and can contain a maximum of 1,000. Each rule identifies a subset of
  8045. * objects to replicate by filtering the objects in the source bucket. To choose
  8046. * additional subsets of objects to replicate, add a rule for each subset.</p>
  8047. * <p>To specify a subset of the objects in the source bucket to apply a
  8048. * replication rule to, add the Filter element as a child of the Rule element. You
  8049. * can filter objects based on an object key prefix, one or more object tags, or
  8050. * both. When you add the Filter element in the configuration, you must also add
  8051. * the following elements: <code>DeleteMarkerReplication</code>,
  8052. * <code>Status</code>, and <code>Priority</code>.</p> <p>If you are using
  8053. * an earlier version of the replication configuration, Amazon S3 handles
  8054. * replication of delete markers differently. For more information, see <a
  8055. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations">Backward
  8056. * Compatibility</a>.</p> <p>For information about enabling versioning on a
  8057. * bucket, see <a
  8058. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html">Using
  8059. * Versioning</a>.</p> <p>By default, a resource owner, in this case the AWS
  8060. * account that created the bucket, can perform this operation. The resource owner
  8061. * can also grant others permissions to perform the operation. For more information
  8062. * about permissions, see <a
  8063. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  8064. * Permissions in a Policy</a> and <a
  8065. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  8066. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> <b>Handling
  8067. * Replication of Encrypted Objects</b> </p> <p>By default, Amazon S3 doesn't
  8068. * replicate objects that are stored at rest using server-side encryption with CMKs
  8069. * stored in AWS KMS. To replicate AWS KMS-encrypted objects, add the following:
  8070. * <code>SourceSelectionCriteria</code>, <code>SseKmsEncryptedObjects</code>,
  8071. * <code>Status</code>, <code>EncryptionConfiguration</code>, and
  8072. * <code>ReplicaKmsKeyID</code>. For information about replication configuration,
  8073. * see <a
  8074. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html">Replicating
  8075. * Objects Created with SSE Using CMKs stored in AWS KMS</a>.</p> <p>For
  8076. * information on <code>PutBucketReplication</code> errors, see <a
  8077. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List
  8078. * of replication-related error codes</a> </p> <p>The following operations are
  8079. * related to <code>PutBucketReplication</code>:</p> <ul> <li> <p> <a
  8080. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>
  8081. * </p> </li> <li> <p> <a
  8082. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>
  8083. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8084. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplication">AWS
  8085. * API Reference</a></p>
  8086. *
  8087. * returns a future to the operation so that it can be executed in parallel to other requests.
  8088. */
  8089. virtual Model::PutBucketReplicationOutcomeCallable PutBucketReplicationCallable(const Model::PutBucketReplicationRequest& request) const;
  8090. /**
  8091. * <p> Creates a replication configuration or replaces an existing one. For more
  8092. * information, see <a
  8093. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
  8094. * in the <i>Amazon S3 Developer Guide</i>. </p> <p>To perform this
  8095. * operation, the user or role performing the action must have the <a
  8096. * href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html">iam:PassRole</a>
  8097. * permission.</p> <p>Specify the replication configuration in the request
  8098. * body. In the replication configuration, you provide the name of the destination
  8099. * bucket or buckets where you want Amazon S3 to replicate objects, the IAM role
  8100. * that Amazon S3 can assume to replicate objects on your behalf, and other
  8101. * relevant information.</p> <p>A replication configuration must include at least
  8102. * one rule, and can contain a maximum of 1,000. Each rule identifies a subset of
  8103. * objects to replicate by filtering the objects in the source bucket. To choose
  8104. * additional subsets of objects to replicate, add a rule for each subset.</p>
  8105. * <p>To specify a subset of the objects in the source bucket to apply a
  8106. * replication rule to, add the Filter element as a child of the Rule element. You
  8107. * can filter objects based on an object key prefix, one or more object tags, or
  8108. * both. When you add the Filter element in the configuration, you must also add
  8109. * the following elements: <code>DeleteMarkerReplication</code>,
  8110. * <code>Status</code>, and <code>Priority</code>.</p> <p>If you are using
  8111. * an earlier version of the replication configuration, Amazon S3 handles
  8112. * replication of delete markers differently. For more information, see <a
  8113. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations">Backward
  8114. * Compatibility</a>.</p> <p>For information about enabling versioning on a
  8115. * bucket, see <a
  8116. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html">Using
  8117. * Versioning</a>.</p> <p>By default, a resource owner, in this case the AWS
  8118. * account that created the bucket, can perform this operation. The resource owner
  8119. * can also grant others permissions to perform the operation. For more information
  8120. * about permissions, see <a
  8121. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  8122. * Permissions in a Policy</a> and <a
  8123. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  8124. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> <b>Handling
  8125. * Replication of Encrypted Objects</b> </p> <p>By default, Amazon S3 doesn't
  8126. * replicate objects that are stored at rest using server-side encryption with CMKs
  8127. * stored in AWS KMS. To replicate AWS KMS-encrypted objects, add the following:
  8128. * <code>SourceSelectionCriteria</code>, <code>SseKmsEncryptedObjects</code>,
  8129. * <code>Status</code>, <code>EncryptionConfiguration</code>, and
  8130. * <code>ReplicaKmsKeyID</code>. For information about replication configuration,
  8131. * see <a
  8132. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html">Replicating
  8133. * Objects Created with SSE Using CMKs stored in AWS KMS</a>.</p> <p>For
  8134. * information on <code>PutBucketReplication</code> errors, see <a
  8135. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List
  8136. * of replication-related error codes</a> </p> <p>The following operations are
  8137. * related to <code>PutBucketReplication</code>:</p> <ul> <li> <p> <a
  8138. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>
  8139. * </p> </li> <li> <p> <a
  8140. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>
  8141. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8142. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplication">AWS
  8143. * API Reference</a></p>
  8144. *
  8145. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  8146. */
  8147. virtual void PutBucketReplicationAsync(const Model::PutBucketReplicationRequest& request, const PutBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  8148. /**
  8149. * <p>Sets the request payment configuration for a bucket. By default, the bucket
  8150. * owner pays for downloads from the bucket. This configuration parameter enables
  8151. * the bucket owner (only) to specify that the person requesting the download will
  8152. * be charged for the download. For more information, see <a
  8153. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester
  8154. * Pays Buckets</a>.</p> <p>The following operations are related to
  8155. * <code>PutBucketRequestPayment</code>:</p> <ul> <li> <p> <a
  8156. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  8157. * </p> </li> <li> <p> <a
  8158. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html">GetBucketRequestPayment</a>
  8159. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8160. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketRequestPayment">AWS
  8161. * API Reference</a></p>
  8162. */
  8163. virtual Model::PutBucketRequestPaymentOutcome PutBucketRequestPayment(const Model::PutBucketRequestPaymentRequest& request) const;
  8164. /**
  8165. * <p>Sets the request payment configuration for a bucket. By default, the bucket
  8166. * owner pays for downloads from the bucket. This configuration parameter enables
  8167. * the bucket owner (only) to specify that the person requesting the download will
  8168. * be charged for the download. For more information, see <a
  8169. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester
  8170. * Pays Buckets</a>.</p> <p>The following operations are related to
  8171. * <code>PutBucketRequestPayment</code>:</p> <ul> <li> <p> <a
  8172. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  8173. * </p> </li> <li> <p> <a
  8174. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html">GetBucketRequestPayment</a>
  8175. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8176. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketRequestPayment">AWS
  8177. * API Reference</a></p>
  8178. *
  8179. * returns a future to the operation so that it can be executed in parallel to other requests.
  8180. */
  8181. virtual Model::PutBucketRequestPaymentOutcomeCallable PutBucketRequestPaymentCallable(const Model::PutBucketRequestPaymentRequest& request) const;
  8182. /**
  8183. * <p>Sets the request payment configuration for a bucket. By default, the bucket
  8184. * owner pays for downloads from the bucket. This configuration parameter enables
  8185. * the bucket owner (only) to specify that the person requesting the download will
  8186. * be charged for the download. For more information, see <a
  8187. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester
  8188. * Pays Buckets</a>.</p> <p>The following operations are related to
  8189. * <code>PutBucketRequestPayment</code>:</p> <ul> <li> <p> <a
  8190. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  8191. * </p> </li> <li> <p> <a
  8192. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html">GetBucketRequestPayment</a>
  8193. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8194. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketRequestPayment">AWS
  8195. * API Reference</a></p>
  8196. *
  8197. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  8198. */
  8199. virtual void PutBucketRequestPaymentAsync(const Model::PutBucketRequestPaymentRequest& request, const PutBucketRequestPaymentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  8200. /**
  8201. * <p>Sets the tags for a bucket.</p> <p>Use tags to organize your AWS bill to
  8202. * reflect your own cost structure. To do this, sign up to get your AWS account
  8203. * bill with tag key values included. Then, to see the cost of combined resources,
  8204. * organize your billing information according to resources with the same tag key
  8205. * values. For example, you can tag several resources with a specific application
  8206. * name, and then organize your billing information to see the total cost of that
  8207. * application across several services. For more information, see <a
  8208. * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Cost
  8209. * Allocation and Tagging</a>.</p> <p>Within a bucket, if you add a tag that
  8210. * has the same key as an existing tag, the new value overwrites the old value. For
  8211. * more information, see <a
  8212. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html">Using
  8213. * Cost Allocation in Amazon S3 Bucket Tags</a>.</p> <p>To use this
  8214. * operation, you must have permissions to perform the
  8215. * <code>s3:PutBucketTagging</code> action. The bucket owner has this permission by
  8216. * default and can grant this permission to others. For more information about
  8217. * permissions, see <a
  8218. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  8219. * Related to Bucket Subresource Operations</a> and <a
  8220. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  8221. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>
  8222. * <code>PutBucketTagging</code> has the following special errors:</p> <ul> <li>
  8223. * <p>Error code: <code>InvalidTagError</code> </p> <ul> <li> <p>Description: The
  8224. * tag provided was not a valid tag. This error can occur if the tag did not pass
  8225. * input validation. For information about tag restrictions, see <a
  8226. * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">User-Defined
  8227. * Tag Restrictions</a> and <a
  8228. * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html">AWS-Generated
  8229. * Cost Allocation Tag Restrictions</a>.</p> </li> </ul> </li> <li> <p>Error code:
  8230. * <code>MalformedXMLError</code> </p> <ul> <li> <p>Description: The XML provided
  8231. * does not match the schema.</p> </li> </ul> </li> <li> <p>Error code:
  8232. * <code>OperationAbortedError </code> </p> <ul> <li> <p>Description: A conflicting
  8233. * conditional action is currently in progress against this resource. Please try
  8234. * again.</p> </li> </ul> </li> <li> <p>Error code: <code>InternalError</code> </p>
  8235. * <ul> <li> <p>Description: The service was unable to apply the provided tag to
  8236. * the bucket.</p> </li> </ul> </li> </ul> <p>The following operations are related
  8237. * to <code>PutBucketTagging</code>:</p> <ul> <li> <p> <a
  8238. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>
  8239. * </p> </li> <li> <p> <a
  8240. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>
  8241. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8242. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketTagging">AWS
  8243. * API Reference</a></p>
  8244. */
  8245. virtual Model::PutBucketTaggingOutcome PutBucketTagging(const Model::PutBucketTaggingRequest& request) const;
  8246. /**
  8247. * <p>Sets the tags for a bucket.</p> <p>Use tags to organize your AWS bill to
  8248. * reflect your own cost structure. To do this, sign up to get your AWS account
  8249. * bill with tag key values included. Then, to see the cost of combined resources,
  8250. * organize your billing information according to resources with the same tag key
  8251. * values. For example, you can tag several resources with a specific application
  8252. * name, and then organize your billing information to see the total cost of that
  8253. * application across several services. For more information, see <a
  8254. * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Cost
  8255. * Allocation and Tagging</a>.</p> <p>Within a bucket, if you add a tag that
  8256. * has the same key as an existing tag, the new value overwrites the old value. For
  8257. * more information, see <a
  8258. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html">Using
  8259. * Cost Allocation in Amazon S3 Bucket Tags</a>.</p> <p>To use this
  8260. * operation, you must have permissions to perform the
  8261. * <code>s3:PutBucketTagging</code> action. The bucket owner has this permission by
  8262. * default and can grant this permission to others. For more information about
  8263. * permissions, see <a
  8264. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  8265. * Related to Bucket Subresource Operations</a> and <a
  8266. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  8267. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>
  8268. * <code>PutBucketTagging</code> has the following special errors:</p> <ul> <li>
  8269. * <p>Error code: <code>InvalidTagError</code> </p> <ul> <li> <p>Description: The
  8270. * tag provided was not a valid tag. This error can occur if the tag did not pass
  8271. * input validation. For information about tag restrictions, see <a
  8272. * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">User-Defined
  8273. * Tag Restrictions</a> and <a
  8274. * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html">AWS-Generated
  8275. * Cost Allocation Tag Restrictions</a>.</p> </li> </ul> </li> <li> <p>Error code:
  8276. * <code>MalformedXMLError</code> </p> <ul> <li> <p>Description: The XML provided
  8277. * does not match the schema.</p> </li> </ul> </li> <li> <p>Error code:
  8278. * <code>OperationAbortedError </code> </p> <ul> <li> <p>Description: A conflicting
  8279. * conditional action is currently in progress against this resource. Please try
  8280. * again.</p> </li> </ul> </li> <li> <p>Error code: <code>InternalError</code> </p>
  8281. * <ul> <li> <p>Description: The service was unable to apply the provided tag to
  8282. * the bucket.</p> </li> </ul> </li> </ul> <p>The following operations are related
  8283. * to <code>PutBucketTagging</code>:</p> <ul> <li> <p> <a
  8284. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>
  8285. * </p> </li> <li> <p> <a
  8286. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>
  8287. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8288. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketTagging">AWS
  8289. * API Reference</a></p>
  8290. *
  8291. * returns a future to the operation so that it can be executed in parallel to other requests.
  8292. */
  8293. virtual Model::PutBucketTaggingOutcomeCallable PutBucketTaggingCallable(const Model::PutBucketTaggingRequest& request) const;
  8294. /**
  8295. * <p>Sets the tags for a bucket.</p> <p>Use tags to organize your AWS bill to
  8296. * reflect your own cost structure. To do this, sign up to get your AWS account
  8297. * bill with tag key values included. Then, to see the cost of combined resources,
  8298. * organize your billing information according to resources with the same tag key
  8299. * values. For example, you can tag several resources with a specific application
  8300. * name, and then organize your billing information to see the total cost of that
  8301. * application across several services. For more information, see <a
  8302. * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Cost
  8303. * Allocation and Tagging</a>.</p> <p>Within a bucket, if you add a tag that
  8304. * has the same key as an existing tag, the new value overwrites the old value. For
  8305. * more information, see <a
  8306. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html">Using
  8307. * Cost Allocation in Amazon S3 Bucket Tags</a>.</p> <p>To use this
  8308. * operation, you must have permissions to perform the
  8309. * <code>s3:PutBucketTagging</code> action. The bucket owner has this permission by
  8310. * default and can grant this permission to others. For more information about
  8311. * permissions, see <a
  8312. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  8313. * Related to Bucket Subresource Operations</a> and <a
  8314. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  8315. * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>
  8316. * <code>PutBucketTagging</code> has the following special errors:</p> <ul> <li>
  8317. * <p>Error code: <code>InvalidTagError</code> </p> <ul> <li> <p>Description: The
  8318. * tag provided was not a valid tag. This error can occur if the tag did not pass
  8319. * input validation. For information about tag restrictions, see <a
  8320. * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">User-Defined
  8321. * Tag Restrictions</a> and <a
  8322. * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html">AWS-Generated
  8323. * Cost Allocation Tag Restrictions</a>.</p> </li> </ul> </li> <li> <p>Error code:
  8324. * <code>MalformedXMLError</code> </p> <ul> <li> <p>Description: The XML provided
  8325. * does not match the schema.</p> </li> </ul> </li> <li> <p>Error code:
  8326. * <code>OperationAbortedError </code> </p> <ul> <li> <p>Description: A conflicting
  8327. * conditional action is currently in progress against this resource. Please try
  8328. * again.</p> </li> </ul> </li> <li> <p>Error code: <code>InternalError</code> </p>
  8329. * <ul> <li> <p>Description: The service was unable to apply the provided tag to
  8330. * the bucket.</p> </li> </ul> </li> </ul> <p>The following operations are related
  8331. * to <code>PutBucketTagging</code>:</p> <ul> <li> <p> <a
  8332. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>
  8333. * </p> </li> <li> <p> <a
  8334. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>
  8335. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8336. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketTagging">AWS
  8337. * API Reference</a></p>
  8338. *
  8339. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  8340. */
  8341. virtual void PutBucketTaggingAsync(const Model::PutBucketTaggingRequest& request, const PutBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  8342. /**
  8343. * <p>Sets the versioning state of an existing bucket. To set the versioning state,
  8344. * you must be the bucket owner.</p> <p>You can set the versioning state with one
  8345. * of the following values:</p> <p> <b>Enabled</b>—Enables versioning for the
  8346. * objects in the bucket. All objects added to the bucket receive a unique version
  8347. * ID.</p> <p> <b>Suspended</b>—Disables versioning for the objects in the bucket.
  8348. * All objects added to the bucket receive the version ID null.</p> <p>If the
  8349. * versioning state has never been set on a bucket, it has no versioning state; a
  8350. * <a
  8351. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>
  8352. * request does not return a versioning state value.</p> <p>If the bucket owner
  8353. * enables MFA Delete in the bucket versioning configuration, the bucket owner must
  8354. * include the <code>x-amz-mfa request</code> header and the <code>Status</code>
  8355. * and the <code>MfaDelete</code> request elements in a request to set the
  8356. * versioning state of the bucket.</p> <p>If you have an object
  8357. * expiration lifecycle policy in your non-versioned bucket and you want to
  8358. * maintain the same permanent delete behavior when you enable versioning, you must
  8359. * add a noncurrent expiration policy. The noncurrent expiration lifecycle policy
  8360. * will manage the deletes of the noncurrent object versions in the version-enabled
  8361. * bucket. (A version-enabled bucket maintains one current and zero or more
  8362. * noncurrent object versions.) For more information, see <a
  8363. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config">Lifecycle
  8364. * and Versioning</a>.</p> <p class="title"> <b>Related Resources</b>
  8365. * </p> <ul> <li> <p> <a
  8366. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  8367. * </p> </li> <li> <p> <a
  8368. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  8369. * </p> </li> <li> <p> <a
  8370. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>
  8371. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8372. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketVersioning">AWS
  8373. * API Reference</a></p>
  8374. */
  8375. virtual Model::PutBucketVersioningOutcome PutBucketVersioning(const Model::PutBucketVersioningRequest& request) const;
  8376. /**
  8377. * <p>Sets the versioning state of an existing bucket. To set the versioning state,
  8378. * you must be the bucket owner.</p> <p>You can set the versioning state with one
  8379. * of the following values:</p> <p> <b>Enabled</b>—Enables versioning for the
  8380. * objects in the bucket. All objects added to the bucket receive a unique version
  8381. * ID.</p> <p> <b>Suspended</b>—Disables versioning for the objects in the bucket.
  8382. * All objects added to the bucket receive the version ID null.</p> <p>If the
  8383. * versioning state has never been set on a bucket, it has no versioning state; a
  8384. * <a
  8385. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>
  8386. * request does not return a versioning state value.</p> <p>If the bucket owner
  8387. * enables MFA Delete in the bucket versioning configuration, the bucket owner must
  8388. * include the <code>x-amz-mfa request</code> header and the <code>Status</code>
  8389. * and the <code>MfaDelete</code> request elements in a request to set the
  8390. * versioning state of the bucket.</p> <p>If you have an object
  8391. * expiration lifecycle policy in your non-versioned bucket and you want to
  8392. * maintain the same permanent delete behavior when you enable versioning, you must
  8393. * add a noncurrent expiration policy. The noncurrent expiration lifecycle policy
  8394. * will manage the deletes of the noncurrent object versions in the version-enabled
  8395. * bucket. (A version-enabled bucket maintains one current and zero or more
  8396. * noncurrent object versions.) For more information, see <a
  8397. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config">Lifecycle
  8398. * and Versioning</a>.</p> <p class="title"> <b>Related Resources</b>
  8399. * </p> <ul> <li> <p> <a
  8400. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  8401. * </p> </li> <li> <p> <a
  8402. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  8403. * </p> </li> <li> <p> <a
  8404. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>
  8405. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8406. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketVersioning">AWS
  8407. * API Reference</a></p>
  8408. *
  8409. * returns a future to the operation so that it can be executed in parallel to other requests.
  8410. */
  8411. virtual Model::PutBucketVersioningOutcomeCallable PutBucketVersioningCallable(const Model::PutBucketVersioningRequest& request) const;
  8412. /**
  8413. * <p>Sets the versioning state of an existing bucket. To set the versioning state,
  8414. * you must be the bucket owner.</p> <p>You can set the versioning state with one
  8415. * of the following values:</p> <p> <b>Enabled</b>—Enables versioning for the
  8416. * objects in the bucket. All objects added to the bucket receive a unique version
  8417. * ID.</p> <p> <b>Suspended</b>—Disables versioning for the objects in the bucket.
  8418. * All objects added to the bucket receive the version ID null.</p> <p>If the
  8419. * versioning state has never been set on a bucket, it has no versioning state; a
  8420. * <a
  8421. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>
  8422. * request does not return a versioning state value.</p> <p>If the bucket owner
  8423. * enables MFA Delete in the bucket versioning configuration, the bucket owner must
  8424. * include the <code>x-amz-mfa request</code> header and the <code>Status</code>
  8425. * and the <code>MfaDelete</code> request elements in a request to set the
  8426. * versioning state of the bucket.</p> <p>If you have an object
  8427. * expiration lifecycle policy in your non-versioned bucket and you want to
  8428. * maintain the same permanent delete behavior when you enable versioning, you must
  8429. * add a noncurrent expiration policy. The noncurrent expiration lifecycle policy
  8430. * will manage the deletes of the noncurrent object versions in the version-enabled
  8431. * bucket. (A version-enabled bucket maintains one current and zero or more
  8432. * noncurrent object versions.) For more information, see <a
  8433. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config">Lifecycle
  8434. * and Versioning</a>.</p> <p class="title"> <b>Related Resources</b>
  8435. * </p> <ul> <li> <p> <a
  8436. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
  8437. * </p> </li> <li> <p> <a
  8438. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
  8439. * </p> </li> <li> <p> <a
  8440. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>
  8441. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8442. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketVersioning">AWS
  8443. * API Reference</a></p>
  8444. *
  8445. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  8446. */
  8447. virtual void PutBucketVersioningAsync(const Model::PutBucketVersioningRequest& request, const PutBucketVersioningResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  8448. /**
  8449. * <p>Sets the configuration of the website that is specified in the
  8450. * <code>website</code> subresource. To configure a bucket as a website, you can
  8451. * add this subresource on the bucket with website configuration information such
  8452. * as the file name of the index document and any redirect rules. For more
  8453. * information, see <a
  8454. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
  8455. * Websites on Amazon S3</a>.</p> <p>This PUT action requires the
  8456. * <code>S3:PutBucketWebsite</code> permission. By default, only the bucket owner
  8457. * can configure the website attached to a bucket; however, bucket owners can allow
  8458. * other users to set the website configuration by writing a bucket policy that
  8459. * grants them the <code>S3:PutBucketWebsite</code> permission.</p> <p>To redirect
  8460. * all website requests sent to the bucket's website endpoint, you add a website
  8461. * configuration with the following elements. Because all requests are sent to
  8462. * another website, you don't need to provide index document name for the
  8463. * bucket.</p> <ul> <li> <p> <code>WebsiteConfiguration</code> </p> </li> <li> <p>
  8464. * <code>RedirectAllRequestsTo</code> </p> </li> <li> <p> <code>HostName</code>
  8465. * </p> </li> <li> <p> <code>Protocol</code> </p> </li> </ul> <p>If you want
  8466. * granular control over redirects, you can use the following elements to add
  8467. * routing rules that describe conditions for redirecting requests and information
  8468. * about the redirect destination. In this case, the website configuration must
  8469. * provide an index document for the bucket, because some requests might not be
  8470. * redirected. </p> <ul> <li> <p> <code>WebsiteConfiguration</code> </p> </li> <li>
  8471. * <p> <code>IndexDocument</code> </p> </li> <li> <p> <code>Suffix</code> </p>
  8472. * </li> <li> <p> <code>ErrorDocument</code> </p> </li> <li> <p> <code>Key</code>
  8473. * </p> </li> <li> <p> <code>RoutingRules</code> </p> </li> <li> <p>
  8474. * <code>RoutingRule</code> </p> </li> <li> <p> <code>Condition</code> </p> </li>
  8475. * <li> <p> <code>HttpErrorCodeReturnedEquals</code> </p> </li> <li> <p>
  8476. * <code>KeyPrefixEquals</code> </p> </li> <li> <p> <code>Redirect</code> </p>
  8477. * </li> <li> <p> <code>Protocol</code> </p> </li> <li> <p> <code>HostName</code>
  8478. * </p> </li> <li> <p> <code>ReplaceKeyPrefixWith</code> </p> </li> <li> <p>
  8479. * <code>ReplaceKeyWith</code> </p> </li> <li> <p> <code>HttpRedirectCode</code>
  8480. * </p> </li> </ul> <p>Amazon S3 has a limitation of 50 routing rules per website
  8481. * configuration. If you require more than 50 routing rules, you can use object
  8482. * redirect. For more information, see <a
  8483. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html">Configuring
  8484. * an Object Redirect</a> in the <i>Amazon S3 User Guide</i>.</p><p><h3>See
  8485. * Also:</h3> <a
  8486. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketWebsite">AWS
  8487. * API Reference</a></p>
  8488. */
  8489. virtual Model::PutBucketWebsiteOutcome PutBucketWebsite(const Model::PutBucketWebsiteRequest& request) const;
  8490. /**
  8491. * <p>Sets the configuration of the website that is specified in the
  8492. * <code>website</code> subresource. To configure a bucket as a website, you can
  8493. * add this subresource on the bucket with website configuration information such
  8494. * as the file name of the index document and any redirect rules. For more
  8495. * information, see <a
  8496. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
  8497. * Websites on Amazon S3</a>.</p> <p>This PUT action requires the
  8498. * <code>S3:PutBucketWebsite</code> permission. By default, only the bucket owner
  8499. * can configure the website attached to a bucket; however, bucket owners can allow
  8500. * other users to set the website configuration by writing a bucket policy that
  8501. * grants them the <code>S3:PutBucketWebsite</code> permission.</p> <p>To redirect
  8502. * all website requests sent to the bucket's website endpoint, you add a website
  8503. * configuration with the following elements. Because all requests are sent to
  8504. * another website, you don't need to provide index document name for the
  8505. * bucket.</p> <ul> <li> <p> <code>WebsiteConfiguration</code> </p> </li> <li> <p>
  8506. * <code>RedirectAllRequestsTo</code> </p> </li> <li> <p> <code>HostName</code>
  8507. * </p> </li> <li> <p> <code>Protocol</code> </p> </li> </ul> <p>If you want
  8508. * granular control over redirects, you can use the following elements to add
  8509. * routing rules that describe conditions for redirecting requests and information
  8510. * about the redirect destination. In this case, the website configuration must
  8511. * provide an index document for the bucket, because some requests might not be
  8512. * redirected. </p> <ul> <li> <p> <code>WebsiteConfiguration</code> </p> </li> <li>
  8513. * <p> <code>IndexDocument</code> </p> </li> <li> <p> <code>Suffix</code> </p>
  8514. * </li> <li> <p> <code>ErrorDocument</code> </p> </li> <li> <p> <code>Key</code>
  8515. * </p> </li> <li> <p> <code>RoutingRules</code> </p> </li> <li> <p>
  8516. * <code>RoutingRule</code> </p> </li> <li> <p> <code>Condition</code> </p> </li>
  8517. * <li> <p> <code>HttpErrorCodeReturnedEquals</code> </p> </li> <li> <p>
  8518. * <code>KeyPrefixEquals</code> </p> </li> <li> <p> <code>Redirect</code> </p>
  8519. * </li> <li> <p> <code>Protocol</code> </p> </li> <li> <p> <code>HostName</code>
  8520. * </p> </li> <li> <p> <code>ReplaceKeyPrefixWith</code> </p> </li> <li> <p>
  8521. * <code>ReplaceKeyWith</code> </p> </li> <li> <p> <code>HttpRedirectCode</code>
  8522. * </p> </li> </ul> <p>Amazon S3 has a limitation of 50 routing rules per website
  8523. * configuration. If you require more than 50 routing rules, you can use object
  8524. * redirect. For more information, see <a
  8525. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html">Configuring
  8526. * an Object Redirect</a> in the <i>Amazon S3 User Guide</i>.</p><p><h3>See
  8527. * Also:</h3> <a
  8528. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketWebsite">AWS
  8529. * API Reference</a></p>
  8530. *
  8531. * returns a future to the operation so that it can be executed in parallel to other requests.
  8532. */
  8533. virtual Model::PutBucketWebsiteOutcomeCallable PutBucketWebsiteCallable(const Model::PutBucketWebsiteRequest& request) const;
  8534. /**
  8535. * <p>Sets the configuration of the website that is specified in the
  8536. * <code>website</code> subresource. To configure a bucket as a website, you can
  8537. * add this subresource on the bucket with website configuration information such
  8538. * as the file name of the index document and any redirect rules. For more
  8539. * information, see <a
  8540. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
  8541. * Websites on Amazon S3</a>.</p> <p>This PUT action requires the
  8542. * <code>S3:PutBucketWebsite</code> permission. By default, only the bucket owner
  8543. * can configure the website attached to a bucket; however, bucket owners can allow
  8544. * other users to set the website configuration by writing a bucket policy that
  8545. * grants them the <code>S3:PutBucketWebsite</code> permission.</p> <p>To redirect
  8546. * all website requests sent to the bucket's website endpoint, you add a website
  8547. * configuration with the following elements. Because all requests are sent to
  8548. * another website, you don't need to provide index document name for the
  8549. * bucket.</p> <ul> <li> <p> <code>WebsiteConfiguration</code> </p> </li> <li> <p>
  8550. * <code>RedirectAllRequestsTo</code> </p> </li> <li> <p> <code>HostName</code>
  8551. * </p> </li> <li> <p> <code>Protocol</code> </p> </li> </ul> <p>If you want
  8552. * granular control over redirects, you can use the following elements to add
  8553. * routing rules that describe conditions for redirecting requests and information
  8554. * about the redirect destination. In this case, the website configuration must
  8555. * provide an index document for the bucket, because some requests might not be
  8556. * redirected. </p> <ul> <li> <p> <code>WebsiteConfiguration</code> </p> </li> <li>
  8557. * <p> <code>IndexDocument</code> </p> </li> <li> <p> <code>Suffix</code> </p>
  8558. * </li> <li> <p> <code>ErrorDocument</code> </p> </li> <li> <p> <code>Key</code>
  8559. * </p> </li> <li> <p> <code>RoutingRules</code> </p> </li> <li> <p>
  8560. * <code>RoutingRule</code> </p> </li> <li> <p> <code>Condition</code> </p> </li>
  8561. * <li> <p> <code>HttpErrorCodeReturnedEquals</code> </p> </li> <li> <p>
  8562. * <code>KeyPrefixEquals</code> </p> </li> <li> <p> <code>Redirect</code> </p>
  8563. * </li> <li> <p> <code>Protocol</code> </p> </li> <li> <p> <code>HostName</code>
  8564. * </p> </li> <li> <p> <code>ReplaceKeyPrefixWith</code> </p> </li> <li> <p>
  8565. * <code>ReplaceKeyWith</code> </p> </li> <li> <p> <code>HttpRedirectCode</code>
  8566. * </p> </li> </ul> <p>Amazon S3 has a limitation of 50 routing rules per website
  8567. * configuration. If you require more than 50 routing rules, you can use object
  8568. * redirect. For more information, see <a
  8569. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html">Configuring
  8570. * an Object Redirect</a> in the <i>Amazon S3 User Guide</i>.</p><p><h3>See
  8571. * Also:</h3> <a
  8572. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketWebsite">AWS
  8573. * API Reference</a></p>
  8574. *
  8575. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  8576. */
  8577. virtual void PutBucketWebsiteAsync(const Model::PutBucketWebsiteRequest& request, const PutBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  8578. /**
  8579. * <p>Adds an object to a bucket. You must have WRITE permissions on a bucket to
  8580. * add an object to it.</p> <p>Amazon S3 never adds partial objects; if you receive
  8581. * a success response, Amazon S3 added the entire object to the bucket.</p>
  8582. * <p>Amazon S3 is a distributed system. If it receives multiple write requests for
  8583. * the same object simultaneously, it overwrites all but the last object written.
  8584. * Amazon S3 does not provide object locking; if you need this, make sure to build
  8585. * it into your application layer or use versioning instead.</p> <p>To ensure that
  8586. * data is not corrupted traversing the network, use the <code>Content-MD5</code>
  8587. * header. When you use this header, Amazon S3 checks the object against the
  8588. * provided MD5 value and, if they do not match, returns an error. Additionally,
  8589. * you can calculate the MD5 while putting an object to Amazon S3 and compare the
  8590. * returned ETag to the calculated MD5 value.</p> <p> The
  8591. * <code>Content-MD5</code> header is required for any request to upload an object
  8592. * with a retention period configured using Amazon S3 Object Lock. For more
  8593. * information about Amazon S3 Object Lock, see <a
  8594. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html">Amazon
  8595. * S3 Object Lock Overview</a> in the <i>Amazon S3 User Guide</i>. </p> <p>
  8596. * <b>Server-side Encryption</b> </p> <p>You can optionally request server-side
  8597. * encryption. With server-side encryption, Amazon S3 encrypts your data as it
  8598. * writes it to disks in its data centers and decrypts the data when you access it.
  8599. * You have the option to provide your own encryption key or use AWS managed
  8600. * encryption keys (SSE-S3 or SSE-KMS). For more information, see <a
  8601. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using
  8602. * Server-Side Encryption</a>.</p> <p>If you request server-side encryption using
  8603. * AWS Key Management Service (SSE-KMS), you can enable an S3 Bucket Key at the
  8604. * object-level. For more information, see <a
  8605. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
  8606. * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p> <b>Access Control
  8607. * List (ACL)-Specific Request Headers</b> </p> <p>You can use headers to grant
  8608. * ACL- based permissions. By default, all objects are private. Only the owner has
  8609. * full access control. When adding a new object, you can grant permissions to
  8610. * individual AWS accounts or to predefined groups defined by Amazon S3. These
  8611. * permissions are then added to the ACL on the object. For more information, see
  8612. * <a
  8613. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  8614. * Control List (ACL) Overview</a> and <a
  8615. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing
  8616. * ACLs Using the REST API</a>. </p> <p> <b>Storage Class Options</b> </p> <p>By
  8617. * default, Amazon S3 uses the STANDARD Storage Class to store newly created
  8618. * objects. The STANDARD storage class provides high durability and high
  8619. * availability. Depending on performance needs, you can specify a different
  8620. * Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For
  8621. * more information, see <a
  8622. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage
  8623. * Classes</a> in the <i>Amazon S3 Service Developer Guide</i>.</p> <p>
  8624. * <b>Versioning</b> </p> <p>If you enable versioning for a bucket, Amazon S3
  8625. * automatically generates a unique version ID for the object being stored. Amazon
  8626. * S3 returns this ID in the response. When you enable versioning for a bucket, if
  8627. * Amazon S3 receives multiple write requests for the same object simultaneously,
  8628. * it stores all of the objects.</p> <p>For more information about versioning, see
  8629. * <a
  8630. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html">Adding
  8631. * Objects to Versioning Enabled Buckets</a>. For information about returning the
  8632. * versioning state of a bucket, see <a
  8633. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>.
  8634. * </p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  8635. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
  8636. * </p> </li> <li> <p> <a
  8637. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  8638. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8639. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObject">AWS API
  8640. * Reference</a></p>
  8641. */
  8642. virtual Model::PutObjectOutcome PutObject(const Model::PutObjectRequest& request) const;
  8643. /**
  8644. * <p>Adds an object to a bucket. You must have WRITE permissions on a bucket to
  8645. * add an object to it.</p> <p>Amazon S3 never adds partial objects; if you receive
  8646. * a success response, Amazon S3 added the entire object to the bucket.</p>
  8647. * <p>Amazon S3 is a distributed system. If it receives multiple write requests for
  8648. * the same object simultaneously, it overwrites all but the last object written.
  8649. * Amazon S3 does not provide object locking; if you need this, make sure to build
  8650. * it into your application layer or use versioning instead.</p> <p>To ensure that
  8651. * data is not corrupted traversing the network, use the <code>Content-MD5</code>
  8652. * header. When you use this header, Amazon S3 checks the object against the
  8653. * provided MD5 value and, if they do not match, returns an error. Additionally,
  8654. * you can calculate the MD5 while putting an object to Amazon S3 and compare the
  8655. * returned ETag to the calculated MD5 value.</p> <p> The
  8656. * <code>Content-MD5</code> header is required for any request to upload an object
  8657. * with a retention period configured using Amazon S3 Object Lock. For more
  8658. * information about Amazon S3 Object Lock, see <a
  8659. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html">Amazon
  8660. * S3 Object Lock Overview</a> in the <i>Amazon S3 User Guide</i>. </p> <p>
  8661. * <b>Server-side Encryption</b> </p> <p>You can optionally request server-side
  8662. * encryption. With server-side encryption, Amazon S3 encrypts your data as it
  8663. * writes it to disks in its data centers and decrypts the data when you access it.
  8664. * You have the option to provide your own encryption key or use AWS managed
  8665. * encryption keys (SSE-S3 or SSE-KMS). For more information, see <a
  8666. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using
  8667. * Server-Side Encryption</a>.</p> <p>If you request server-side encryption using
  8668. * AWS Key Management Service (SSE-KMS), you can enable an S3 Bucket Key at the
  8669. * object-level. For more information, see <a
  8670. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
  8671. * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p> <b>Access Control
  8672. * List (ACL)-Specific Request Headers</b> </p> <p>You can use headers to grant
  8673. * ACL- based permissions. By default, all objects are private. Only the owner has
  8674. * full access control. When adding a new object, you can grant permissions to
  8675. * individual AWS accounts or to predefined groups defined by Amazon S3. These
  8676. * permissions are then added to the ACL on the object. For more information, see
  8677. * <a
  8678. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  8679. * Control List (ACL) Overview</a> and <a
  8680. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing
  8681. * ACLs Using the REST API</a>. </p> <p> <b>Storage Class Options</b> </p> <p>By
  8682. * default, Amazon S3 uses the STANDARD Storage Class to store newly created
  8683. * objects. The STANDARD storage class provides high durability and high
  8684. * availability. Depending on performance needs, you can specify a different
  8685. * Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For
  8686. * more information, see <a
  8687. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage
  8688. * Classes</a> in the <i>Amazon S3 Service Developer Guide</i>.</p> <p>
  8689. * <b>Versioning</b> </p> <p>If you enable versioning for a bucket, Amazon S3
  8690. * automatically generates a unique version ID for the object being stored. Amazon
  8691. * S3 returns this ID in the response. When you enable versioning for a bucket, if
  8692. * Amazon S3 receives multiple write requests for the same object simultaneously,
  8693. * it stores all of the objects.</p> <p>For more information about versioning, see
  8694. * <a
  8695. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html">Adding
  8696. * Objects to Versioning Enabled Buckets</a>. For information about returning the
  8697. * versioning state of a bucket, see <a
  8698. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>.
  8699. * </p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  8700. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
  8701. * </p> </li> <li> <p> <a
  8702. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  8703. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8704. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObject">AWS API
  8705. * Reference</a></p>
  8706. *
  8707. * returns a future to the operation so that it can be executed in parallel to other requests.
  8708. */
  8709. virtual Model::PutObjectOutcomeCallable PutObjectCallable(const Model::PutObjectRequest& request) const;
  8710. /**
  8711. * <p>Adds an object to a bucket. You must have WRITE permissions on a bucket to
  8712. * add an object to it.</p> <p>Amazon S3 never adds partial objects; if you receive
  8713. * a success response, Amazon S3 added the entire object to the bucket.</p>
  8714. * <p>Amazon S3 is a distributed system. If it receives multiple write requests for
  8715. * the same object simultaneously, it overwrites all but the last object written.
  8716. * Amazon S3 does not provide object locking; if you need this, make sure to build
  8717. * it into your application layer or use versioning instead.</p> <p>To ensure that
  8718. * data is not corrupted traversing the network, use the <code>Content-MD5</code>
  8719. * header. When you use this header, Amazon S3 checks the object against the
  8720. * provided MD5 value and, if they do not match, returns an error. Additionally,
  8721. * you can calculate the MD5 while putting an object to Amazon S3 and compare the
  8722. * returned ETag to the calculated MD5 value.</p> <p> The
  8723. * <code>Content-MD5</code> header is required for any request to upload an object
  8724. * with a retention period configured using Amazon S3 Object Lock. For more
  8725. * information about Amazon S3 Object Lock, see <a
  8726. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html">Amazon
  8727. * S3 Object Lock Overview</a> in the <i>Amazon S3 User Guide</i>. </p> <p>
  8728. * <b>Server-side Encryption</b> </p> <p>You can optionally request server-side
  8729. * encryption. With server-side encryption, Amazon S3 encrypts your data as it
  8730. * writes it to disks in its data centers and decrypts the data when you access it.
  8731. * You have the option to provide your own encryption key or use AWS managed
  8732. * encryption keys (SSE-S3 or SSE-KMS). For more information, see <a
  8733. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using
  8734. * Server-Side Encryption</a>.</p> <p>If you request server-side encryption using
  8735. * AWS Key Management Service (SSE-KMS), you can enable an S3 Bucket Key at the
  8736. * object-level. For more information, see <a
  8737. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
  8738. * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p> <b>Access Control
  8739. * List (ACL)-Specific Request Headers</b> </p> <p>You can use headers to grant
  8740. * ACL- based permissions. By default, all objects are private. Only the owner has
  8741. * full access control. When adding a new object, you can grant permissions to
  8742. * individual AWS accounts or to predefined groups defined by Amazon S3. These
  8743. * permissions are then added to the ACL on the object. For more information, see
  8744. * <a
  8745. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  8746. * Control List (ACL) Overview</a> and <a
  8747. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing
  8748. * ACLs Using the REST API</a>. </p> <p> <b>Storage Class Options</b> </p> <p>By
  8749. * default, Amazon S3 uses the STANDARD Storage Class to store newly created
  8750. * objects. The STANDARD storage class provides high durability and high
  8751. * availability. Depending on performance needs, you can specify a different
  8752. * Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For
  8753. * more information, see <a
  8754. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage
  8755. * Classes</a> in the <i>Amazon S3 Service Developer Guide</i>.</p> <p>
  8756. * <b>Versioning</b> </p> <p>If you enable versioning for a bucket, Amazon S3
  8757. * automatically generates a unique version ID for the object being stored. Amazon
  8758. * S3 returns this ID in the response. When you enable versioning for a bucket, if
  8759. * Amazon S3 receives multiple write requests for the same object simultaneously,
  8760. * it stores all of the objects.</p> <p>For more information about versioning, see
  8761. * <a
  8762. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html">Adding
  8763. * Objects to Versioning Enabled Buckets</a>. For information about returning the
  8764. * versioning state of a bucket, see <a
  8765. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>.
  8766. * </p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  8767. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
  8768. * </p> </li> <li> <p> <a
  8769. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
  8770. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8771. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObject">AWS API
  8772. * Reference</a></p>
  8773. *
  8774. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  8775. */
  8776. virtual void PutObjectAsync(const Model::PutObjectRequest& request, const PutObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  8777. /**
  8778. * <p>Uses the <code>acl</code> subresource to set the access control list (ACL)
  8779. * permissions for a new or existing object in an S3 bucket. You must have
  8780. * <code>WRITE_ACP</code> permission to set the ACL of an object. For more
  8781. * information, see <a
  8782. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions">What
  8783. * permissions can I grant?</a> in the <i>Amazon S3 User Guide</i>.</p> <p>This
  8784. * action is not supported by Amazon S3 on Outposts.</p> <p>Depending on your
  8785. * application needs, you can choose to set the ACL on an object using either the
  8786. * request body or the headers. For example, if you have an existing application
  8787. * that updates a bucket ACL using the request body, you can continue to use that
  8788. * approach. For more information, see <a
  8789. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  8790. * Control List (ACL) Overview</a> in the <i>Amazon S3 Developer Guide</i>.</p> <p>
  8791. * <b>Access Permissions</b> </p> <p>You can set access permissions using one of
  8792. * the following methods:</p> <ul> <li> <p>Specify a canned ACL with the
  8793. * <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined
  8794. * ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and
  8795. * permissions. Specify the canned ACL name as the value of <code>x-amz-ac</code>l.
  8796. * If you use this header, you cannot use other access control-specific headers in
  8797. * your request. For more information, see <a
  8798. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  8799. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
  8800. * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
  8801. * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
  8802. * headers. When using these headers, you specify explicit access permissions and
  8803. * grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If
  8804. * you use these ACL-specific headers, you cannot use <code>x-amz-acl</code> header
  8805. * to set a canned ACL. These parameters map to the set of permissions that Amazon
  8806. * S3 supports in an ACL. For more information, see <a
  8807. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  8808. * Control List (ACL) Overview</a>.</p> <p>You specify each grantee as a type=value
  8809. * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
  8810. * – if the value specified is the canonical user ID of an AWS account</p> </li>
  8811. * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
  8812. * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
  8813. * the email address of an AWS account</p> <p>Using email addresses to
  8814. * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
  8815. * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
  8816. * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
  8817. * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
  8818. * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
  8819. * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
  8820. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  8821. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
  8822. * example, the following <code>x-amz-grant-read</code> header grants list objects
  8823. * permission to the two AWS accounts identified by their email addresses.</p> <p>
  8824. * <code>x-amz-grant-read: emailAddress="xyz@amazon.com",
  8825. * emailAddress="abc@amazon.com" </code> </p> </li> </ul> <p>You can use either a
  8826. * canned ACL or specify access permissions explicitly. You cannot do both.</p> <p>
  8827. * <b>Grantee Values</b> </p> <p>You can specify the person (grantee) to whom
  8828. * you're assigning access rights (using request elements) in the following
  8829. * ways:</p> <ul> <li> <p>By the person's ID:</p> <p> <code>&lt;Grantee
  8830. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  8831. * xsi:type="CanonicalUser"&gt;&lt;ID&gt;&lt;&gt;ID&lt;&gt;&lt;/ID&gt;&lt;DisplayName&gt;&lt;&gt;GranteesEmail&lt;&gt;&lt;/DisplayName&gt;
  8832. * &lt;/Grantee&gt;</code> </p> <p>DisplayName is optional and ignored in the
  8833. * request.</p> </li> <li> <p>By URI:</p> <p> <code>&lt;Grantee
  8834. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  8835. * xsi:type="Group"&gt;&lt;URI&gt;&lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;&lt;/URI&gt;&lt;/Grantee&gt;</code>
  8836. * </p> </li> <li> <p>By Email address:</p> <p> <code>&lt;Grantee
  8837. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  8838. * xsi:type="AmazonCustomerByEmail"&gt;&lt;EmailAddress&gt;&lt;&gt;Grantees@email.com&lt;&gt;&lt;/EmailAddress&gt;lt;/Grantee&gt;</code>
  8839. * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
  8840. * Object acl request, appears as the CanonicalUser.</p> <p>Using email
  8841. * addresses to specify a grantee is only supported in the following AWS Regions:
  8842. * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
  8843. * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
  8844. * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
  8845. * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
  8846. * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
  8847. * Regions and endpoints, see <a
  8848. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  8849. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>
  8850. * <b>Versioning</b> </p> <p>The ACL of an object is set at the object version
  8851. * level. By default, PUT sets the ACL of the current version of an object. To set
  8852. * the ACL of a different version, use the <code>versionId</code> subresource.</p>
  8853. * <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  8854. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
  8855. * </p> </li> <li> <p> <a
  8856. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  8857. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8858. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAcl">AWS API
  8859. * Reference</a></p>
  8860. */
  8861. virtual Model::PutObjectAclOutcome PutObjectAcl(const Model::PutObjectAclRequest& request) const;
  8862. /**
  8863. * <p>Uses the <code>acl</code> subresource to set the access control list (ACL)
  8864. * permissions for a new or existing object in an S3 bucket. You must have
  8865. * <code>WRITE_ACP</code> permission to set the ACL of an object. For more
  8866. * information, see <a
  8867. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions">What
  8868. * permissions can I grant?</a> in the <i>Amazon S3 User Guide</i>.</p> <p>This
  8869. * action is not supported by Amazon S3 on Outposts.</p> <p>Depending on your
  8870. * application needs, you can choose to set the ACL on an object using either the
  8871. * request body or the headers. For example, if you have an existing application
  8872. * that updates a bucket ACL using the request body, you can continue to use that
  8873. * approach. For more information, see <a
  8874. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  8875. * Control List (ACL) Overview</a> in the <i>Amazon S3 Developer Guide</i>.</p> <p>
  8876. * <b>Access Permissions</b> </p> <p>You can set access permissions using one of
  8877. * the following methods:</p> <ul> <li> <p>Specify a canned ACL with the
  8878. * <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined
  8879. * ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and
  8880. * permissions. Specify the canned ACL name as the value of <code>x-amz-ac</code>l.
  8881. * If you use this header, you cannot use other access control-specific headers in
  8882. * your request. For more information, see <a
  8883. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  8884. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
  8885. * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
  8886. * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
  8887. * headers. When using these headers, you specify explicit access permissions and
  8888. * grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If
  8889. * you use these ACL-specific headers, you cannot use <code>x-amz-acl</code> header
  8890. * to set a canned ACL. These parameters map to the set of permissions that Amazon
  8891. * S3 supports in an ACL. For more information, see <a
  8892. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  8893. * Control List (ACL) Overview</a>.</p> <p>You specify each grantee as a type=value
  8894. * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
  8895. * – if the value specified is the canonical user ID of an AWS account</p> </li>
  8896. * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
  8897. * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
  8898. * the email address of an AWS account</p> <p>Using email addresses to
  8899. * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
  8900. * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
  8901. * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
  8902. * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
  8903. * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
  8904. * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
  8905. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  8906. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
  8907. * example, the following <code>x-amz-grant-read</code> header grants list objects
  8908. * permission to the two AWS accounts identified by their email addresses.</p> <p>
  8909. * <code>x-amz-grant-read: emailAddress="xyz@amazon.com",
  8910. * emailAddress="abc@amazon.com" </code> </p> </li> </ul> <p>You can use either a
  8911. * canned ACL or specify access permissions explicitly. You cannot do both.</p> <p>
  8912. * <b>Grantee Values</b> </p> <p>You can specify the person (grantee) to whom
  8913. * you're assigning access rights (using request elements) in the following
  8914. * ways:</p> <ul> <li> <p>By the person's ID:</p> <p> <code>&lt;Grantee
  8915. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  8916. * xsi:type="CanonicalUser"&gt;&lt;ID&gt;&lt;&gt;ID&lt;&gt;&lt;/ID&gt;&lt;DisplayName&gt;&lt;&gt;GranteesEmail&lt;&gt;&lt;/DisplayName&gt;
  8917. * &lt;/Grantee&gt;</code> </p> <p>DisplayName is optional and ignored in the
  8918. * request.</p> </li> <li> <p>By URI:</p> <p> <code>&lt;Grantee
  8919. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  8920. * xsi:type="Group"&gt;&lt;URI&gt;&lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;&lt;/URI&gt;&lt;/Grantee&gt;</code>
  8921. * </p> </li> <li> <p>By Email address:</p> <p> <code>&lt;Grantee
  8922. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  8923. * xsi:type="AmazonCustomerByEmail"&gt;&lt;EmailAddress&gt;&lt;&gt;Grantees@email.com&lt;&gt;&lt;/EmailAddress&gt;lt;/Grantee&gt;</code>
  8924. * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
  8925. * Object acl request, appears as the CanonicalUser.</p> <p>Using email
  8926. * addresses to specify a grantee is only supported in the following AWS Regions:
  8927. * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
  8928. * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
  8929. * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
  8930. * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
  8931. * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
  8932. * Regions and endpoints, see <a
  8933. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  8934. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>
  8935. * <b>Versioning</b> </p> <p>The ACL of an object is set at the object version
  8936. * level. By default, PUT sets the ACL of the current version of an object. To set
  8937. * the ACL of a different version, use the <code>versionId</code> subresource.</p>
  8938. * <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  8939. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
  8940. * </p> </li> <li> <p> <a
  8941. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  8942. * </p> </li> </ul><p><h3>See Also:</h3> <a
  8943. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAcl">AWS API
  8944. * Reference</a></p>
  8945. *
  8946. * returns a future to the operation so that it can be executed in parallel to other requests.
  8947. */
  8948. virtual Model::PutObjectAclOutcomeCallable PutObjectAclCallable(const Model::PutObjectAclRequest& request) const;
  8949. /**
  8950. * <p>Uses the <code>acl</code> subresource to set the access control list (ACL)
  8951. * permissions for a new or existing object in an S3 bucket. You must have
  8952. * <code>WRITE_ACP</code> permission to set the ACL of an object. For more
  8953. * information, see <a
  8954. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions">What
  8955. * permissions can I grant?</a> in the <i>Amazon S3 User Guide</i>.</p> <p>This
  8956. * action is not supported by Amazon S3 on Outposts.</p> <p>Depending on your
  8957. * application needs, you can choose to set the ACL on an object using either the
  8958. * request body or the headers. For example, if you have an existing application
  8959. * that updates a bucket ACL using the request body, you can continue to use that
  8960. * approach. For more information, see <a
  8961. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  8962. * Control List (ACL) Overview</a> in the <i>Amazon S3 Developer Guide</i>.</p> <p>
  8963. * <b>Access Permissions</b> </p> <p>You can set access permissions using one of
  8964. * the following methods:</p> <ul> <li> <p>Specify a canned ACL with the
  8965. * <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined
  8966. * ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and
  8967. * permissions. Specify the canned ACL name as the value of <code>x-amz-ac</code>l.
  8968. * If you use this header, you cannot use other access control-specific headers in
  8969. * your request. For more information, see <a
  8970. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
  8971. * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
  8972. * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
  8973. * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
  8974. * headers. When using these headers, you specify explicit access permissions and
  8975. * grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If
  8976. * you use these ACL-specific headers, you cannot use <code>x-amz-acl</code> header
  8977. * to set a canned ACL. These parameters map to the set of permissions that Amazon
  8978. * S3 supports in an ACL. For more information, see <a
  8979. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
  8980. * Control List (ACL) Overview</a>.</p> <p>You specify each grantee as a type=value
  8981. * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
  8982. * – if the value specified is the canonical user ID of an AWS account</p> </li>
  8983. * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
  8984. * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
  8985. * the email address of an AWS account</p> <p>Using email addresses to
  8986. * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
  8987. * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
  8988. * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
  8989. * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
  8990. * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
  8991. * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
  8992. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  8993. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
  8994. * example, the following <code>x-amz-grant-read</code> header grants list objects
  8995. * permission to the two AWS accounts identified by their email addresses.</p> <p>
  8996. * <code>x-amz-grant-read: emailAddress="xyz@amazon.com",
  8997. * emailAddress="abc@amazon.com" </code> </p> </li> </ul> <p>You can use either a
  8998. * canned ACL or specify access permissions explicitly. You cannot do both.</p> <p>
  8999. * <b>Grantee Values</b> </p> <p>You can specify the person (grantee) to whom
  9000. * you're assigning access rights (using request elements) in the following
  9001. * ways:</p> <ul> <li> <p>By the person's ID:</p> <p> <code>&lt;Grantee
  9002. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  9003. * xsi:type="CanonicalUser"&gt;&lt;ID&gt;&lt;&gt;ID&lt;&gt;&lt;/ID&gt;&lt;DisplayName&gt;&lt;&gt;GranteesEmail&lt;&gt;&lt;/DisplayName&gt;
  9004. * &lt;/Grantee&gt;</code> </p> <p>DisplayName is optional and ignored in the
  9005. * request.</p> </li> <li> <p>By URI:</p> <p> <code>&lt;Grantee
  9006. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  9007. * xsi:type="Group"&gt;&lt;URI&gt;&lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;&lt;/URI&gt;&lt;/Grantee&gt;</code>
  9008. * </p> </li> <li> <p>By Email address:</p> <p> <code>&lt;Grantee
  9009. * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  9010. * xsi:type="AmazonCustomerByEmail"&gt;&lt;EmailAddress&gt;&lt;&gt;Grantees@email.com&lt;&gt;&lt;/EmailAddress&gt;lt;/Grantee&gt;</code>
  9011. * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
  9012. * Object acl request, appears as the CanonicalUser.</p> <p>Using email
  9013. * addresses to specify a grantee is only supported in the following AWS Regions:
  9014. * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
  9015. * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
  9016. * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
  9017. * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
  9018. * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
  9019. * Regions and endpoints, see <a
  9020. * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
  9021. * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>
  9022. * <b>Versioning</b> </p> <p>The ACL of an object is set at the object version
  9023. * level. By default, PUT sets the ACL of the current version of an object. To set
  9024. * the ACL of a different version, use the <code>versionId</code> subresource.</p>
  9025. * <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  9026. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
  9027. * </p> </li> <li> <p> <a
  9028. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  9029. * </p> </li> </ul><p><h3>See Also:</h3> <a
  9030. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAcl">AWS API
  9031. * Reference</a></p>
  9032. *
  9033. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  9034. */
  9035. virtual void PutObjectAclAsync(const Model::PutObjectAclRequest& request, const PutObjectAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  9036. /**
  9037. * <p>Applies a Legal Hold configuration to the specified object. For more
  9038. * information, see <a
  9039. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  9040. * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
  9041. * Outposts.</p><p><h3>See Also:</h3> <a
  9042. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold">AWS
  9043. * API Reference</a></p>
  9044. */
  9045. virtual Model::PutObjectLegalHoldOutcome PutObjectLegalHold(const Model::PutObjectLegalHoldRequest& request) const;
  9046. /**
  9047. * <p>Applies a Legal Hold configuration to the specified object. For more
  9048. * information, see <a
  9049. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  9050. * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
  9051. * Outposts.</p><p><h3>See Also:</h3> <a
  9052. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold">AWS
  9053. * API Reference</a></p>
  9054. *
  9055. * returns a future to the operation so that it can be executed in parallel to other requests.
  9056. */
  9057. virtual Model::PutObjectLegalHoldOutcomeCallable PutObjectLegalHoldCallable(const Model::PutObjectLegalHoldRequest& request) const;
  9058. /**
  9059. * <p>Applies a Legal Hold configuration to the specified object. For more
  9060. * information, see <a
  9061. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  9062. * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
  9063. * Outposts.</p><p><h3>See Also:</h3> <a
  9064. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold">AWS
  9065. * API Reference</a></p>
  9066. *
  9067. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  9068. */
  9069. virtual void PutObjectLegalHoldAsync(const Model::PutObjectLegalHoldRequest& request, const PutObjectLegalHoldResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  9070. /**
  9071. * <p>Places an Object Lock configuration on the specified bucket. The rule
  9072. * specified in the Object Lock configuration will be applied by default to every
  9073. * new object placed in the specified bucket. For more information, see <a
  9074. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  9075. * Objects</a>. </p> <ul> <li> <p>The <code>DefaultRetention</code> settings
  9076. * require both a mode and a period.</p> </li> <li> <p>The
  9077. * <code>DefaultRetention</code> period can be either <code>Days</code> or
  9078. * <code>Years</code> but you must select one. You cannot specify <code>Days</code>
  9079. * and <code>Years</code> at the same time.</p> </li> <li> <p>You can only enable
  9080. * Object Lock for new buckets. If you want to turn on Object Lock for an existing
  9081. * bucket, contact AWS Support.</p> </li> </ul> <p><h3>See Also:</h3> <a
  9082. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration">AWS
  9083. * API Reference</a></p>
  9084. */
  9085. virtual Model::PutObjectLockConfigurationOutcome PutObjectLockConfiguration(const Model::PutObjectLockConfigurationRequest& request) const;
  9086. /**
  9087. * <p>Places an Object Lock configuration on the specified bucket. The rule
  9088. * specified in the Object Lock configuration will be applied by default to every
  9089. * new object placed in the specified bucket. For more information, see <a
  9090. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  9091. * Objects</a>. </p> <ul> <li> <p>The <code>DefaultRetention</code> settings
  9092. * require both a mode and a period.</p> </li> <li> <p>The
  9093. * <code>DefaultRetention</code> period can be either <code>Days</code> or
  9094. * <code>Years</code> but you must select one. You cannot specify <code>Days</code>
  9095. * and <code>Years</code> at the same time.</p> </li> <li> <p>You can only enable
  9096. * Object Lock for new buckets. If you want to turn on Object Lock for an existing
  9097. * bucket, contact AWS Support.</p> </li> </ul> <p><h3>See Also:</h3> <a
  9098. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration">AWS
  9099. * API Reference</a></p>
  9100. *
  9101. * returns a future to the operation so that it can be executed in parallel to other requests.
  9102. */
  9103. virtual Model::PutObjectLockConfigurationOutcomeCallable PutObjectLockConfigurationCallable(const Model::PutObjectLockConfigurationRequest& request) const;
  9104. /**
  9105. * <p>Places an Object Lock configuration on the specified bucket. The rule
  9106. * specified in the Object Lock configuration will be applied by default to every
  9107. * new object placed in the specified bucket. For more information, see <a
  9108. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  9109. * Objects</a>. </p> <ul> <li> <p>The <code>DefaultRetention</code> settings
  9110. * require both a mode and a period.</p> </li> <li> <p>The
  9111. * <code>DefaultRetention</code> period can be either <code>Days</code> or
  9112. * <code>Years</code> but you must select one. You cannot specify <code>Days</code>
  9113. * and <code>Years</code> at the same time.</p> </li> <li> <p>You can only enable
  9114. * Object Lock for new buckets. If you want to turn on Object Lock for an existing
  9115. * bucket, contact AWS Support.</p> </li> </ul> <p><h3>See Also:</h3> <a
  9116. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration">AWS
  9117. * API Reference</a></p>
  9118. *
  9119. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  9120. */
  9121. virtual void PutObjectLockConfigurationAsync(const Model::PutObjectLockConfigurationRequest& request, const PutObjectLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  9122. /**
  9123. * <p>Places an Object Retention configuration on an object. For more information,
  9124. * see <a
  9125. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  9126. * Objects</a>. </p> <p>This action is not supported by Amazon S3 on
  9127. * Outposts.</p><p><h3>See Also:</h3> <a
  9128. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention">AWS
  9129. * API Reference</a></p>
  9130. */
  9131. virtual Model::PutObjectRetentionOutcome PutObjectRetention(const Model::PutObjectRetentionRequest& request) const;
  9132. /**
  9133. * <p>Places an Object Retention configuration on an object. For more information,
  9134. * see <a
  9135. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  9136. * Objects</a>. </p> <p>This action is not supported by Amazon S3 on
  9137. * Outposts.</p><p><h3>See Also:</h3> <a
  9138. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention">AWS
  9139. * API Reference</a></p>
  9140. *
  9141. * returns a future to the operation so that it can be executed in parallel to other requests.
  9142. */
  9143. virtual Model::PutObjectRetentionOutcomeCallable PutObjectRetentionCallable(const Model::PutObjectRetentionRequest& request) const;
  9144. /**
  9145. * <p>Places an Object Retention configuration on an object. For more information,
  9146. * see <a
  9147. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
  9148. * Objects</a>. </p> <p>This action is not supported by Amazon S3 on
  9149. * Outposts.</p><p><h3>See Also:</h3> <a
  9150. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention">AWS
  9151. * API Reference</a></p>
  9152. *
  9153. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  9154. */
  9155. virtual void PutObjectRetentionAsync(const Model::PutObjectRetentionRequest& request, const PutObjectRetentionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  9156. /**
  9157. * <p>Sets the supplied tag-set to an object that already exists in a bucket.</p>
  9158. * <p>A tag is a key-value pair. You can associate tags with an object by sending a
  9159. * PUT request against the tagging subresource that is associated with the object.
  9160. * You can retrieve tags by sending a GET request. For more information, see <a
  9161. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>.</p>
  9162. * <p>For tagging-related restrictions related to characters and encodings, see <a
  9163. * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">Tag
  9164. * Restrictions</a>. Note that Amazon S3 limits the maximum number of tags to 10
  9165. * tags per object.</p> <p>To use this operation, you must have permission to
  9166. * perform the <code>s3:PutObjectTagging</code> action. By default, the bucket
  9167. * owner has this permission and can grant this permission to others.</p> <p>To put
  9168. * tags of any other version, use the <code>versionId</code> query parameter. You
  9169. * also need permission for the <code>s3:PutObjectVersionTagging</code> action.</p>
  9170. * <p>For information about the Amazon S3 object tagging feature, see <a
  9171. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
  9172. * Tagging</a>.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <ul>
  9173. * <li> <p> <i>Code: InvalidTagError </i> </p> </li> <li> <p> <i>Cause: The tag
  9174. * provided was not a valid tag. This error can occur if the tag did not pass input
  9175. * validation. For more information, see <a
  9176. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
  9177. * Tagging</a>.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
  9178. * MalformedXMLError </i> </p> </li> <li> <p> <i>Cause: The XML provided does not
  9179. * match the schema.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
  9180. * OperationAbortedError </i> </p> </li> <li> <p> <i>Cause: A conflicting
  9181. * conditional action is currently in progress against this resource. Please try
  9182. * again.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code: InternalError</i>
  9183. * </p> </li> <li> <p> <i>Cause: The service was unable to apply the provided tag
  9184. * to the object.</i> </p> </li> </ul> </li> </ul> <p class="title"> <b>Related
  9185. * Resources</b> </p> <ul> <li> <p> <a
  9186. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
  9187. * </p> </li> <li> <p> <a
  9188. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>
  9189. * </p> </li> </ul><p><h3>See Also:</h3> <a
  9190. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTagging">AWS
  9191. * API Reference</a></p>
  9192. */
  9193. virtual Model::PutObjectTaggingOutcome PutObjectTagging(const Model::PutObjectTaggingRequest& request) const;
  9194. /**
  9195. * <p>Sets the supplied tag-set to an object that already exists in a bucket.</p>
  9196. * <p>A tag is a key-value pair. You can associate tags with an object by sending a
  9197. * PUT request against the tagging subresource that is associated with the object.
  9198. * You can retrieve tags by sending a GET request. For more information, see <a
  9199. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>.</p>
  9200. * <p>For tagging-related restrictions related to characters and encodings, see <a
  9201. * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">Tag
  9202. * Restrictions</a>. Note that Amazon S3 limits the maximum number of tags to 10
  9203. * tags per object.</p> <p>To use this operation, you must have permission to
  9204. * perform the <code>s3:PutObjectTagging</code> action. By default, the bucket
  9205. * owner has this permission and can grant this permission to others.</p> <p>To put
  9206. * tags of any other version, use the <code>versionId</code> query parameter. You
  9207. * also need permission for the <code>s3:PutObjectVersionTagging</code> action.</p>
  9208. * <p>For information about the Amazon S3 object tagging feature, see <a
  9209. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
  9210. * Tagging</a>.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <ul>
  9211. * <li> <p> <i>Code: InvalidTagError </i> </p> </li> <li> <p> <i>Cause: The tag
  9212. * provided was not a valid tag. This error can occur if the tag did not pass input
  9213. * validation. For more information, see <a
  9214. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
  9215. * Tagging</a>.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
  9216. * MalformedXMLError </i> </p> </li> <li> <p> <i>Cause: The XML provided does not
  9217. * match the schema.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
  9218. * OperationAbortedError </i> </p> </li> <li> <p> <i>Cause: A conflicting
  9219. * conditional action is currently in progress against this resource. Please try
  9220. * again.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code: InternalError</i>
  9221. * </p> </li> <li> <p> <i>Cause: The service was unable to apply the provided tag
  9222. * to the object.</i> </p> </li> </ul> </li> </ul> <p class="title"> <b>Related
  9223. * Resources</b> </p> <ul> <li> <p> <a
  9224. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
  9225. * </p> </li> <li> <p> <a
  9226. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>
  9227. * </p> </li> </ul><p><h3>See Also:</h3> <a
  9228. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTagging">AWS
  9229. * API Reference</a></p>
  9230. *
  9231. * returns a future to the operation so that it can be executed in parallel to other requests.
  9232. */
  9233. virtual Model::PutObjectTaggingOutcomeCallable PutObjectTaggingCallable(const Model::PutObjectTaggingRequest& request) const;
  9234. /**
  9235. * <p>Sets the supplied tag-set to an object that already exists in a bucket.</p>
  9236. * <p>A tag is a key-value pair. You can associate tags with an object by sending a
  9237. * PUT request against the tagging subresource that is associated with the object.
  9238. * You can retrieve tags by sending a GET request. For more information, see <a
  9239. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>.</p>
  9240. * <p>For tagging-related restrictions related to characters and encodings, see <a
  9241. * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">Tag
  9242. * Restrictions</a>. Note that Amazon S3 limits the maximum number of tags to 10
  9243. * tags per object.</p> <p>To use this operation, you must have permission to
  9244. * perform the <code>s3:PutObjectTagging</code> action. By default, the bucket
  9245. * owner has this permission and can grant this permission to others.</p> <p>To put
  9246. * tags of any other version, use the <code>versionId</code> query parameter. You
  9247. * also need permission for the <code>s3:PutObjectVersionTagging</code> action.</p>
  9248. * <p>For information about the Amazon S3 object tagging feature, see <a
  9249. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
  9250. * Tagging</a>.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <ul>
  9251. * <li> <p> <i>Code: InvalidTagError </i> </p> </li> <li> <p> <i>Cause: The tag
  9252. * provided was not a valid tag. This error can occur if the tag did not pass input
  9253. * validation. For more information, see <a
  9254. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
  9255. * Tagging</a>.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
  9256. * MalformedXMLError </i> </p> </li> <li> <p> <i>Cause: The XML provided does not
  9257. * match the schema.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
  9258. * OperationAbortedError </i> </p> </li> <li> <p> <i>Cause: A conflicting
  9259. * conditional action is currently in progress against this resource. Please try
  9260. * again.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code: InternalError</i>
  9261. * </p> </li> <li> <p> <i>Cause: The service was unable to apply the provided tag
  9262. * to the object.</i> </p> </li> </ul> </li> </ul> <p class="title"> <b>Related
  9263. * Resources</b> </p> <ul> <li> <p> <a
  9264. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
  9265. * </p> </li> <li> <p> <a
  9266. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>
  9267. * </p> </li> </ul><p><h3>See Also:</h3> <a
  9268. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTagging">AWS
  9269. * API Reference</a></p>
  9270. *
  9271. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  9272. */
  9273. virtual void PutObjectTaggingAsync(const Model::PutObjectTaggingRequest& request, const PutObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  9274. /**
  9275. * <p>Creates or modifies the <code>PublicAccessBlock</code> configuration for an
  9276. * Amazon S3 bucket. To use this operation, you must have the
  9277. * <code>s3:PutBucketPublicAccessBlock</code> permission. For more information
  9278. * about Amazon S3 permissions, see <a
  9279. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  9280. * Permissions in a Policy</a>.</p> <p>When Amazon S3 evaluates the
  9281. * <code>PublicAccessBlock</code> configuration for a bucket or an object, it
  9282. * checks the <code>PublicAccessBlock</code> configuration for both the bucket (or
  9283. * the bucket that contains the object) and the bucket owner's account. If the
  9284. * <code>PublicAccessBlock</code> configurations are different between the bucket
  9285. * and the account, Amazon S3 uses the most restrictive combination of the
  9286. * bucket-level and account-level settings.</p> <p>For more
  9287. * information about when Amazon S3 considers a bucket or an object public, see <a
  9288. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
  9289. * Meaning of "Public"</a>.</p> <p class="title"> <b>Related Resources</b> </p>
  9290. * <ul> <li> <p> <a
  9291. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
  9292. * </p> </li> <li> <p> <a
  9293. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
  9294. * </p> </li> <li> <p> <a
  9295. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>
  9296. * </p> </li> <li> <p> <a
  9297. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
  9298. * Amazon S3 Block Public Access</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  9299. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock">AWS
  9300. * API Reference</a></p>
  9301. */
  9302. virtual Model::PutPublicAccessBlockOutcome PutPublicAccessBlock(const Model::PutPublicAccessBlockRequest& request) const;
  9303. /**
  9304. * <p>Creates or modifies the <code>PublicAccessBlock</code> configuration for an
  9305. * Amazon S3 bucket. To use this operation, you must have the
  9306. * <code>s3:PutBucketPublicAccessBlock</code> permission. For more information
  9307. * about Amazon S3 permissions, see <a
  9308. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  9309. * Permissions in a Policy</a>.</p> <p>When Amazon S3 evaluates the
  9310. * <code>PublicAccessBlock</code> configuration for a bucket or an object, it
  9311. * checks the <code>PublicAccessBlock</code> configuration for both the bucket (or
  9312. * the bucket that contains the object) and the bucket owner's account. If the
  9313. * <code>PublicAccessBlock</code> configurations are different between the bucket
  9314. * and the account, Amazon S3 uses the most restrictive combination of the
  9315. * bucket-level and account-level settings.</p> <p>For more
  9316. * information about when Amazon S3 considers a bucket or an object public, see <a
  9317. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
  9318. * Meaning of "Public"</a>.</p> <p class="title"> <b>Related Resources</b> </p>
  9319. * <ul> <li> <p> <a
  9320. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
  9321. * </p> </li> <li> <p> <a
  9322. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
  9323. * </p> </li> <li> <p> <a
  9324. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>
  9325. * </p> </li> <li> <p> <a
  9326. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
  9327. * Amazon S3 Block Public Access</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  9328. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock">AWS
  9329. * API Reference</a></p>
  9330. *
  9331. * returns a future to the operation so that it can be executed in parallel to other requests.
  9332. */
  9333. virtual Model::PutPublicAccessBlockOutcomeCallable PutPublicAccessBlockCallable(const Model::PutPublicAccessBlockRequest& request) const;
  9334. /**
  9335. * <p>Creates or modifies the <code>PublicAccessBlock</code> configuration for an
  9336. * Amazon S3 bucket. To use this operation, you must have the
  9337. * <code>s3:PutBucketPublicAccessBlock</code> permission. For more information
  9338. * about Amazon S3 permissions, see <a
  9339. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  9340. * Permissions in a Policy</a>.</p> <p>When Amazon S3 evaluates the
  9341. * <code>PublicAccessBlock</code> configuration for a bucket or an object, it
  9342. * checks the <code>PublicAccessBlock</code> configuration for both the bucket (or
  9343. * the bucket that contains the object) and the bucket owner's account. If the
  9344. * <code>PublicAccessBlock</code> configurations are different between the bucket
  9345. * and the account, Amazon S3 uses the most restrictive combination of the
  9346. * bucket-level and account-level settings.</p> <p>For more
  9347. * information about when Amazon S3 considers a bucket or an object public, see <a
  9348. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
  9349. * Meaning of "Public"</a>.</p> <p class="title"> <b>Related Resources</b> </p>
  9350. * <ul> <li> <p> <a
  9351. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
  9352. * </p> </li> <li> <p> <a
  9353. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
  9354. * </p> </li> <li> <p> <a
  9355. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>
  9356. * </p> </li> <li> <p> <a
  9357. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
  9358. * Amazon S3 Block Public Access</a> </p> </li> </ul><p><h3>See Also:</h3> <a
  9359. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock">AWS
  9360. * API Reference</a></p>
  9361. *
  9362. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  9363. */
  9364. virtual void PutPublicAccessBlockAsync(const Model::PutPublicAccessBlockRequest& request, const PutPublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  9365. /**
  9366. * <p>Restores an archived copy of an object back into Amazon S3</p> <p>This action
  9367. * is not supported by Amazon S3 on Outposts.</p> <p>This action performs the
  9368. * following types of requests: </p> <ul> <li> <p> <code>select</code> - Perform a
  9369. * select query on an archived object</p> </li> <li> <p> <code>restore an
  9370. * archive</code> - Restore an archived object</p> </li> </ul> <p>To use this
  9371. * operation, you must have permissions to perform the
  9372. * <code>s3:RestoreObject</code> action. The bucket owner has this permission by
  9373. * default and can grant this permission to others. For more information about
  9374. * permissions, see <a
  9375. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  9376. * Related to Bucket Subresource Operations</a> and <a
  9377. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  9378. * Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User
  9379. * Guide</i>.</p> <p> <b>Querying Archives with Select Requests</b> </p> <p>You use
  9380. * a select type of request to perform SQL queries on archived objects. The
  9381. * archived objects that are being queried by the select request must be formatted
  9382. * as uncompressed comma-separated values (CSV) files. You can run queries and
  9383. * custom analytics on your archived data without having to restore your data to a
  9384. * hotter Amazon S3 tier. For an overview about select requests, see <a
  9385. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying
  9386. * Archived Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When making a
  9387. * select request, do the following:</p> <ul> <li> <p>Define an output location for
  9388. * the select query's output. This must be an Amazon S3 bucket in the same AWS
  9389. * Region as the bucket that contains the archive object that is being queried. The
  9390. * AWS account that initiates the job must have permissions to write to the S3
  9391. * bucket. You can specify the storage class and encryption for the output objects
  9392. * stored in the bucket. For more information about output, see <a
  9393. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying
  9394. * Archived Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>For more
  9395. * information about the <code>S3</code> structure in the request body, see the
  9396. * following:</p> <ul> <li> <p> <a
  9397. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  9398. * </p> </li> <li> <p> <a
  9399. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Managing
  9400. * Access with ACLs</a> in the <i>Amazon S3 User Guide</i> </p> </li> <li> <p> <a
  9401. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
  9402. * Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i> </p>
  9403. * </li> </ul> </li> <li> <p>Define the SQL expression for the <code>SELECT</code>
  9404. * type of restoration for your query in the request body's
  9405. * <code>SelectParameters</code> structure. You can use expressions like the
  9406. * following examples.</p> <ul> <li> <p>The following expression returns all
  9407. * records from the specified object.</p> <p> <code>SELECT * FROM Object</code>
  9408. * </p> </li> <li> <p>Assuming that you are not using any headers for data stored
  9409. * in the object, you can specify columns with positional headers.</p> <p>
  9410. * <code>SELECT s._1, s._2 FROM Object s WHERE s._3 &gt; 100</code> </p> </li> <li>
  9411. * <p>If you have headers and you set the <code>fileHeaderInfo</code> in the
  9412. * <code>CSV</code> structure in the request body to <code>USE</code>, you can
  9413. * specify headers in the query. (If you set the <code>fileHeaderInfo</code> field
  9414. * to <code>IGNORE</code>, the first row is skipped for the query.) You cannot mix
  9415. * ordinal positions with header column names. </p> <p> <code>SELECT s.Id,
  9416. * s.FirstName, s.SSN FROM S3Object s</code> </p> </li> </ul> </li> </ul> <p>For
  9417. * more information about using SQL with S3 Glacier Select restore, see <a
  9418. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL
  9419. * Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3
  9420. * User Guide</i>. </p> <p>When making a select request, you can also do the
  9421. * following:</p> <ul> <li> <p>To expedite your queries, specify the
  9422. * <code>Expedited</code> tier. For more information about tiers, see "Restoring
  9423. * Archives," later in this topic.</p> </li> <li> <p>Specify details about the data
  9424. * serialization format of both the input object that is being queried and the
  9425. * serialization of the CSV-encoded query results.</p> </li> </ul> <p>The following
  9426. * are additional important facts about the select feature:</p> <ul> <li> <p>The
  9427. * output results are new Amazon S3 objects. Unlike archive retrievals, they are
  9428. * stored until explicitly deleted-manually or through a lifecycle policy.</p>
  9429. * </li> <li> <p>You can issue more than one select request on the same Amazon S3
  9430. * object. Amazon S3 doesn't deduplicate requests, so avoid issuing duplicate
  9431. * requests.</p> </li> <li> <p> Amazon S3 accepts a select request even if the
  9432. * object has already been restored. A select request doesn’t return error response
  9433. * <code>409</code>.</p> </li> </ul> <p> <b>Restoring objects</b> </p> <p>Objects
  9434. * that you archive to the S3 Glacier or S3 Glacier Deep Archive storage class, and
  9435. * S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers are
  9436. * not accessible in real time. For objects in Archive Access or Deep Archive
  9437. * Access tiers you must first initiate a restore request, and then wait until the
  9438. * object is moved into the Frequent Access tier. For objects in S3 Glacier or S3
  9439. * Glacier Deep Archive storage classes you must first initiate a restore request,
  9440. * and then wait until a temporary copy of the object is available. To access an
  9441. * archived object, you must restore the object for the duration (number of days)
  9442. * that you specify.</p> <p>To restore a specific object version, you can provide a
  9443. * version ID. If you don't provide a version ID, Amazon S3 restores the current
  9444. * version.</p> <p>When restoring an archived object (or using a select request),
  9445. * you can specify one of the following data access tier options in the
  9446. * <code>Tier</code> element of the request body: </p> <ul> <li> <p> <b>
  9447. * <code>Expedited</code> </b> - Expedited retrievals allow you to quickly access
  9448. * your data stored in the S3 Glacier storage class or S3 Intelligent-Tiering
  9449. * Archive tier when occasional urgent requests for a subset of archives are
  9450. * required. For all but the largest archived objects (250 MB+), data accessed
  9451. * using Expedited retrievals is typically made available within 1–5 minutes.
  9452. * Provisioned capacity ensures that retrieval capacity for Expedited retrievals is
  9453. * available when you need it. Expedited retrievals and provisioned capacity are
  9454. * not available for objects stored in the S3 Glacier Deep Archive storage class or
  9455. * S3 Intelligent-Tiering Deep Archive tier.</p> </li> <li> <p> <b>
  9456. * <code>Standard</code> </b> - Standard retrievals allow you to access any of your
  9457. * archived objects within several hours. This is the default option for retrieval
  9458. * requests that do not specify the retrieval option. Standard retrievals typically
  9459. * finish within 3–5 hours for objects stored in the S3 Glacier storage class or S3
  9460. * Intelligent-Tiering Archive tier. They typically finish within 12 hours for
  9461. * objects stored in the S3 Glacier Deep Archive storage class or S3
  9462. * Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects
  9463. * stored in S3 Intelligent-Tiering.</p> </li> <li> <p> <b> <code>Bulk</code> </b>
  9464. * - Bulk retrievals are the lowest-cost retrieval option in S3 Glacier, enabling
  9465. * you to retrieve large amounts, even petabytes, of data inexpensively. Bulk
  9466. * retrievals typically finish within 5–12 hours for objects stored in the S3
  9467. * Glacier storage class or S3 Intelligent-Tiering Archive tier. They typically
  9468. * finish within 48 hours for objects stored in the S3 Glacier Deep Archive storage
  9469. * class or S3 Intelligent-Tiering Deep Archive tier. Bulk retrievals are free for
  9470. * objects stored in S3 Intelligent-Tiering.</p> </li> </ul> <p>For more
  9471. * information about archive retrieval options and provisioned capacity for
  9472. * <code>Expedited</code> data access, see <a
  9473. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring
  9474. * Archived Objects</a> in the <i>Amazon S3 User Guide</i>. </p> <p>You can use
  9475. * Amazon S3 restore speed upgrade to change the restore speed to a faster speed
  9476. * while it is in progress. For more information, see <a
  9477. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html">
  9478. * Upgrading the speed of an in-progress restore</a> in the <i>Amazon S3 User
  9479. * Guide</i>. </p> <p>To get the status of object restoration, you can send a
  9480. * <code>HEAD</code> request. Operations return the <code>x-amz-restore</code>
  9481. * header, which provides information about the restoration status, in the
  9482. * response. You can use Amazon S3 event notifications to notify you when a restore
  9483. * is initiated or completed. For more information, see <a
  9484. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
  9485. * Amazon S3 Event Notifications</a> in the <i>Amazon S3 User Guide</i>.</p>
  9486. * <p>After restoring an archived object, you can update the restoration period by
  9487. * reissuing the request with a new period. Amazon S3 updates the restoration
  9488. * period relative to the current time and charges only for the request-there are
  9489. * no data transfer charges. You cannot update the restoration period when Amazon
  9490. * S3 is actively processing your current restore request for the object.</p> <p>If
  9491. * your bucket has a lifecycle configuration with a rule that includes an
  9492. * expiration action, the object expiration overrides the life span that you
  9493. * specify in a restore request. For example, if you restore an object copy for 10
  9494. * days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the
  9495. * object in 3 days. For more information about lifecycle configuration, see <a
  9496. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
  9497. * and <a
  9498. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
  9499. * Lifecycle Management</a> in <i>Amazon S3 User Guide</i>.</p> <p>
  9500. * <b>Responses</b> </p> <p>A successful action returns either the <code>200
  9501. * OK</code> or <code>202 Accepted</code> status code. </p> <ul> <li> <p>If the
  9502. * object is not previously restored, then Amazon S3 returns <code>202
  9503. * Accepted</code> in the response. </p> </li> <li> <p>If the object is previously
  9504. * restored, Amazon S3 returns <code>200 OK</code> in the response. </p> </li>
  9505. * </ul> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p>
  9506. * <i>Code: RestoreAlreadyInProgress</i> </p> </li> <li> <p> <i>Cause: Object
  9507. * restore is already in progress. (This error does not apply to SELECT type
  9508. * requests.)</i> </p> </li> <li> <p> <i>HTTP Status Code: 409 Conflict</i> </p>
  9509. * </li> <li> <p> <i>SOAP Fault Code Prefix: Client</i> </p> </li> </ul> </li> <li>
  9510. * <ul> <li> <p> <i>Code: GlacierExpeditedRetrievalNotAvailable</i> </p> </li> <li>
  9511. * <p> <i>Cause: expedited retrievals are currently not available. Try again later.
  9512. * (Returned if there is insufficient capacity to process the Expedited request.
  9513. * This error applies only to Expedited retrievals and not to S3 Standard or Bulk
  9514. * retrievals.)</i> </p> </li> <li> <p> <i>HTTP Status Code: 503</i> </p> </li>
  9515. * <li> <p> <i>SOAP Fault Code Prefix: N/A</i> </p> </li> </ul> </li> </ul> <p
  9516. * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  9517. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
  9518. * </p> </li> <li> <p> <a
  9519. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>
  9520. * </p> </li> <li> <p> <a
  9521. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL
  9522. * Reference for Amazon S3 Select and S3 Glacier Select </a> in the <i>Amazon S3
  9523. * User Guide</i> </p> </li> </ul><p><h3>See Also:</h3> <a
  9524. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreObject">AWS
  9525. * API Reference</a></p>
  9526. */
  9527. virtual Model::RestoreObjectOutcome RestoreObject(const Model::RestoreObjectRequest& request) const;
  9528. /**
  9529. * <p>Restores an archived copy of an object back into Amazon S3</p> <p>This action
  9530. * is not supported by Amazon S3 on Outposts.</p> <p>This action performs the
  9531. * following types of requests: </p> <ul> <li> <p> <code>select</code> - Perform a
  9532. * select query on an archived object</p> </li> <li> <p> <code>restore an
  9533. * archive</code> - Restore an archived object</p> </li> </ul> <p>To use this
  9534. * operation, you must have permissions to perform the
  9535. * <code>s3:RestoreObject</code> action. The bucket owner has this permission by
  9536. * default and can grant this permission to others. For more information about
  9537. * permissions, see <a
  9538. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  9539. * Related to Bucket Subresource Operations</a> and <a
  9540. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  9541. * Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User
  9542. * Guide</i>.</p> <p> <b>Querying Archives with Select Requests</b> </p> <p>You use
  9543. * a select type of request to perform SQL queries on archived objects. The
  9544. * archived objects that are being queried by the select request must be formatted
  9545. * as uncompressed comma-separated values (CSV) files. You can run queries and
  9546. * custom analytics on your archived data without having to restore your data to a
  9547. * hotter Amazon S3 tier. For an overview about select requests, see <a
  9548. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying
  9549. * Archived Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When making a
  9550. * select request, do the following:</p> <ul> <li> <p>Define an output location for
  9551. * the select query's output. This must be an Amazon S3 bucket in the same AWS
  9552. * Region as the bucket that contains the archive object that is being queried. The
  9553. * AWS account that initiates the job must have permissions to write to the S3
  9554. * bucket. You can specify the storage class and encryption for the output objects
  9555. * stored in the bucket. For more information about output, see <a
  9556. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying
  9557. * Archived Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>For more
  9558. * information about the <code>S3</code> structure in the request body, see the
  9559. * following:</p> <ul> <li> <p> <a
  9560. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  9561. * </p> </li> <li> <p> <a
  9562. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Managing
  9563. * Access with ACLs</a> in the <i>Amazon S3 User Guide</i> </p> </li> <li> <p> <a
  9564. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
  9565. * Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i> </p>
  9566. * </li> </ul> </li> <li> <p>Define the SQL expression for the <code>SELECT</code>
  9567. * type of restoration for your query in the request body's
  9568. * <code>SelectParameters</code> structure. You can use expressions like the
  9569. * following examples.</p> <ul> <li> <p>The following expression returns all
  9570. * records from the specified object.</p> <p> <code>SELECT * FROM Object</code>
  9571. * </p> </li> <li> <p>Assuming that you are not using any headers for data stored
  9572. * in the object, you can specify columns with positional headers.</p> <p>
  9573. * <code>SELECT s._1, s._2 FROM Object s WHERE s._3 &gt; 100</code> </p> </li> <li>
  9574. * <p>If you have headers and you set the <code>fileHeaderInfo</code> in the
  9575. * <code>CSV</code> structure in the request body to <code>USE</code>, you can
  9576. * specify headers in the query. (If you set the <code>fileHeaderInfo</code> field
  9577. * to <code>IGNORE</code>, the first row is skipped for the query.) You cannot mix
  9578. * ordinal positions with header column names. </p> <p> <code>SELECT s.Id,
  9579. * s.FirstName, s.SSN FROM S3Object s</code> </p> </li> </ul> </li> </ul> <p>For
  9580. * more information about using SQL with S3 Glacier Select restore, see <a
  9581. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL
  9582. * Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3
  9583. * User Guide</i>. </p> <p>When making a select request, you can also do the
  9584. * following:</p> <ul> <li> <p>To expedite your queries, specify the
  9585. * <code>Expedited</code> tier. For more information about tiers, see "Restoring
  9586. * Archives," later in this topic.</p> </li> <li> <p>Specify details about the data
  9587. * serialization format of both the input object that is being queried and the
  9588. * serialization of the CSV-encoded query results.</p> </li> </ul> <p>The following
  9589. * are additional important facts about the select feature:</p> <ul> <li> <p>The
  9590. * output results are new Amazon S3 objects. Unlike archive retrievals, they are
  9591. * stored until explicitly deleted-manually or through a lifecycle policy.</p>
  9592. * </li> <li> <p>You can issue more than one select request on the same Amazon S3
  9593. * object. Amazon S3 doesn't deduplicate requests, so avoid issuing duplicate
  9594. * requests.</p> </li> <li> <p> Amazon S3 accepts a select request even if the
  9595. * object has already been restored. A select request doesn’t return error response
  9596. * <code>409</code>.</p> </li> </ul> <p> <b>Restoring objects</b> </p> <p>Objects
  9597. * that you archive to the S3 Glacier or S3 Glacier Deep Archive storage class, and
  9598. * S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers are
  9599. * not accessible in real time. For objects in Archive Access or Deep Archive
  9600. * Access tiers you must first initiate a restore request, and then wait until the
  9601. * object is moved into the Frequent Access tier. For objects in S3 Glacier or S3
  9602. * Glacier Deep Archive storage classes you must first initiate a restore request,
  9603. * and then wait until a temporary copy of the object is available. To access an
  9604. * archived object, you must restore the object for the duration (number of days)
  9605. * that you specify.</p> <p>To restore a specific object version, you can provide a
  9606. * version ID. If you don't provide a version ID, Amazon S3 restores the current
  9607. * version.</p> <p>When restoring an archived object (or using a select request),
  9608. * you can specify one of the following data access tier options in the
  9609. * <code>Tier</code> element of the request body: </p> <ul> <li> <p> <b>
  9610. * <code>Expedited</code> </b> - Expedited retrievals allow you to quickly access
  9611. * your data stored in the S3 Glacier storage class or S3 Intelligent-Tiering
  9612. * Archive tier when occasional urgent requests for a subset of archives are
  9613. * required. For all but the largest archived objects (250 MB+), data accessed
  9614. * using Expedited retrievals is typically made available within 1–5 minutes.
  9615. * Provisioned capacity ensures that retrieval capacity for Expedited retrievals is
  9616. * available when you need it. Expedited retrievals and provisioned capacity are
  9617. * not available for objects stored in the S3 Glacier Deep Archive storage class or
  9618. * S3 Intelligent-Tiering Deep Archive tier.</p> </li> <li> <p> <b>
  9619. * <code>Standard</code> </b> - Standard retrievals allow you to access any of your
  9620. * archived objects within several hours. This is the default option for retrieval
  9621. * requests that do not specify the retrieval option. Standard retrievals typically
  9622. * finish within 3–5 hours for objects stored in the S3 Glacier storage class or S3
  9623. * Intelligent-Tiering Archive tier. They typically finish within 12 hours for
  9624. * objects stored in the S3 Glacier Deep Archive storage class or S3
  9625. * Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects
  9626. * stored in S3 Intelligent-Tiering.</p> </li> <li> <p> <b> <code>Bulk</code> </b>
  9627. * - Bulk retrievals are the lowest-cost retrieval option in S3 Glacier, enabling
  9628. * you to retrieve large amounts, even petabytes, of data inexpensively. Bulk
  9629. * retrievals typically finish within 5–12 hours for objects stored in the S3
  9630. * Glacier storage class or S3 Intelligent-Tiering Archive tier. They typically
  9631. * finish within 48 hours for objects stored in the S3 Glacier Deep Archive storage
  9632. * class or S3 Intelligent-Tiering Deep Archive tier. Bulk retrievals are free for
  9633. * objects stored in S3 Intelligent-Tiering.</p> </li> </ul> <p>For more
  9634. * information about archive retrieval options and provisioned capacity for
  9635. * <code>Expedited</code> data access, see <a
  9636. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring
  9637. * Archived Objects</a> in the <i>Amazon S3 User Guide</i>. </p> <p>You can use
  9638. * Amazon S3 restore speed upgrade to change the restore speed to a faster speed
  9639. * while it is in progress. For more information, see <a
  9640. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html">
  9641. * Upgrading the speed of an in-progress restore</a> in the <i>Amazon S3 User
  9642. * Guide</i>. </p> <p>To get the status of object restoration, you can send a
  9643. * <code>HEAD</code> request. Operations return the <code>x-amz-restore</code>
  9644. * header, which provides information about the restoration status, in the
  9645. * response. You can use Amazon S3 event notifications to notify you when a restore
  9646. * is initiated or completed. For more information, see <a
  9647. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
  9648. * Amazon S3 Event Notifications</a> in the <i>Amazon S3 User Guide</i>.</p>
  9649. * <p>After restoring an archived object, you can update the restoration period by
  9650. * reissuing the request with a new period. Amazon S3 updates the restoration
  9651. * period relative to the current time and charges only for the request-there are
  9652. * no data transfer charges. You cannot update the restoration period when Amazon
  9653. * S3 is actively processing your current restore request for the object.</p> <p>If
  9654. * your bucket has a lifecycle configuration with a rule that includes an
  9655. * expiration action, the object expiration overrides the life span that you
  9656. * specify in a restore request. For example, if you restore an object copy for 10
  9657. * days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the
  9658. * object in 3 days. For more information about lifecycle configuration, see <a
  9659. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
  9660. * and <a
  9661. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
  9662. * Lifecycle Management</a> in <i>Amazon S3 User Guide</i>.</p> <p>
  9663. * <b>Responses</b> </p> <p>A successful action returns either the <code>200
  9664. * OK</code> or <code>202 Accepted</code> status code. </p> <ul> <li> <p>If the
  9665. * object is not previously restored, then Amazon S3 returns <code>202
  9666. * Accepted</code> in the response. </p> </li> <li> <p>If the object is previously
  9667. * restored, Amazon S3 returns <code>200 OK</code> in the response. </p> </li>
  9668. * </ul> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p>
  9669. * <i>Code: RestoreAlreadyInProgress</i> </p> </li> <li> <p> <i>Cause: Object
  9670. * restore is already in progress. (This error does not apply to SELECT type
  9671. * requests.)</i> </p> </li> <li> <p> <i>HTTP Status Code: 409 Conflict</i> </p>
  9672. * </li> <li> <p> <i>SOAP Fault Code Prefix: Client</i> </p> </li> </ul> </li> <li>
  9673. * <ul> <li> <p> <i>Code: GlacierExpeditedRetrievalNotAvailable</i> </p> </li> <li>
  9674. * <p> <i>Cause: expedited retrievals are currently not available. Try again later.
  9675. * (Returned if there is insufficient capacity to process the Expedited request.
  9676. * This error applies only to Expedited retrievals and not to S3 Standard or Bulk
  9677. * retrievals.)</i> </p> </li> <li> <p> <i>HTTP Status Code: 503</i> </p> </li>
  9678. * <li> <p> <i>SOAP Fault Code Prefix: N/A</i> </p> </li> </ul> </li> </ul> <p
  9679. * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  9680. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
  9681. * </p> </li> <li> <p> <a
  9682. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>
  9683. * </p> </li> <li> <p> <a
  9684. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL
  9685. * Reference for Amazon S3 Select and S3 Glacier Select </a> in the <i>Amazon S3
  9686. * User Guide</i> </p> </li> </ul><p><h3>See Also:</h3> <a
  9687. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreObject">AWS
  9688. * API Reference</a></p>
  9689. *
  9690. * returns a future to the operation so that it can be executed in parallel to other requests.
  9691. */
  9692. virtual Model::RestoreObjectOutcomeCallable RestoreObjectCallable(const Model::RestoreObjectRequest& request) const;
  9693. /**
  9694. * <p>Restores an archived copy of an object back into Amazon S3</p> <p>This action
  9695. * is not supported by Amazon S3 on Outposts.</p> <p>This action performs the
  9696. * following types of requests: </p> <ul> <li> <p> <code>select</code> - Perform a
  9697. * select query on an archived object</p> </li> <li> <p> <code>restore an
  9698. * archive</code> - Restore an archived object</p> </li> </ul> <p>To use this
  9699. * operation, you must have permissions to perform the
  9700. * <code>s3:RestoreObject</code> action. The bucket owner has this permission by
  9701. * default and can grant this permission to others. For more information about
  9702. * permissions, see <a
  9703. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
  9704. * Related to Bucket Subresource Operations</a> and <a
  9705. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
  9706. * Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User
  9707. * Guide</i>.</p> <p> <b>Querying Archives with Select Requests</b> </p> <p>You use
  9708. * a select type of request to perform SQL queries on archived objects. The
  9709. * archived objects that are being queried by the select request must be formatted
  9710. * as uncompressed comma-separated values (CSV) files. You can run queries and
  9711. * custom analytics on your archived data without having to restore your data to a
  9712. * hotter Amazon S3 tier. For an overview about select requests, see <a
  9713. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying
  9714. * Archived Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When making a
  9715. * select request, do the following:</p> <ul> <li> <p>Define an output location for
  9716. * the select query's output. This must be an Amazon S3 bucket in the same AWS
  9717. * Region as the bucket that contains the archive object that is being queried. The
  9718. * AWS account that initiates the job must have permissions to write to the S3
  9719. * bucket. You can specify the storage class and encryption for the output objects
  9720. * stored in the bucket. For more information about output, see <a
  9721. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying
  9722. * Archived Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>For more
  9723. * information about the <code>S3</code> structure in the request body, see the
  9724. * following:</p> <ul> <li> <p> <a
  9725. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
  9726. * </p> </li> <li> <p> <a
  9727. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Managing
  9728. * Access with ACLs</a> in the <i>Amazon S3 User Guide</i> </p> </li> <li> <p> <a
  9729. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
  9730. * Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i> </p>
  9731. * </li> </ul> </li> <li> <p>Define the SQL expression for the <code>SELECT</code>
  9732. * type of restoration for your query in the request body's
  9733. * <code>SelectParameters</code> structure. You can use expressions like the
  9734. * following examples.</p> <ul> <li> <p>The following expression returns all
  9735. * records from the specified object.</p> <p> <code>SELECT * FROM Object</code>
  9736. * </p> </li> <li> <p>Assuming that you are not using any headers for data stored
  9737. * in the object, you can specify columns with positional headers.</p> <p>
  9738. * <code>SELECT s._1, s._2 FROM Object s WHERE s._3 &gt; 100</code> </p> </li> <li>
  9739. * <p>If you have headers and you set the <code>fileHeaderInfo</code> in the
  9740. * <code>CSV</code> structure in the request body to <code>USE</code>, you can
  9741. * specify headers in the query. (If you set the <code>fileHeaderInfo</code> field
  9742. * to <code>IGNORE</code>, the first row is skipped for the query.) You cannot mix
  9743. * ordinal positions with header column names. </p> <p> <code>SELECT s.Id,
  9744. * s.FirstName, s.SSN FROM S3Object s</code> </p> </li> </ul> </li> </ul> <p>For
  9745. * more information about using SQL with S3 Glacier Select restore, see <a
  9746. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL
  9747. * Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3
  9748. * User Guide</i>. </p> <p>When making a select request, you can also do the
  9749. * following:</p> <ul> <li> <p>To expedite your queries, specify the
  9750. * <code>Expedited</code> tier. For more information about tiers, see "Restoring
  9751. * Archives," later in this topic.</p> </li> <li> <p>Specify details about the data
  9752. * serialization format of both the input object that is being queried and the
  9753. * serialization of the CSV-encoded query results.</p> </li> </ul> <p>The following
  9754. * are additional important facts about the select feature:</p> <ul> <li> <p>The
  9755. * output results are new Amazon S3 objects. Unlike archive retrievals, they are
  9756. * stored until explicitly deleted-manually or through a lifecycle policy.</p>
  9757. * </li> <li> <p>You can issue more than one select request on the same Amazon S3
  9758. * object. Amazon S3 doesn't deduplicate requests, so avoid issuing duplicate
  9759. * requests.</p> </li> <li> <p> Amazon S3 accepts a select request even if the
  9760. * object has already been restored. A select request doesn’t return error response
  9761. * <code>409</code>.</p> </li> </ul> <p> <b>Restoring objects</b> </p> <p>Objects
  9762. * that you archive to the S3 Glacier or S3 Glacier Deep Archive storage class, and
  9763. * S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers are
  9764. * not accessible in real time. For objects in Archive Access or Deep Archive
  9765. * Access tiers you must first initiate a restore request, and then wait until the
  9766. * object is moved into the Frequent Access tier. For objects in S3 Glacier or S3
  9767. * Glacier Deep Archive storage classes you must first initiate a restore request,
  9768. * and then wait until a temporary copy of the object is available. To access an
  9769. * archived object, you must restore the object for the duration (number of days)
  9770. * that you specify.</p> <p>To restore a specific object version, you can provide a
  9771. * version ID. If you don't provide a version ID, Amazon S3 restores the current
  9772. * version.</p> <p>When restoring an archived object (or using a select request),
  9773. * you can specify one of the following data access tier options in the
  9774. * <code>Tier</code> element of the request body: </p> <ul> <li> <p> <b>
  9775. * <code>Expedited</code> </b> - Expedited retrievals allow you to quickly access
  9776. * your data stored in the S3 Glacier storage class or S3 Intelligent-Tiering
  9777. * Archive tier when occasional urgent requests for a subset of archives are
  9778. * required. For all but the largest archived objects (250 MB+), data accessed
  9779. * using Expedited retrievals is typically made available within 1–5 minutes.
  9780. * Provisioned capacity ensures that retrieval capacity for Expedited retrievals is
  9781. * available when you need it. Expedited retrievals and provisioned capacity are
  9782. * not available for objects stored in the S3 Glacier Deep Archive storage class or
  9783. * S3 Intelligent-Tiering Deep Archive tier.</p> </li> <li> <p> <b>
  9784. * <code>Standard</code> </b> - Standard retrievals allow you to access any of your
  9785. * archived objects within several hours. This is the default option for retrieval
  9786. * requests that do not specify the retrieval option. Standard retrievals typically
  9787. * finish within 3–5 hours for objects stored in the S3 Glacier storage class or S3
  9788. * Intelligent-Tiering Archive tier. They typically finish within 12 hours for
  9789. * objects stored in the S3 Glacier Deep Archive storage class or S3
  9790. * Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects
  9791. * stored in S3 Intelligent-Tiering.</p> </li> <li> <p> <b> <code>Bulk</code> </b>
  9792. * - Bulk retrievals are the lowest-cost retrieval option in S3 Glacier, enabling
  9793. * you to retrieve large amounts, even petabytes, of data inexpensively. Bulk
  9794. * retrievals typically finish within 5–12 hours for objects stored in the S3
  9795. * Glacier storage class or S3 Intelligent-Tiering Archive tier. They typically
  9796. * finish within 48 hours for objects stored in the S3 Glacier Deep Archive storage
  9797. * class or S3 Intelligent-Tiering Deep Archive tier. Bulk retrievals are free for
  9798. * objects stored in S3 Intelligent-Tiering.</p> </li> </ul> <p>For more
  9799. * information about archive retrieval options and provisioned capacity for
  9800. * <code>Expedited</code> data access, see <a
  9801. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring
  9802. * Archived Objects</a> in the <i>Amazon S3 User Guide</i>. </p> <p>You can use
  9803. * Amazon S3 restore speed upgrade to change the restore speed to a faster speed
  9804. * while it is in progress. For more information, see <a
  9805. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html">
  9806. * Upgrading the speed of an in-progress restore</a> in the <i>Amazon S3 User
  9807. * Guide</i>. </p> <p>To get the status of object restoration, you can send a
  9808. * <code>HEAD</code> request. Operations return the <code>x-amz-restore</code>
  9809. * header, which provides information about the restoration status, in the
  9810. * response. You can use Amazon S3 event notifications to notify you when a restore
  9811. * is initiated or completed. For more information, see <a
  9812. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
  9813. * Amazon S3 Event Notifications</a> in the <i>Amazon S3 User Guide</i>.</p>
  9814. * <p>After restoring an archived object, you can update the restoration period by
  9815. * reissuing the request with a new period. Amazon S3 updates the restoration
  9816. * period relative to the current time and charges only for the request-there are
  9817. * no data transfer charges. You cannot update the restoration period when Amazon
  9818. * S3 is actively processing your current restore request for the object.</p> <p>If
  9819. * your bucket has a lifecycle configuration with a rule that includes an
  9820. * expiration action, the object expiration overrides the life span that you
  9821. * specify in a restore request. For example, if you restore an object copy for 10
  9822. * days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the
  9823. * object in 3 days. For more information about lifecycle configuration, see <a
  9824. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
  9825. * and <a
  9826. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
  9827. * Lifecycle Management</a> in <i>Amazon S3 User Guide</i>.</p> <p>
  9828. * <b>Responses</b> </p> <p>A successful action returns either the <code>200
  9829. * OK</code> or <code>202 Accepted</code> status code. </p> <ul> <li> <p>If the
  9830. * object is not previously restored, then Amazon S3 returns <code>202
  9831. * Accepted</code> in the response. </p> </li> <li> <p>If the object is previously
  9832. * restored, Amazon S3 returns <code>200 OK</code> in the response. </p> </li>
  9833. * </ul> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p>
  9834. * <i>Code: RestoreAlreadyInProgress</i> </p> </li> <li> <p> <i>Cause: Object
  9835. * restore is already in progress. (This error does not apply to SELECT type
  9836. * requests.)</i> </p> </li> <li> <p> <i>HTTP Status Code: 409 Conflict</i> </p>
  9837. * </li> <li> <p> <i>SOAP Fault Code Prefix: Client</i> </p> </li> </ul> </li> <li>
  9838. * <ul> <li> <p> <i>Code: GlacierExpeditedRetrievalNotAvailable</i> </p> </li> <li>
  9839. * <p> <i>Cause: expedited retrievals are currently not available. Try again later.
  9840. * (Returned if there is insufficient capacity to process the Expedited request.
  9841. * This error applies only to Expedited retrievals and not to S3 Standard or Bulk
  9842. * retrievals.)</i> </p> </li> <li> <p> <i>HTTP Status Code: 503</i> </p> </li>
  9843. * <li> <p> <i>SOAP Fault Code Prefix: N/A</i> </p> </li> </ul> </li> </ul> <p
  9844. * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
  9845. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
  9846. * </p> </li> <li> <p> <a
  9847. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>
  9848. * </p> </li> <li> <p> <a
  9849. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL
  9850. * Reference for Amazon S3 Select and S3 Glacier Select </a> in the <i>Amazon S3
  9851. * User Guide</i> </p> </li> </ul><p><h3>See Also:</h3> <a
  9852. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreObject">AWS
  9853. * API Reference</a></p>
  9854. *
  9855. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  9856. */
  9857. virtual void RestoreObjectAsync(const Model::RestoreObjectRequest& request, const RestoreObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  9858. /**
  9859. * <p>This action filters the contents of an Amazon S3 object based on a simple
  9860. * structured query language (SQL) statement. In the request, along with the SQL
  9861. * expression, you must also specify a data serialization format (JSON, CSV, or
  9862. * Apache Parquet) of the object. Amazon S3 uses this format to parse object data
  9863. * into records, and returns only records that match the specified SQL expression.
  9864. * You must also specify the data serialization format for the response.</p>
  9865. * <p>This action is not supported by Amazon S3 on Outposts.</p> <p>For more
  9866. * information about Amazon S3 Select, see <a
  9867. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html">Selecting
  9868. * Content from Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>For more
  9869. * information about using SQL with Amazon S3 Select, see <a
  9870. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">
  9871. * SQL Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3
  9872. * User Guide</i>.</p> <p/> <p> <b>Permissions</b> </p> <p>You must have
  9873. * <code>s3:GetObject</code> permission for this operation. Amazon S3 Select does
  9874. * not support anonymous access. For more information about permissions, see <a
  9875. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  9876. * Permissions in a Policy</a> in the <i>Amazon S3 User Guide</i>.</p> <p/> <p>
  9877. * <i>Object Data Formats</i> </p> <p>You can use Amazon S3 Select to query objects
  9878. * that have the following format properties:</p> <ul> <li> <p> <i>CSV, JSON, and
  9879. * Parquet</i> - Objects must be in CSV, JSON, or Parquet format.</p> </li> <li>
  9880. * <p> <i>UTF-8</i> - UTF-8 is the only encoding type Amazon S3 Select
  9881. * supports.</p> </li> <li> <p> <i>GZIP or BZIP2</i> - CSV and JSON files can be
  9882. * compressed using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats
  9883. * that Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports
  9884. * columnar compression for Parquet using GZIP or Snappy. Amazon S3 Select does not
  9885. * support whole-object compression for Parquet objects.</p> </li> <li> <p>
  9886. * <i>Server-side encryption</i> - Amazon S3 Select supports querying objects that
  9887. * are protected with server-side encryption.</p> <p>For objects that are encrypted
  9888. * with customer-provided encryption keys (SSE-C), you must use HTTPS, and you must
  9889. * use the headers that are documented in the <a
  9890. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>.
  9891. * For more information about SSE-C, see <a
  9892. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
  9893. * Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3
  9894. * User Guide</i>.</p> <p>For objects that are encrypted with Amazon S3 managed
  9895. * encryption keys (SSE-S3) and customer master keys (CMKs) stored in AWS Key
  9896. * Management Service (SSE-KMS), server-side encryption is handled transparently,
  9897. * so you don't need to specify anything. For more information about server-side
  9898. * encryption, including SSE-S3 and SSE-KMS, see <a
  9899. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
  9900. * Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  9901. * </li> </ul> <p> <b>Working with the Response Body</b> </p> <p>Given the response
  9902. * size is unknown, Amazon S3 Select streams the response as a series of messages
  9903. * and includes a <code>Transfer-Encoding</code> header with <code>chunked</code>
  9904. * as its value in the response. For more information, see <a
  9905. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html">Appendix:
  9906. * SelectObjectContent Response</a> .</p> <p/> <p> <b>GetObject Support</b> </p>
  9907. * <p>The <code>SelectObjectContent</code> action does not support the following
  9908. * <code>GetObject</code> functionality. For more information, see <a
  9909. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>.</p>
  9910. * <ul> <li> <p> <code>Range</code>: Although you can specify a scan range for an
  9911. * Amazon S3 Select request (see <a
  9912. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange">SelectObjectContentRequest
  9913. * - ScanRange</a> in the request parameters), you cannot specify the range of
  9914. * bytes of an object to return. </p> </li> <li> <p>GLACIER, DEEP_ARCHIVE and
  9915. * REDUCED_REDUNDANCY storage classes: You cannot specify the GLACIER,
  9916. * DEEP_ARCHIVE, or <code>REDUCED_REDUNDANCY</code> storage classes. For more
  9917. * information, about storage classes see <a
  9918. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#storage-class-intro">Storage
  9919. * Classes</a> in the <i>Amazon S3 User Guide</i>.</p> </li> </ul> <p/> <p>
  9920. * <b>Special Errors</b> </p> <p>For a list of special errors for this operation,
  9921. * see <a
  9922. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList">List
  9923. * of SELECT Object Content Error Codes</a> </p> <p class="title"> <b>Related
  9924. * Resources</b> </p> <ul> <li> <p> <a
  9925. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  9926. * </p> </li> <li> <p> <a
  9927. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
  9928. * </p> </li> <li> <p> <a
  9929. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
  9930. * </p> </li> </ul><p><h3>See Also:</h3> <a
  9931. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContent">AWS
  9932. * API Reference</a></p>
  9933. */
  9934. virtual Model::SelectObjectContentOutcome SelectObjectContent(Model::SelectObjectContentRequest& request) const;
  9935. /**
  9936. * <p>This action filters the contents of an Amazon S3 object based on a simple
  9937. * structured query language (SQL) statement. In the request, along with the SQL
  9938. * expression, you must also specify a data serialization format (JSON, CSV, or
  9939. * Apache Parquet) of the object. Amazon S3 uses this format to parse object data
  9940. * into records, and returns only records that match the specified SQL expression.
  9941. * You must also specify the data serialization format for the response.</p>
  9942. * <p>This action is not supported by Amazon S3 on Outposts.</p> <p>For more
  9943. * information about Amazon S3 Select, see <a
  9944. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html">Selecting
  9945. * Content from Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>For more
  9946. * information about using SQL with Amazon S3 Select, see <a
  9947. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">
  9948. * SQL Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3
  9949. * User Guide</i>.</p> <p/> <p> <b>Permissions</b> </p> <p>You must have
  9950. * <code>s3:GetObject</code> permission for this operation. Amazon S3 Select does
  9951. * not support anonymous access. For more information about permissions, see <a
  9952. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  9953. * Permissions in a Policy</a> in the <i>Amazon S3 User Guide</i>.</p> <p/> <p>
  9954. * <i>Object Data Formats</i> </p> <p>You can use Amazon S3 Select to query objects
  9955. * that have the following format properties:</p> <ul> <li> <p> <i>CSV, JSON, and
  9956. * Parquet</i> - Objects must be in CSV, JSON, or Parquet format.</p> </li> <li>
  9957. * <p> <i>UTF-8</i> - UTF-8 is the only encoding type Amazon S3 Select
  9958. * supports.</p> </li> <li> <p> <i>GZIP or BZIP2</i> - CSV and JSON files can be
  9959. * compressed using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats
  9960. * that Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports
  9961. * columnar compression for Parquet using GZIP or Snappy. Amazon S3 Select does not
  9962. * support whole-object compression for Parquet objects.</p> </li> <li> <p>
  9963. * <i>Server-side encryption</i> - Amazon S3 Select supports querying objects that
  9964. * are protected with server-side encryption.</p> <p>For objects that are encrypted
  9965. * with customer-provided encryption keys (SSE-C), you must use HTTPS, and you must
  9966. * use the headers that are documented in the <a
  9967. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>.
  9968. * For more information about SSE-C, see <a
  9969. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
  9970. * Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3
  9971. * User Guide</i>.</p> <p>For objects that are encrypted with Amazon S3 managed
  9972. * encryption keys (SSE-S3) and customer master keys (CMKs) stored in AWS Key
  9973. * Management Service (SSE-KMS), server-side encryption is handled transparently,
  9974. * so you don't need to specify anything. For more information about server-side
  9975. * encryption, including SSE-S3 and SSE-KMS, see <a
  9976. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
  9977. * Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  9978. * </li> </ul> <p> <b>Working with the Response Body</b> </p> <p>Given the response
  9979. * size is unknown, Amazon S3 Select streams the response as a series of messages
  9980. * and includes a <code>Transfer-Encoding</code> header with <code>chunked</code>
  9981. * as its value in the response. For more information, see <a
  9982. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html">Appendix:
  9983. * SelectObjectContent Response</a> .</p> <p/> <p> <b>GetObject Support</b> </p>
  9984. * <p>The <code>SelectObjectContent</code> action does not support the following
  9985. * <code>GetObject</code> functionality. For more information, see <a
  9986. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>.</p>
  9987. * <ul> <li> <p> <code>Range</code>: Although you can specify a scan range for an
  9988. * Amazon S3 Select request (see <a
  9989. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange">SelectObjectContentRequest
  9990. * - ScanRange</a> in the request parameters), you cannot specify the range of
  9991. * bytes of an object to return. </p> </li> <li> <p>GLACIER, DEEP_ARCHIVE and
  9992. * REDUCED_REDUNDANCY storage classes: You cannot specify the GLACIER,
  9993. * DEEP_ARCHIVE, or <code>REDUCED_REDUNDANCY</code> storage classes. For more
  9994. * information, about storage classes see <a
  9995. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#storage-class-intro">Storage
  9996. * Classes</a> in the <i>Amazon S3 User Guide</i>.</p> </li> </ul> <p/> <p>
  9997. * <b>Special Errors</b> </p> <p>For a list of special errors for this operation,
  9998. * see <a
  9999. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList">List
  10000. * of SELECT Object Content Error Codes</a> </p> <p class="title"> <b>Related
  10001. * Resources</b> </p> <ul> <li> <p> <a
  10002. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  10003. * </p> </li> <li> <p> <a
  10004. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
  10005. * </p> </li> <li> <p> <a
  10006. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
  10007. * </p> </li> </ul><p><h3>See Also:</h3> <a
  10008. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContent">AWS
  10009. * API Reference</a></p>
  10010. *
  10011. * returns a future to the operation so that it can be executed in parallel to other requests.
  10012. */
  10013. virtual Model::SelectObjectContentOutcomeCallable SelectObjectContentCallable(Model::SelectObjectContentRequest& request) const;
  10014. /**
  10015. * <p>This action filters the contents of an Amazon S3 object based on a simple
  10016. * structured query language (SQL) statement. In the request, along with the SQL
  10017. * expression, you must also specify a data serialization format (JSON, CSV, or
  10018. * Apache Parquet) of the object. Amazon S3 uses this format to parse object data
  10019. * into records, and returns only records that match the specified SQL expression.
  10020. * You must also specify the data serialization format for the response.</p>
  10021. * <p>This action is not supported by Amazon S3 on Outposts.</p> <p>For more
  10022. * information about Amazon S3 Select, see <a
  10023. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html">Selecting
  10024. * Content from Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>For more
  10025. * information about using SQL with Amazon S3 Select, see <a
  10026. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">
  10027. * SQL Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3
  10028. * User Guide</i>.</p> <p/> <p> <b>Permissions</b> </p> <p>You must have
  10029. * <code>s3:GetObject</code> permission for this operation. Amazon S3 Select does
  10030. * not support anonymous access. For more information about permissions, see <a
  10031. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
  10032. * Permissions in a Policy</a> in the <i>Amazon S3 User Guide</i>.</p> <p/> <p>
  10033. * <i>Object Data Formats</i> </p> <p>You can use Amazon S3 Select to query objects
  10034. * that have the following format properties:</p> <ul> <li> <p> <i>CSV, JSON, and
  10035. * Parquet</i> - Objects must be in CSV, JSON, or Parquet format.</p> </li> <li>
  10036. * <p> <i>UTF-8</i> - UTF-8 is the only encoding type Amazon S3 Select
  10037. * supports.</p> </li> <li> <p> <i>GZIP or BZIP2</i> - CSV and JSON files can be
  10038. * compressed using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats
  10039. * that Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports
  10040. * columnar compression for Parquet using GZIP or Snappy. Amazon S3 Select does not
  10041. * support whole-object compression for Parquet objects.</p> </li> <li> <p>
  10042. * <i>Server-side encryption</i> - Amazon S3 Select supports querying objects that
  10043. * are protected with server-side encryption.</p> <p>For objects that are encrypted
  10044. * with customer-provided encryption keys (SSE-C), you must use HTTPS, and you must
  10045. * use the headers that are documented in the <a
  10046. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>.
  10047. * For more information about SSE-C, see <a
  10048. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
  10049. * Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3
  10050. * User Guide</i>.</p> <p>For objects that are encrypted with Amazon S3 managed
  10051. * encryption keys (SSE-S3) and customer master keys (CMKs) stored in AWS Key
  10052. * Management Service (SSE-KMS), server-side encryption is handled transparently,
  10053. * so you don't need to specify anything. For more information about server-side
  10054. * encryption, including SSE-S3 and SSE-KMS, see <a
  10055. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
  10056. * Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  10057. * </li> </ul> <p> <b>Working with the Response Body</b> </p> <p>Given the response
  10058. * size is unknown, Amazon S3 Select streams the response as a series of messages
  10059. * and includes a <code>Transfer-Encoding</code> header with <code>chunked</code>
  10060. * as its value in the response. For more information, see <a
  10061. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html">Appendix:
  10062. * SelectObjectContent Response</a> .</p> <p/> <p> <b>GetObject Support</b> </p>
  10063. * <p>The <code>SelectObjectContent</code> action does not support the following
  10064. * <code>GetObject</code> functionality. For more information, see <a
  10065. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>.</p>
  10066. * <ul> <li> <p> <code>Range</code>: Although you can specify a scan range for an
  10067. * Amazon S3 Select request (see <a
  10068. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange">SelectObjectContentRequest
  10069. * - ScanRange</a> in the request parameters), you cannot specify the range of
  10070. * bytes of an object to return. </p> </li> <li> <p>GLACIER, DEEP_ARCHIVE and
  10071. * REDUCED_REDUNDANCY storage classes: You cannot specify the GLACIER,
  10072. * DEEP_ARCHIVE, or <code>REDUCED_REDUNDANCY</code> storage classes. For more
  10073. * information, about storage classes see <a
  10074. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#storage-class-intro">Storage
  10075. * Classes</a> in the <i>Amazon S3 User Guide</i>.</p> </li> </ul> <p/> <p>
  10076. * <b>Special Errors</b> </p> <p>For a list of special errors for this operation,
  10077. * see <a
  10078. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList">List
  10079. * of SELECT Object Content Error Codes</a> </p> <p class="title"> <b>Related
  10080. * Resources</b> </p> <ul> <li> <p> <a
  10081. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
  10082. * </p> </li> <li> <p> <a
  10083. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
  10084. * </p> </li> <li> <p> <a
  10085. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
  10086. * </p> </li> </ul><p><h3>See Also:</h3> <a
  10087. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContent">AWS
  10088. * API Reference</a></p>
  10089. *
  10090. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  10091. */
  10092. virtual void SelectObjectContentAsync(Model::SelectObjectContentRequest& request, const SelectObjectContentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  10093. /**
  10094. * <p>Uploads a part in a multipart upload.</p> <p>In this operation, you
  10095. * provide part data in your request. However, you have an option to specify your
  10096. * existing Amazon S3 object as a data source for the part you are uploading. To
  10097. * upload a part from an existing object, you use the <a
  10098. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>
  10099. * operation. </p> <p>You must initiate a multipart upload (see <a
  10100. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>)
  10101. * before you can upload any part. In response to your initiate request, Amazon S3
  10102. * returns an upload ID, a unique identifier, that you must include in your upload
  10103. * part request.</p> <p>Part numbers can be any number from 1 to 10,000, inclusive.
  10104. * A part number uniquely identifies a part and also defines its position within
  10105. * the object being created. If you upload a new part using the same part number
  10106. * that was used with a previous part, the previously uploaded part is overwritten.
  10107. * Each part must be at least 5 MB in size, except the last part. There is no size
  10108. * limit on the last part of your multipart upload.</p> <p>To ensure that data is
  10109. * not corrupted when traversing the network, specify the <code>Content-MD5</code>
  10110. * header in the upload part request. Amazon S3 checks the part data against the
  10111. * provided MD5 value. If they do not match, Amazon S3 returns an error. </p> <p>If
  10112. * the upload request is signed with Signature Version 4, then AWS S3 uses the
  10113. * <code>x-amz-content-sha256</code> header as a checksum instead of
  10114. * <code>Content-MD5</code>. For more information see <a
  10115. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html">Authenticating
  10116. * Requests: Using the Authorization Header (AWS Signature Version 4)</a>. </p> <p>
  10117. * <b>Note:</b> After you initiate multipart upload and upload one or more parts,
  10118. * you must either complete or abort multipart upload in order to stop getting
  10119. * charged for storage of the uploaded parts. Only after you either complete or
  10120. * abort multipart upload, Amazon S3 frees up the parts storage and stops charging
  10121. * you for the parts storage.</p> <p>For more information on multipart uploads, go
  10122. * to <a
  10123. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart
  10124. * Upload Overview</a> in the <i>Amazon S3 User Guide </i>.</p> <p>For information
  10125. * on the permissions required to use the multipart upload API, go to <a
  10126. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  10127. * Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p> <p>You can
  10128. * optionally request server-side encryption where Amazon S3 encrypts your data as
  10129. * it writes it to disks in its data centers and decrypts it for you when you
  10130. * access it. You have the option of providing your own encryption key, or you can
  10131. * use the AWS managed encryption keys. If you choose to provide your own
  10132. * encryption key, the request headers you provide in the request must match the
  10133. * headers you used in the request to initiate the upload by using <a
  10134. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.
  10135. * For more information, go to <a
  10136. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using
  10137. * Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  10138. * <p>Server-side encryption is supported by the S3 Multipart Upload actions.
  10139. * Unless you are using a customer-provided encryption key, you don't need to
  10140. * specify the encryption parameters in each UploadPart request. Instead, you only
  10141. * need to specify the server-side encryption parameters in the initial Initiate
  10142. * Multipart request. For more information, see <a
  10143. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.</p>
  10144. * <p>If you requested server-side encryption using a customer-provided encryption
  10145. * key in your initiate multipart upload request, you must provide identical
  10146. * encryption information in each part upload using the following headers.</p> <ul>
  10147. * <li> <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
  10148. * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
  10149. * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p
  10150. * class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>Code:
  10151. * NoSuchUpload</i> </p> </li> <li> <p> <i>Cause: The specified multipart upload
  10152. * does not exist. The upload ID might be invalid, or the multipart upload might
  10153. * have been aborted or completed.</i> </p> </li> <li> <p> <i> HTTP Status Code:
  10154. * 404 Not Found </i> </p> </li> <li> <p> <i>SOAP Fault Code Prefix: Client</i>
  10155. * </p> </li> </ul> </li> </ul> <p class="title"> <b>Related Resources</b> </p>
  10156. * <ul> <li> <p> <a
  10157. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  10158. * </p> </li> <li> <p> <a
  10159. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  10160. * </p> </li> <li> <p> <a
  10161. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  10162. * </p> </li> <li> <p> <a
  10163. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  10164. * </p> </li> <li> <p> <a
  10165. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  10166. * </p> </li> </ul><p><h3>See Also:</h3> <a
  10167. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPart">AWS API
  10168. * Reference</a></p>
  10169. */
  10170. virtual Model::UploadPartOutcome UploadPart(const Model::UploadPartRequest& request) const;
  10171. /**
  10172. * <p>Uploads a part in a multipart upload.</p> <p>In this operation, you
  10173. * provide part data in your request. However, you have an option to specify your
  10174. * existing Amazon S3 object as a data source for the part you are uploading. To
  10175. * upload a part from an existing object, you use the <a
  10176. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>
  10177. * operation. </p> <p>You must initiate a multipart upload (see <a
  10178. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>)
  10179. * before you can upload any part. In response to your initiate request, Amazon S3
  10180. * returns an upload ID, a unique identifier, that you must include in your upload
  10181. * part request.</p> <p>Part numbers can be any number from 1 to 10,000, inclusive.
  10182. * A part number uniquely identifies a part and also defines its position within
  10183. * the object being created. If you upload a new part using the same part number
  10184. * that was used with a previous part, the previously uploaded part is overwritten.
  10185. * Each part must be at least 5 MB in size, except the last part. There is no size
  10186. * limit on the last part of your multipart upload.</p> <p>To ensure that data is
  10187. * not corrupted when traversing the network, specify the <code>Content-MD5</code>
  10188. * header in the upload part request. Amazon S3 checks the part data against the
  10189. * provided MD5 value. If they do not match, Amazon S3 returns an error. </p> <p>If
  10190. * the upload request is signed with Signature Version 4, then AWS S3 uses the
  10191. * <code>x-amz-content-sha256</code> header as a checksum instead of
  10192. * <code>Content-MD5</code>. For more information see <a
  10193. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html">Authenticating
  10194. * Requests: Using the Authorization Header (AWS Signature Version 4)</a>. </p> <p>
  10195. * <b>Note:</b> After you initiate multipart upload and upload one or more parts,
  10196. * you must either complete or abort multipart upload in order to stop getting
  10197. * charged for storage of the uploaded parts. Only after you either complete or
  10198. * abort multipart upload, Amazon S3 frees up the parts storage and stops charging
  10199. * you for the parts storage.</p> <p>For more information on multipart uploads, go
  10200. * to <a
  10201. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart
  10202. * Upload Overview</a> in the <i>Amazon S3 User Guide </i>.</p> <p>For information
  10203. * on the permissions required to use the multipart upload API, go to <a
  10204. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  10205. * Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p> <p>You can
  10206. * optionally request server-side encryption where Amazon S3 encrypts your data as
  10207. * it writes it to disks in its data centers and decrypts it for you when you
  10208. * access it. You have the option of providing your own encryption key, or you can
  10209. * use the AWS managed encryption keys. If you choose to provide your own
  10210. * encryption key, the request headers you provide in the request must match the
  10211. * headers you used in the request to initiate the upload by using <a
  10212. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.
  10213. * For more information, go to <a
  10214. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using
  10215. * Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  10216. * <p>Server-side encryption is supported by the S3 Multipart Upload actions.
  10217. * Unless you are using a customer-provided encryption key, you don't need to
  10218. * specify the encryption parameters in each UploadPart request. Instead, you only
  10219. * need to specify the server-side encryption parameters in the initial Initiate
  10220. * Multipart request. For more information, see <a
  10221. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.</p>
  10222. * <p>If you requested server-side encryption using a customer-provided encryption
  10223. * key in your initiate multipart upload request, you must provide identical
  10224. * encryption information in each part upload using the following headers.</p> <ul>
  10225. * <li> <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
  10226. * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
  10227. * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p
  10228. * class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>Code:
  10229. * NoSuchUpload</i> </p> </li> <li> <p> <i>Cause: The specified multipart upload
  10230. * does not exist. The upload ID might be invalid, or the multipart upload might
  10231. * have been aborted or completed.</i> </p> </li> <li> <p> <i> HTTP Status Code:
  10232. * 404 Not Found </i> </p> </li> <li> <p> <i>SOAP Fault Code Prefix: Client</i>
  10233. * </p> </li> </ul> </li> </ul> <p class="title"> <b>Related Resources</b> </p>
  10234. * <ul> <li> <p> <a
  10235. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  10236. * </p> </li> <li> <p> <a
  10237. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  10238. * </p> </li> <li> <p> <a
  10239. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  10240. * </p> </li> <li> <p> <a
  10241. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  10242. * </p> </li> <li> <p> <a
  10243. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  10244. * </p> </li> </ul><p><h3>See Also:</h3> <a
  10245. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPart">AWS API
  10246. * Reference</a></p>
  10247. *
  10248. * returns a future to the operation so that it can be executed in parallel to other requests.
  10249. */
  10250. virtual Model::UploadPartOutcomeCallable UploadPartCallable(const Model::UploadPartRequest& request) const;
  10251. /**
  10252. * <p>Uploads a part in a multipart upload.</p> <p>In this operation, you
  10253. * provide part data in your request. However, you have an option to specify your
  10254. * existing Amazon S3 object as a data source for the part you are uploading. To
  10255. * upload a part from an existing object, you use the <a
  10256. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>
  10257. * operation. </p> <p>You must initiate a multipart upload (see <a
  10258. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>)
  10259. * before you can upload any part. In response to your initiate request, Amazon S3
  10260. * returns an upload ID, a unique identifier, that you must include in your upload
  10261. * part request.</p> <p>Part numbers can be any number from 1 to 10,000, inclusive.
  10262. * A part number uniquely identifies a part and also defines its position within
  10263. * the object being created. If you upload a new part using the same part number
  10264. * that was used with a previous part, the previously uploaded part is overwritten.
  10265. * Each part must be at least 5 MB in size, except the last part. There is no size
  10266. * limit on the last part of your multipart upload.</p> <p>To ensure that data is
  10267. * not corrupted when traversing the network, specify the <code>Content-MD5</code>
  10268. * header in the upload part request. Amazon S3 checks the part data against the
  10269. * provided MD5 value. If they do not match, Amazon S3 returns an error. </p> <p>If
  10270. * the upload request is signed with Signature Version 4, then AWS S3 uses the
  10271. * <code>x-amz-content-sha256</code> header as a checksum instead of
  10272. * <code>Content-MD5</code>. For more information see <a
  10273. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html">Authenticating
  10274. * Requests: Using the Authorization Header (AWS Signature Version 4)</a>. </p> <p>
  10275. * <b>Note:</b> After you initiate multipart upload and upload one or more parts,
  10276. * you must either complete or abort multipart upload in order to stop getting
  10277. * charged for storage of the uploaded parts. Only after you either complete or
  10278. * abort multipart upload, Amazon S3 frees up the parts storage and stops charging
  10279. * you for the parts storage.</p> <p>For more information on multipart uploads, go
  10280. * to <a
  10281. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart
  10282. * Upload Overview</a> in the <i>Amazon S3 User Guide </i>.</p> <p>For information
  10283. * on the permissions required to use the multipart upload API, go to <a
  10284. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  10285. * Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p> <p>You can
  10286. * optionally request server-side encryption where Amazon S3 encrypts your data as
  10287. * it writes it to disks in its data centers and decrypts it for you when you
  10288. * access it. You have the option of providing your own encryption key, or you can
  10289. * use the AWS managed encryption keys. If you choose to provide your own
  10290. * encryption key, the request headers you provide in the request must match the
  10291. * headers you used in the request to initiate the upload by using <a
  10292. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.
  10293. * For more information, go to <a
  10294. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using
  10295. * Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  10296. * <p>Server-side encryption is supported by the S3 Multipart Upload actions.
  10297. * Unless you are using a customer-provided encryption key, you don't need to
  10298. * specify the encryption parameters in each UploadPart request. Instead, you only
  10299. * need to specify the server-side encryption parameters in the initial Initiate
  10300. * Multipart request. For more information, see <a
  10301. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.</p>
  10302. * <p>If you requested server-side encryption using a customer-provided encryption
  10303. * key in your initiate multipart upload request, you must provide identical
  10304. * encryption information in each part upload using the following headers.</p> <ul>
  10305. * <li> <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
  10306. * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
  10307. * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p
  10308. * class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>Code:
  10309. * NoSuchUpload</i> </p> </li> <li> <p> <i>Cause: The specified multipart upload
  10310. * does not exist. The upload ID might be invalid, or the multipart upload might
  10311. * have been aborted or completed.</i> </p> </li> <li> <p> <i> HTTP Status Code:
  10312. * 404 Not Found </i> </p> </li> <li> <p> <i>SOAP Fault Code Prefix: Client</i>
  10313. * </p> </li> </ul> </li> </ul> <p class="title"> <b>Related Resources</b> </p>
  10314. * <ul> <li> <p> <a
  10315. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  10316. * </p> </li> <li> <p> <a
  10317. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  10318. * </p> </li> <li> <p> <a
  10319. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  10320. * </p> </li> <li> <p> <a
  10321. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  10322. * </p> </li> <li> <p> <a
  10323. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  10324. * </p> </li> </ul><p><h3>See Also:</h3> <a
  10325. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPart">AWS API
  10326. * Reference</a></p>
  10327. *
  10328. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  10329. */
  10330. virtual void UploadPartAsync(const Model::UploadPartRequest& request, const UploadPartResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  10331. /**
  10332. * <p>Uploads a part by copying data from an existing object as data source. You
  10333. * specify the data source by adding the request header
  10334. * <code>x-amz-copy-source</code> in your request and a byte range by adding the
  10335. * request header <code>x-amz-copy-source-range</code> in your request. </p> <p>The
  10336. * minimum allowable part size for a multipart upload is 5 MB. For more information
  10337. * about multipart upload limits, go to <a
  10338. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html">Quick
  10339. * Facts</a> in the <i>Amazon S3 User Guide</i>. </p> <p>Instead of using an
  10340. * existing object as part data, you might use the <a
  10341. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  10342. * action and provide data in your request.</p> <p>You must initiate a
  10343. * multipart upload before you can upload any part. In response to your initiate
  10344. * request. Amazon S3 returns a unique identifier, the upload ID, that you must
  10345. * include in your upload part request.</p> <p>For more information about using the
  10346. * <code>UploadPartCopy</code> operation, see the following:</p> <ul> <li> <p>For
  10347. * conceptual information about multipart uploads, see <a
  10348. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
  10349. * Objects Using Multipart Upload</a> in the <i>Amazon S3 User Guide</i>.</p> </li>
  10350. * <li> <p>For information about permissions required to use the multipart upload
  10351. * API, see <a
  10352. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  10353. * Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p> </li> <li>
  10354. * <p>For information about copying objects using a single atomic action vs. the
  10355. * multipart upload, see <a
  10356. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html">Operations
  10357. * on Objects</a> in the <i>Amazon S3 User Guide</i>.</p> </li> <li> <p>For
  10358. * information about using server-side encryption with customer-provided encryption
  10359. * keys with the UploadPartCopy operation, see <a
  10360. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
  10361. * and <a
  10362. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>.</p>
  10363. * </li> </ul> <p>Note the following additional considerations about the request
  10364. * headers <code>x-amz-copy-source-if-match</code>,
  10365. * <code>x-amz-copy-source-if-none-match</code>,
  10366. * <code>x-amz-copy-source-if-unmodified-since</code>, and
  10367. * <code>x-amz-copy-source-if-modified-since</code>:</p> <p> </p> <ul> <li> <p>
  10368. * <b>Consideration 1</b> - If both of the <code>x-amz-copy-source-if-match</code>
  10369. * and <code>x-amz-copy-source-if-unmodified-since</code> headers are present in
  10370. * the request as follows:</p> <p> <code>x-amz-copy-source-if-match</code>
  10371. * condition evaluates to <code>true</code>, and;</p> <p>
  10372. * <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to
  10373. * <code>false</code>;</p> <p>Amazon S3 returns <code>200 OK</code> and copies the
  10374. * data. </p> </li> <li> <p> <b>Consideration 2</b> - If both of the
  10375. * <code>x-amz-copy-source-if-none-match</code> and
  10376. * <code>x-amz-copy-source-if-modified-since</code> headers are present in the
  10377. * request as follows:</p> <p> <code>x-amz-copy-source-if-none-match</code>
  10378. * condition evaluates to <code>false</code>, and;</p> <p>
  10379. * <code>x-amz-copy-source-if-modified-since</code> condition evaluates to
  10380. * <code>true</code>;</p> <p>Amazon S3 returns <code>412 Precondition Failed</code>
  10381. * response code. </p> </li> </ul> <p> <b>Versioning</b> </p> <p>If your bucket has
  10382. * versioning enabled, you could have multiple versions of the same object. By
  10383. * default, <code>x-amz-copy-source</code> identifies the current version of the
  10384. * object to copy. If the current version is a delete marker and you don't specify
  10385. * a versionId in the <code>x-amz-copy-source</code>, Amazon S3 returns a 404
  10386. * error, because the object does not exist. If you specify versionId in the
  10387. * <code>x-amz-copy-source</code> and the versionId is a delete marker, Amazon S3
  10388. * returns an HTTP 400 error, because you are not allowed to specify a delete
  10389. * marker as a version for the <code>x-amz-copy-source</code>. </p> <p>You can
  10390. * optionally specify a specific version of the source object to copy by adding the
  10391. * <code>versionId</code> subresource as shown in the following example:</p> <p>
  10392. * <code>x-amz-copy-source: /bucket/object?versionId=version id</code> </p> <p
  10393. * class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>Code:
  10394. * NoSuchUpload</i> </p> </li> <li> <p> <i>Cause: The specified multipart upload
  10395. * does not exist. The upload ID might be invalid, or the multipart upload might
  10396. * have been aborted or completed.</i> </p> </li> <li> <p> <i>HTTP Status Code: 404
  10397. * Not Found</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
  10398. * InvalidRequest</i> </p> </li> <li> <p> <i>Cause: The specified copy source is
  10399. * not supported as a byte-range copy source.</i> </p> </li> <li> <p> <i>HTTP
  10400. * Status Code: 400 Bad Request</i> </p> </li> </ul> </li> </ul> <p class="title">
  10401. * <b>Related Resources</b> </p> <ul> <li> <p> <a
  10402. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  10403. * </p> </li> <li> <p> <a
  10404. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  10405. * </p> </li> <li> <p> <a
  10406. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  10407. * </p> </li> <li> <p> <a
  10408. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  10409. * </p> </li> <li> <p> <a
  10410. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  10411. * </p> </li> <li> <p> <a
  10412. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  10413. * </p> </li> </ul><p><h3>See Also:</h3> <a
  10414. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartCopy">AWS
  10415. * API Reference</a></p>
  10416. */
  10417. virtual Model::UploadPartCopyOutcome UploadPartCopy(const Model::UploadPartCopyRequest& request) const;
  10418. /**
  10419. * <p>Uploads a part by copying data from an existing object as data source. You
  10420. * specify the data source by adding the request header
  10421. * <code>x-amz-copy-source</code> in your request and a byte range by adding the
  10422. * request header <code>x-amz-copy-source-range</code> in your request. </p> <p>The
  10423. * minimum allowable part size for a multipart upload is 5 MB. For more information
  10424. * about multipart upload limits, go to <a
  10425. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html">Quick
  10426. * Facts</a> in the <i>Amazon S3 User Guide</i>. </p> <p>Instead of using an
  10427. * existing object as part data, you might use the <a
  10428. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  10429. * action and provide data in your request.</p> <p>You must initiate a
  10430. * multipart upload before you can upload any part. In response to your initiate
  10431. * request. Amazon S3 returns a unique identifier, the upload ID, that you must
  10432. * include in your upload part request.</p> <p>For more information about using the
  10433. * <code>UploadPartCopy</code> operation, see the following:</p> <ul> <li> <p>For
  10434. * conceptual information about multipart uploads, see <a
  10435. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
  10436. * Objects Using Multipart Upload</a> in the <i>Amazon S3 User Guide</i>.</p> </li>
  10437. * <li> <p>For information about permissions required to use the multipart upload
  10438. * API, see <a
  10439. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  10440. * Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p> </li> <li>
  10441. * <p>For information about copying objects using a single atomic action vs. the
  10442. * multipart upload, see <a
  10443. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html">Operations
  10444. * on Objects</a> in the <i>Amazon S3 User Guide</i>.</p> </li> <li> <p>For
  10445. * information about using server-side encryption with customer-provided encryption
  10446. * keys with the UploadPartCopy operation, see <a
  10447. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
  10448. * and <a
  10449. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>.</p>
  10450. * </li> </ul> <p>Note the following additional considerations about the request
  10451. * headers <code>x-amz-copy-source-if-match</code>,
  10452. * <code>x-amz-copy-source-if-none-match</code>,
  10453. * <code>x-amz-copy-source-if-unmodified-since</code>, and
  10454. * <code>x-amz-copy-source-if-modified-since</code>:</p> <p> </p> <ul> <li> <p>
  10455. * <b>Consideration 1</b> - If both of the <code>x-amz-copy-source-if-match</code>
  10456. * and <code>x-amz-copy-source-if-unmodified-since</code> headers are present in
  10457. * the request as follows:</p> <p> <code>x-amz-copy-source-if-match</code>
  10458. * condition evaluates to <code>true</code>, and;</p> <p>
  10459. * <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to
  10460. * <code>false</code>;</p> <p>Amazon S3 returns <code>200 OK</code> and copies the
  10461. * data. </p> </li> <li> <p> <b>Consideration 2</b> - If both of the
  10462. * <code>x-amz-copy-source-if-none-match</code> and
  10463. * <code>x-amz-copy-source-if-modified-since</code> headers are present in the
  10464. * request as follows:</p> <p> <code>x-amz-copy-source-if-none-match</code>
  10465. * condition evaluates to <code>false</code>, and;</p> <p>
  10466. * <code>x-amz-copy-source-if-modified-since</code> condition evaluates to
  10467. * <code>true</code>;</p> <p>Amazon S3 returns <code>412 Precondition Failed</code>
  10468. * response code. </p> </li> </ul> <p> <b>Versioning</b> </p> <p>If your bucket has
  10469. * versioning enabled, you could have multiple versions of the same object. By
  10470. * default, <code>x-amz-copy-source</code> identifies the current version of the
  10471. * object to copy. If the current version is a delete marker and you don't specify
  10472. * a versionId in the <code>x-amz-copy-source</code>, Amazon S3 returns a 404
  10473. * error, because the object does not exist. If you specify versionId in the
  10474. * <code>x-amz-copy-source</code> and the versionId is a delete marker, Amazon S3
  10475. * returns an HTTP 400 error, because you are not allowed to specify a delete
  10476. * marker as a version for the <code>x-amz-copy-source</code>. </p> <p>You can
  10477. * optionally specify a specific version of the source object to copy by adding the
  10478. * <code>versionId</code> subresource as shown in the following example:</p> <p>
  10479. * <code>x-amz-copy-source: /bucket/object?versionId=version id</code> </p> <p
  10480. * class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>Code:
  10481. * NoSuchUpload</i> </p> </li> <li> <p> <i>Cause: The specified multipart upload
  10482. * does not exist. The upload ID might be invalid, or the multipart upload might
  10483. * have been aborted or completed.</i> </p> </li> <li> <p> <i>HTTP Status Code: 404
  10484. * Not Found</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
  10485. * InvalidRequest</i> </p> </li> <li> <p> <i>Cause: The specified copy source is
  10486. * not supported as a byte-range copy source.</i> </p> </li> <li> <p> <i>HTTP
  10487. * Status Code: 400 Bad Request</i> </p> </li> </ul> </li> </ul> <p class="title">
  10488. * <b>Related Resources</b> </p> <ul> <li> <p> <a
  10489. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  10490. * </p> </li> <li> <p> <a
  10491. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  10492. * </p> </li> <li> <p> <a
  10493. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  10494. * </p> </li> <li> <p> <a
  10495. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  10496. * </p> </li> <li> <p> <a
  10497. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  10498. * </p> </li> <li> <p> <a
  10499. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  10500. * </p> </li> </ul><p><h3>See Also:</h3> <a
  10501. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartCopy">AWS
  10502. * API Reference</a></p>
  10503. *
  10504. * returns a future to the operation so that it can be executed in parallel to other requests.
  10505. */
  10506. virtual Model::UploadPartCopyOutcomeCallable UploadPartCopyCallable(const Model::UploadPartCopyRequest& request) const;
  10507. /**
  10508. * <p>Uploads a part by copying data from an existing object as data source. You
  10509. * specify the data source by adding the request header
  10510. * <code>x-amz-copy-source</code> in your request and a byte range by adding the
  10511. * request header <code>x-amz-copy-source-range</code> in your request. </p> <p>The
  10512. * minimum allowable part size for a multipart upload is 5 MB. For more information
  10513. * about multipart upload limits, go to <a
  10514. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html">Quick
  10515. * Facts</a> in the <i>Amazon S3 User Guide</i>. </p> <p>Instead of using an
  10516. * existing object as part data, you might use the <a
  10517. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  10518. * action and provide data in your request.</p> <p>You must initiate a
  10519. * multipart upload before you can upload any part. In response to your initiate
  10520. * request. Amazon S3 returns a unique identifier, the upload ID, that you must
  10521. * include in your upload part request.</p> <p>For more information about using the
  10522. * <code>UploadPartCopy</code> operation, see the following:</p> <ul> <li> <p>For
  10523. * conceptual information about multipart uploads, see <a
  10524. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
  10525. * Objects Using Multipart Upload</a> in the <i>Amazon S3 User Guide</i>.</p> </li>
  10526. * <li> <p>For information about permissions required to use the multipart upload
  10527. * API, see <a
  10528. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
  10529. * Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p> </li> <li>
  10530. * <p>For information about copying objects using a single atomic action vs. the
  10531. * multipart upload, see <a
  10532. * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html">Operations
  10533. * on Objects</a> in the <i>Amazon S3 User Guide</i>.</p> </li> <li> <p>For
  10534. * information about using server-side encryption with customer-provided encryption
  10535. * keys with the UploadPartCopy operation, see <a
  10536. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
  10537. * and <a
  10538. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>.</p>
  10539. * </li> </ul> <p>Note the following additional considerations about the request
  10540. * headers <code>x-amz-copy-source-if-match</code>,
  10541. * <code>x-amz-copy-source-if-none-match</code>,
  10542. * <code>x-amz-copy-source-if-unmodified-since</code>, and
  10543. * <code>x-amz-copy-source-if-modified-since</code>:</p> <p> </p> <ul> <li> <p>
  10544. * <b>Consideration 1</b> - If both of the <code>x-amz-copy-source-if-match</code>
  10545. * and <code>x-amz-copy-source-if-unmodified-since</code> headers are present in
  10546. * the request as follows:</p> <p> <code>x-amz-copy-source-if-match</code>
  10547. * condition evaluates to <code>true</code>, and;</p> <p>
  10548. * <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to
  10549. * <code>false</code>;</p> <p>Amazon S3 returns <code>200 OK</code> and copies the
  10550. * data. </p> </li> <li> <p> <b>Consideration 2</b> - If both of the
  10551. * <code>x-amz-copy-source-if-none-match</code> and
  10552. * <code>x-amz-copy-source-if-modified-since</code> headers are present in the
  10553. * request as follows:</p> <p> <code>x-amz-copy-source-if-none-match</code>
  10554. * condition evaluates to <code>false</code>, and;</p> <p>
  10555. * <code>x-amz-copy-source-if-modified-since</code> condition evaluates to
  10556. * <code>true</code>;</p> <p>Amazon S3 returns <code>412 Precondition Failed</code>
  10557. * response code. </p> </li> </ul> <p> <b>Versioning</b> </p> <p>If your bucket has
  10558. * versioning enabled, you could have multiple versions of the same object. By
  10559. * default, <code>x-amz-copy-source</code> identifies the current version of the
  10560. * object to copy. If the current version is a delete marker and you don't specify
  10561. * a versionId in the <code>x-amz-copy-source</code>, Amazon S3 returns a 404
  10562. * error, because the object does not exist. If you specify versionId in the
  10563. * <code>x-amz-copy-source</code> and the versionId is a delete marker, Amazon S3
  10564. * returns an HTTP 400 error, because you are not allowed to specify a delete
  10565. * marker as a version for the <code>x-amz-copy-source</code>. </p> <p>You can
  10566. * optionally specify a specific version of the source object to copy by adding the
  10567. * <code>versionId</code> subresource as shown in the following example:</p> <p>
  10568. * <code>x-amz-copy-source: /bucket/object?versionId=version id</code> </p> <p
  10569. * class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>Code:
  10570. * NoSuchUpload</i> </p> </li> <li> <p> <i>Cause: The specified multipart upload
  10571. * does not exist. The upload ID might be invalid, or the multipart upload might
  10572. * have been aborted or completed.</i> </p> </li> <li> <p> <i>HTTP Status Code: 404
  10573. * Not Found</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
  10574. * InvalidRequest</i> </p> </li> <li> <p> <i>Cause: The specified copy source is
  10575. * not supported as a byte-range copy source.</i> </p> </li> <li> <p> <i>HTTP
  10576. * Status Code: 400 Bad Request</i> </p> </li> </ul> </li> </ul> <p class="title">
  10577. * <b>Related Resources</b> </p> <ul> <li> <p> <a
  10578. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
  10579. * </p> </li> <li> <p> <a
  10580. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
  10581. * </p> </li> <li> <p> <a
  10582. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
  10583. * </p> </li> <li> <p> <a
  10584. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
  10585. * </p> </li> <li> <p> <a
  10586. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
  10587. * </p> </li> <li> <p> <a
  10588. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
  10589. * </p> </li> </ul><p><h3>See Also:</h3> <a
  10590. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartCopy">AWS
  10591. * API Reference</a></p>
  10592. *
  10593. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  10594. */
  10595. virtual void UploadPartCopyAsync(const Model::UploadPartCopyRequest& request, const UploadPartCopyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  10596. /**
  10597. * <p>Passes transformed objects to a <code>GetObject</code> operation when using
  10598. * Object Lambda Access Points. For information about Object Lambda Access Points,
  10599. * see <a
  10600. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html">Transforming
  10601. * objects with Object Lambda Access Points</a> in the <i>Amazon S3 User
  10602. * Guide</i>.</p> <p>This operation supports metadata that can be returned by <a
  10603. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>,
  10604. * in addition to <code>RequestRoute</code>, <code>RequestToken</code>,
  10605. * <code>StatusCode</code>, <code>ErrorCode</code>, and <code>ErrorMessage</code>.
  10606. * The <code>GetObject</code> response metadata is supported so that the
  10607. * <code>WriteGetObjectResponse</code> caller, typically an AWS Lambda function,
  10608. * can provide the same metadata when it internally invokes <code>GetObject</code>.
  10609. * When <code>WriteGetObjectResponse</code> is called by a customer-owned Lambda
  10610. * function, the metadata returned to the end user <code>GetObject</code> call
  10611. * might differ from what Amazon S3 would normally return.</p> <p>AWS provides some
  10612. * prebuilt Lambda functions that you can use with S3 Object Lambda to detect and
  10613. * redact personally identifiable information (PII) and decompress S3 objects.
  10614. * These Lambda functions are available in the AWS Serverless Application
  10615. * Repository, and can be selected through the AWS Management Console when you
  10616. * create your Object Lambda Access Point.</p> <p>Example 1: PII Access Control -
  10617. * This Lambda function uses Amazon Comprehend, a natural language processing (NLP)
  10618. * service using machine learning to find insights and relationships in text. It
  10619. * automatically detects personally identifiable information (PII) such as names,
  10620. * addresses, dates, credit card numbers, and social security numbers from
  10621. * documents in your Amazon S3 bucket. </p> <p>Example 2: PII Redaction - This
  10622. * Lambda function uses Amazon Comprehend, a natural language processing (NLP)
  10623. * service using machine learning to find insights and relationships in text. It
  10624. * automatically redacts personally identifiable information (PII) such as names,
  10625. * addresses, dates, credit card numbers, and social security numbers from
  10626. * documents in your Amazon S3 bucket. </p> <p>Example 3: Decompression - The
  10627. * Lambda function S3ObjectLambdaDecompression, is equipped to decompress objects
  10628. * stored in S3 in one of six compressed file formats including bzip2, gzip,
  10629. * snappy, zlib, zstandard and ZIP. </p> <p>For information on how to view and use
  10630. * these functions, see <a
  10631. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html">Using
  10632. * AWS built Lambda functions</a> in the <i>Amazon S3 User Guide</i>.</p><p><h3>See
  10633. * Also:</h3> <a
  10634. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/WriteGetObjectResponse">AWS
  10635. * API Reference</a></p>
  10636. */
  10637. virtual Model::WriteGetObjectResponseOutcome WriteGetObjectResponse(const Model::WriteGetObjectResponseRequest& request) const;
  10638. /**
  10639. * <p>Passes transformed objects to a <code>GetObject</code> operation when using
  10640. * Object Lambda Access Points. For information about Object Lambda Access Points,
  10641. * see <a
  10642. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html">Transforming
  10643. * objects with Object Lambda Access Points</a> in the <i>Amazon S3 User
  10644. * Guide</i>.</p> <p>This operation supports metadata that can be returned by <a
  10645. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>,
  10646. * in addition to <code>RequestRoute</code>, <code>RequestToken</code>,
  10647. * <code>StatusCode</code>, <code>ErrorCode</code>, and <code>ErrorMessage</code>.
  10648. * The <code>GetObject</code> response metadata is supported so that the
  10649. * <code>WriteGetObjectResponse</code> caller, typically an AWS Lambda function,
  10650. * can provide the same metadata when it internally invokes <code>GetObject</code>.
  10651. * When <code>WriteGetObjectResponse</code> is called by a customer-owned Lambda
  10652. * function, the metadata returned to the end user <code>GetObject</code> call
  10653. * might differ from what Amazon S3 would normally return.</p> <p>AWS provides some
  10654. * prebuilt Lambda functions that you can use with S3 Object Lambda to detect and
  10655. * redact personally identifiable information (PII) and decompress S3 objects.
  10656. * These Lambda functions are available in the AWS Serverless Application
  10657. * Repository, and can be selected through the AWS Management Console when you
  10658. * create your Object Lambda Access Point.</p> <p>Example 1: PII Access Control -
  10659. * This Lambda function uses Amazon Comprehend, a natural language processing (NLP)
  10660. * service using machine learning to find insights and relationships in text. It
  10661. * automatically detects personally identifiable information (PII) such as names,
  10662. * addresses, dates, credit card numbers, and social security numbers from
  10663. * documents in your Amazon S3 bucket. </p> <p>Example 2: PII Redaction - This
  10664. * Lambda function uses Amazon Comprehend, a natural language processing (NLP)
  10665. * service using machine learning to find insights and relationships in text. It
  10666. * automatically redacts personally identifiable information (PII) such as names,
  10667. * addresses, dates, credit card numbers, and social security numbers from
  10668. * documents in your Amazon S3 bucket. </p> <p>Example 3: Decompression - The
  10669. * Lambda function S3ObjectLambdaDecompression, is equipped to decompress objects
  10670. * stored in S3 in one of six compressed file formats including bzip2, gzip,
  10671. * snappy, zlib, zstandard and ZIP. </p> <p>For information on how to view and use
  10672. * these functions, see <a
  10673. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html">Using
  10674. * AWS built Lambda functions</a> in the <i>Amazon S3 User Guide</i>.</p><p><h3>See
  10675. * Also:</h3> <a
  10676. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/WriteGetObjectResponse">AWS
  10677. * API Reference</a></p>
  10678. *
  10679. * returns a future to the operation so that it can be executed in parallel to other requests.
  10680. */
  10681. virtual Model::WriteGetObjectResponseOutcomeCallable WriteGetObjectResponseCallable(const Model::WriteGetObjectResponseRequest& request) const;
  10682. /**
  10683. * <p>Passes transformed objects to a <code>GetObject</code> operation when using
  10684. * Object Lambda Access Points. For information about Object Lambda Access Points,
  10685. * see <a
  10686. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html">Transforming
  10687. * objects with Object Lambda Access Points</a> in the <i>Amazon S3 User
  10688. * Guide</i>.</p> <p>This operation supports metadata that can be returned by <a
  10689. * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>,
  10690. * in addition to <code>RequestRoute</code>, <code>RequestToken</code>,
  10691. * <code>StatusCode</code>, <code>ErrorCode</code>, and <code>ErrorMessage</code>.
  10692. * The <code>GetObject</code> response metadata is supported so that the
  10693. * <code>WriteGetObjectResponse</code> caller, typically an AWS Lambda function,
  10694. * can provide the same metadata when it internally invokes <code>GetObject</code>.
  10695. * When <code>WriteGetObjectResponse</code> is called by a customer-owned Lambda
  10696. * function, the metadata returned to the end user <code>GetObject</code> call
  10697. * might differ from what Amazon S3 would normally return.</p> <p>AWS provides some
  10698. * prebuilt Lambda functions that you can use with S3 Object Lambda to detect and
  10699. * redact personally identifiable information (PII) and decompress S3 objects.
  10700. * These Lambda functions are available in the AWS Serverless Application
  10701. * Repository, and can be selected through the AWS Management Console when you
  10702. * create your Object Lambda Access Point.</p> <p>Example 1: PII Access Control -
  10703. * This Lambda function uses Amazon Comprehend, a natural language processing (NLP)
  10704. * service using machine learning to find insights and relationships in text. It
  10705. * automatically detects personally identifiable information (PII) such as names,
  10706. * addresses, dates, credit card numbers, and social security numbers from
  10707. * documents in your Amazon S3 bucket. </p> <p>Example 2: PII Redaction - This
  10708. * Lambda function uses Amazon Comprehend, a natural language processing (NLP)
  10709. * service using machine learning to find insights and relationships in text. It
  10710. * automatically redacts personally identifiable information (PII) such as names,
  10711. * addresses, dates, credit card numbers, and social security numbers from
  10712. * documents in your Amazon S3 bucket. </p> <p>Example 3: Decompression - The
  10713. * Lambda function S3ObjectLambdaDecompression, is equipped to decompress objects
  10714. * stored in S3 in one of six compressed file formats including bzip2, gzip,
  10715. * snappy, zlib, zstandard and ZIP. </p> <p>For information on how to view and use
  10716. * these functions, see <a
  10717. * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html">Using
  10718. * AWS built Lambda functions</a> in the <i>Amazon S3 User Guide</i>.</p><p><h3>See
  10719. * Also:</h3> <a
  10720. * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/WriteGetObjectResponse">AWS
  10721. * API Reference</a></p>
  10722. *
  10723. * Queues the request into a thread executor and triggers associated callback when operation has finished.
  10724. */
  10725. virtual void WriteGetObjectResponseAsync(const Model::WriteGetObjectResponseRequest& request, const WriteGetObjectResponseResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
  10726. Aws::String GeneratePresignedUrl(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, long long expirationInSeconds = MAX_EXPIRATION_SECONDS);
  10727. Aws::String GeneratePresignedUrl(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, const Http::HeaderValueCollection& customizedHeaders, long long expirationInSeconds = MAX_EXPIRATION_SECONDS);
  10728. /**
  10729. * Server Side Encryption Headers and Algorithm
  10730. * Method Algorithm Required Headers
  10731. * SSE-S3 AES256 x-amz-server-side-encryption:AES256
  10732. * SSE-KMS aws:kms x-amz-server-side--encryption:aws:kms, x-amz-server-side-encryption-aws-kms-key-id:<kmsMasterKeyId>
  10733. * SS3-C AES256 x-amz-server-side-encryption-customer-algorithm:AES256, x-amz-server-side-encryption-customer-key:<base64EncodedKey>, x-amz-server-side-encryption-customer-key-MD5:<Base64EncodedMD5ofNonBase64EncodedKey>
  10734. */
  10735. /**
  10736. * Generate presigned URL with Sever Side Encryption(SSE) and with S3 managed keys.
  10737. * https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html (algo: AES256)
  10738. */
  10739. Aws::String GeneratePresignedUrlWithSSES3(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, long long expirationInSeconds = MAX_EXPIRATION_SECONDS);
  10740. /**
  10741. * Generate presigned URL with Sever Side Encryption(SSE) and with S3 managed keys.
  10742. * https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html (algo: AES256)
  10743. * Header: "x-amz-server-side-encryption" will be added internally, don't customize it.
  10744. */
  10745. Aws::String GeneratePresignedUrlWithSSES3(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, Http::HeaderValueCollection customizedHeaders, long long expirationInSeconds = MAX_EXPIRATION_SECONDS);
  10746. /**
  10747. * Generate presigned URL with Server Side Encryption(SSE) and with KMS master key id.
  10748. * if kmsMasterKeyId is empty, we will end up use the default one generated by KMS for you. You can find it via AWS IAM console, it's the one aliased as "aws/s3".
  10749. * https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html (algo: aws:kms)
  10750. */
  10751. Aws::String GeneratePresignedUrlWithSSEKMS(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, const Aws::String& kmsMasterKeyId = "", long long expirationInSeconds = MAX_EXPIRATION_SECONDS);
  10752. /**
  10753. * Generate presigned URL with Server Side Encryption(SSE) and with KMS master key id.
  10754. * if kmsMasterKeyId is empty, we will end up use the default one generated by KMS for you. You can find it via AWS IAM console, it's the one aliased as "aws/s3".
  10755. * https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html (algo: aws:kms)
  10756. * Headers: "x-amz-server-side-encryption" and "x-amz-server-side-encryption-aws-kms-key-id" will be added internally, don't customize them.
  10757. */
  10758. Aws::String GeneratePresignedUrlWithSSEKMS(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, Http::HeaderValueCollection customizedHeaders, const Aws::String& kmsMasterKeyId = "", long long expirationInSeconds = MAX_EXPIRATION_SECONDS);
  10759. /**
  10760. * Generate presigned URL with Sever Side Encryption(SSE) and with customer supplied Key.
  10761. * https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html (algo: AES256)
  10762. */
  10763. Aws::String GeneratePresignedUrlWithSSEC(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, const Aws::String& base64EncodedAES256Key, long long expirationInSeconds = MAX_EXPIRATION_SECONDS);
  10764. /**
  10765. * Generate presigned URL with Sever Side Encryption(SSE) and with customer supplied Key.
  10766. * https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html (algo: AES256)
  10767. * Headers: "x-amz-server-side-encryption-customer-algorithm","x-amz-server-side-encryption-customer-key" and "x-amz-server-side-encryption-customer-key-MD5" will be added internally, don't customize them.
  10768. */
  10769. Aws::String GeneratePresignedUrlWithSSEC(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, Http::HeaderValueCollection customizedHeaders, const Aws::String& base64EncodedAES256Key, long long expirationInSeconds = MAX_EXPIRATION_SECONDS);
  10770. virtual bool MultipartUploadSupported() const;
  10771. void OverrideEndpoint(const Aws::String& endpoint);
  10772. private:
  10773. void init(const Client::ClientConfiguration& clientConfiguration);
  10774. void LoadS3SpecificConfig(const Aws::String& profile);
  10775. ComputeEndpointOutcome ComputeEndpointString(const Aws::String& bucket) const;
  10776. ComputeEndpointOutcome ComputeEndpointString() const;
  10777. ComputeEndpointOutcome ComputeEndpointStringWithServiceName(const Aws::String& serviceNameOverride = "") const;
  10778. void AbortMultipartUploadAsyncHelper(const Model::AbortMultipartUploadRequest& request, const AbortMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10779. void CompleteMultipartUploadAsyncHelper(const Model::CompleteMultipartUploadRequest& request, const CompleteMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10780. void CopyObjectAsyncHelper(const Model::CopyObjectRequest& request, const CopyObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10781. void CreateBucketAsyncHelper(const Model::CreateBucketRequest& request, const CreateBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10782. void CreateMultipartUploadAsyncHelper(const Model::CreateMultipartUploadRequest& request, const CreateMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10783. void DeleteBucketAsyncHelper(const Model::DeleteBucketRequest& request, const DeleteBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10784. void DeleteBucketAnalyticsConfigurationAsyncHelper(const Model::DeleteBucketAnalyticsConfigurationRequest& request, const DeleteBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10785. void DeleteBucketCorsAsyncHelper(const Model::DeleteBucketCorsRequest& request, const DeleteBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10786. void DeleteBucketEncryptionAsyncHelper(const Model::DeleteBucketEncryptionRequest& request, const DeleteBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10787. void DeleteBucketIntelligentTieringConfigurationAsyncHelper(const Model::DeleteBucketIntelligentTieringConfigurationRequest& request, const DeleteBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10788. void DeleteBucketInventoryConfigurationAsyncHelper(const Model::DeleteBucketInventoryConfigurationRequest& request, const DeleteBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10789. void DeleteBucketLifecycleAsyncHelper(const Model::DeleteBucketLifecycleRequest& request, const DeleteBucketLifecycleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10790. void DeleteBucketMetricsConfigurationAsyncHelper(const Model::DeleteBucketMetricsConfigurationRequest& request, const DeleteBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10791. void DeleteBucketOwnershipControlsAsyncHelper(const Model::DeleteBucketOwnershipControlsRequest& request, const DeleteBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10792. void DeleteBucketPolicyAsyncHelper(const Model::DeleteBucketPolicyRequest& request, const DeleteBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10793. void DeleteBucketReplicationAsyncHelper(const Model::DeleteBucketReplicationRequest& request, const DeleteBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10794. void DeleteBucketTaggingAsyncHelper(const Model::DeleteBucketTaggingRequest& request, const DeleteBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10795. void DeleteBucketWebsiteAsyncHelper(const Model::DeleteBucketWebsiteRequest& request, const DeleteBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10796. void DeleteObjectAsyncHelper(const Model::DeleteObjectRequest& request, const DeleteObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10797. void DeleteObjectTaggingAsyncHelper(const Model::DeleteObjectTaggingRequest& request, const DeleteObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10798. void DeleteObjectsAsyncHelper(const Model::DeleteObjectsRequest& request, const DeleteObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10799. void DeletePublicAccessBlockAsyncHelper(const Model::DeletePublicAccessBlockRequest& request, const DeletePublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10800. void GetBucketAccelerateConfigurationAsyncHelper(const Model::GetBucketAccelerateConfigurationRequest& request, const GetBucketAccelerateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10801. void GetBucketAclAsyncHelper(const Model::GetBucketAclRequest& request, const GetBucketAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10802. void GetBucketAnalyticsConfigurationAsyncHelper(const Model::GetBucketAnalyticsConfigurationRequest& request, const GetBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10803. void GetBucketCorsAsyncHelper(const Model::GetBucketCorsRequest& request, const GetBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10804. void GetBucketEncryptionAsyncHelper(const Model::GetBucketEncryptionRequest& request, const GetBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10805. void GetBucketIntelligentTieringConfigurationAsyncHelper(const Model::GetBucketIntelligentTieringConfigurationRequest& request, const GetBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10806. void GetBucketInventoryConfigurationAsyncHelper(const Model::GetBucketInventoryConfigurationRequest& request, const GetBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10807. void GetBucketLifecycleConfigurationAsyncHelper(const Model::GetBucketLifecycleConfigurationRequest& request, const GetBucketLifecycleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10808. void GetBucketLocationAsyncHelper(const Model::GetBucketLocationRequest& request, const GetBucketLocationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10809. void GetBucketLoggingAsyncHelper(const Model::GetBucketLoggingRequest& request, const GetBucketLoggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10810. void GetBucketMetricsConfigurationAsyncHelper(const Model::GetBucketMetricsConfigurationRequest& request, const GetBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10811. void GetBucketNotificationConfigurationAsyncHelper(const Model::GetBucketNotificationConfigurationRequest& request, const GetBucketNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10812. void GetBucketOwnershipControlsAsyncHelper(const Model::GetBucketOwnershipControlsRequest& request, const GetBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10813. void GetBucketPolicyAsyncHelper(const Model::GetBucketPolicyRequest& request, const GetBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10814. void GetBucketPolicyStatusAsyncHelper(const Model::GetBucketPolicyStatusRequest& request, const GetBucketPolicyStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10815. void GetBucketReplicationAsyncHelper(const Model::GetBucketReplicationRequest& request, const GetBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10816. void GetBucketRequestPaymentAsyncHelper(const Model::GetBucketRequestPaymentRequest& request, const GetBucketRequestPaymentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10817. void GetBucketTaggingAsyncHelper(const Model::GetBucketTaggingRequest& request, const GetBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10818. void GetBucketVersioningAsyncHelper(const Model::GetBucketVersioningRequest& request, const GetBucketVersioningResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10819. void GetBucketWebsiteAsyncHelper(const Model::GetBucketWebsiteRequest& request, const GetBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10820. void GetObjectAsyncHelper(const Model::GetObjectRequest& request, const GetObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10821. void GetObjectAclAsyncHelper(const Model::GetObjectAclRequest& request, const GetObjectAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10822. void GetObjectLegalHoldAsyncHelper(const Model::GetObjectLegalHoldRequest& request, const GetObjectLegalHoldResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10823. void GetObjectLockConfigurationAsyncHelper(const Model::GetObjectLockConfigurationRequest& request, const GetObjectLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10824. void GetObjectRetentionAsyncHelper(const Model::GetObjectRetentionRequest& request, const GetObjectRetentionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10825. void GetObjectTaggingAsyncHelper(const Model::GetObjectTaggingRequest& request, const GetObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10826. void GetObjectTorrentAsyncHelper(const Model::GetObjectTorrentRequest& request, const GetObjectTorrentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10827. void GetPublicAccessBlockAsyncHelper(const Model::GetPublicAccessBlockRequest& request, const GetPublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10828. void HeadBucketAsyncHelper(const Model::HeadBucketRequest& request, const HeadBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10829. void HeadObjectAsyncHelper(const Model::HeadObjectRequest& request, const HeadObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10830. void ListBucketAnalyticsConfigurationsAsyncHelper(const Model::ListBucketAnalyticsConfigurationsRequest& request, const ListBucketAnalyticsConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10831. void ListBucketIntelligentTieringConfigurationsAsyncHelper(const Model::ListBucketIntelligentTieringConfigurationsRequest& request, const ListBucketIntelligentTieringConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10832. void ListBucketInventoryConfigurationsAsyncHelper(const Model::ListBucketInventoryConfigurationsRequest& request, const ListBucketInventoryConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10833. void ListBucketMetricsConfigurationsAsyncHelper(const Model::ListBucketMetricsConfigurationsRequest& request, const ListBucketMetricsConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10834. void ListBucketsAsyncHelper(const ListBucketsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10835. void ListMultipartUploadsAsyncHelper(const Model::ListMultipartUploadsRequest& request, const ListMultipartUploadsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10836. void ListObjectVersionsAsyncHelper(const Model::ListObjectVersionsRequest& request, const ListObjectVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10837. void ListObjectsAsyncHelper(const Model::ListObjectsRequest& request, const ListObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10838. void ListObjectsV2AsyncHelper(const Model::ListObjectsV2Request& request, const ListObjectsV2ResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10839. void ListPartsAsyncHelper(const Model::ListPartsRequest& request, const ListPartsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10840. void PutBucketAccelerateConfigurationAsyncHelper(const Model::PutBucketAccelerateConfigurationRequest& request, const PutBucketAccelerateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10841. void PutBucketAclAsyncHelper(const Model::PutBucketAclRequest& request, const PutBucketAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10842. void PutBucketAnalyticsConfigurationAsyncHelper(const Model::PutBucketAnalyticsConfigurationRequest& request, const PutBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10843. void PutBucketCorsAsyncHelper(const Model::PutBucketCorsRequest& request, const PutBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10844. void PutBucketEncryptionAsyncHelper(const Model::PutBucketEncryptionRequest& request, const PutBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10845. void PutBucketIntelligentTieringConfigurationAsyncHelper(const Model::PutBucketIntelligentTieringConfigurationRequest& request, const PutBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10846. void PutBucketInventoryConfigurationAsyncHelper(const Model::PutBucketInventoryConfigurationRequest& request, const PutBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10847. void PutBucketLifecycleConfigurationAsyncHelper(const Model::PutBucketLifecycleConfigurationRequest& request, const PutBucketLifecycleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10848. void PutBucketLoggingAsyncHelper(const Model::PutBucketLoggingRequest& request, const PutBucketLoggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10849. void PutBucketMetricsConfigurationAsyncHelper(const Model::PutBucketMetricsConfigurationRequest& request, const PutBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10850. void PutBucketNotificationConfigurationAsyncHelper(const Model::PutBucketNotificationConfigurationRequest& request, const PutBucketNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10851. void PutBucketOwnershipControlsAsyncHelper(const Model::PutBucketOwnershipControlsRequest& request, const PutBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10852. void PutBucketPolicyAsyncHelper(const Model::PutBucketPolicyRequest& request, const PutBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10853. void PutBucketReplicationAsyncHelper(const Model::PutBucketReplicationRequest& request, const PutBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10854. void PutBucketRequestPaymentAsyncHelper(const Model::PutBucketRequestPaymentRequest& request, const PutBucketRequestPaymentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10855. void PutBucketTaggingAsyncHelper(const Model::PutBucketTaggingRequest& request, const PutBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10856. void PutBucketVersioningAsyncHelper(const Model::PutBucketVersioningRequest& request, const PutBucketVersioningResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10857. void PutBucketWebsiteAsyncHelper(const Model::PutBucketWebsiteRequest& request, const PutBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10858. void PutObjectAsyncHelper(const Model::PutObjectRequest& request, const PutObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10859. void PutObjectAclAsyncHelper(const Model::PutObjectAclRequest& request, const PutObjectAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10860. void PutObjectLegalHoldAsyncHelper(const Model::PutObjectLegalHoldRequest& request, const PutObjectLegalHoldResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10861. void PutObjectLockConfigurationAsyncHelper(const Model::PutObjectLockConfigurationRequest& request, const PutObjectLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10862. void PutObjectRetentionAsyncHelper(const Model::PutObjectRetentionRequest& request, const PutObjectRetentionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10863. void PutObjectTaggingAsyncHelper(const Model::PutObjectTaggingRequest& request, const PutObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10864. void PutPublicAccessBlockAsyncHelper(const Model::PutPublicAccessBlockRequest& request, const PutPublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10865. void RestoreObjectAsyncHelper(const Model::RestoreObjectRequest& request, const RestoreObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10866. void SelectObjectContentAsyncHelper(Model::SelectObjectContentRequest& request, const SelectObjectContentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10867. void UploadPartAsyncHelper(const Model::UploadPartRequest& request, const UploadPartResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10868. void UploadPartCopyAsyncHelper(const Model::UploadPartCopyRequest& request, const UploadPartCopyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10869. void WriteGetObjectResponseAsyncHelper(const Model::WriteGetObjectResponseRequest& request, const WriteGetObjectResponseResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
  10870. Aws::String m_baseUri;
  10871. Aws::String m_scheme;
  10872. bool m_enableHostPrefixInjection;
  10873. Aws::String m_configScheme;
  10874. std::shared_ptr<Utils::Threading::Executor> m_executor;
  10875. bool m_useVirtualAddressing;
  10876. bool m_useDualStack;
  10877. bool m_useArnRegion;
  10878. bool m_useCustomEndpoint;
  10879. Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION m_USEast1RegionalEndpointOption;
  10880. };
  10881. } // namespace S3
  10882. } // namespace Aws