1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192 |
- /**
- * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
- * SPDX-License-Identifier: Apache-2.0.
- */
- #pragma once
- #include <aws/s3/S3_EXPORTS.h>
- #include <aws/s3/S3Errors.h>
- #include <aws/core/client/AWSError.h>
- #include <aws/core/client/ClientConfiguration.h>
- #include <aws/core/client/AWSClient.h>
- #include <aws/core/auth/AWSAuthSigner.h>
- #include <aws/core/utils/memory/stl/AWSString.h>
- #include <aws/core/utils/xml/XmlSerializer.h>
- #include <aws/core/utils/DNS.h>
- #include <aws/s3/model/AbortMultipartUploadResult.h>
- #include <aws/s3/model/CompleteMultipartUploadResult.h>
- #include <aws/s3/model/CopyObjectResult.h>
- #include <aws/s3/model/CreateBucketResult.h>
- #include <aws/s3/model/CreateMultipartUploadResult.h>
- #include <aws/s3/model/DeleteObjectResult.h>
- #include <aws/s3/model/DeleteObjectTaggingResult.h>
- #include <aws/s3/model/DeleteObjectsResult.h>
- #include <aws/s3/model/GetBucketAccelerateConfigurationResult.h>
- #include <aws/s3/model/GetBucketAclResult.h>
- #include <aws/s3/model/GetBucketAnalyticsConfigurationResult.h>
- #include <aws/s3/model/GetBucketCorsResult.h>
- #include <aws/s3/model/GetBucketEncryptionResult.h>
- #include <aws/s3/model/GetBucketIntelligentTieringConfigurationResult.h>
- #include <aws/s3/model/GetBucketInventoryConfigurationResult.h>
- #include <aws/s3/model/GetBucketLifecycleConfigurationResult.h>
- #include <aws/s3/model/GetBucketLocationResult.h>
- #include <aws/s3/model/GetBucketLoggingResult.h>
- #include <aws/s3/model/GetBucketMetricsConfigurationResult.h>
- #include <aws/s3/model/GetBucketNotificationConfigurationResult.h>
- #include <aws/s3/model/GetBucketOwnershipControlsResult.h>
- #include <aws/s3/model/GetBucketPolicyResult.h>
- #include <aws/s3/model/GetBucketPolicyStatusResult.h>
- #include <aws/s3/model/GetBucketReplicationResult.h>
- #include <aws/s3/model/GetBucketRequestPaymentResult.h>
- #include <aws/s3/model/GetBucketTaggingResult.h>
- #include <aws/s3/model/GetBucketVersioningResult.h>
- #include <aws/s3/model/GetBucketWebsiteResult.h>
- #include <aws/s3/model/GetObjectResult.h>
- #include <aws/s3/model/GetObjectAclResult.h>
- #include <aws/s3/model/GetObjectLegalHoldResult.h>
- #include <aws/s3/model/GetObjectLockConfigurationResult.h>
- #include <aws/s3/model/GetObjectRetentionResult.h>
- #include <aws/s3/model/GetObjectTaggingResult.h>
- #include <aws/s3/model/GetObjectTorrentResult.h>
- #include <aws/s3/model/GetPublicAccessBlockResult.h>
- #include <aws/s3/model/HeadObjectResult.h>
- #include <aws/s3/model/ListBucketAnalyticsConfigurationsResult.h>
- #include <aws/s3/model/ListBucketIntelligentTieringConfigurationsResult.h>
- #include <aws/s3/model/ListBucketInventoryConfigurationsResult.h>
- #include <aws/s3/model/ListBucketMetricsConfigurationsResult.h>
- #include <aws/s3/model/ListBucketsResult.h>
- #include <aws/s3/model/ListMultipartUploadsResult.h>
- #include <aws/s3/model/ListObjectVersionsResult.h>
- #include <aws/s3/model/ListObjectsResult.h>
- #include <aws/s3/model/ListObjectsV2Result.h>
- #include <aws/s3/model/ListPartsResult.h>
- #include <aws/s3/model/PutObjectResult.h>
- #include <aws/s3/model/PutObjectAclResult.h>
- #include <aws/s3/model/PutObjectLegalHoldResult.h>
- #include <aws/s3/model/PutObjectLockConfigurationResult.h>
- #include <aws/s3/model/PutObjectRetentionResult.h>
- #include <aws/s3/model/PutObjectTaggingResult.h>
- #include <aws/s3/model/RestoreObjectResult.h>
- #include <aws/s3/model/UploadPartResult.h>
- #include <aws/s3/model/UploadPartCopyResult.h>
- #include <aws/core/NoResult.h>
- #include <aws/core/client/AsyncCallerContext.h>
- #include <aws/core/http/HttpTypes.h>
- #include <future>
- #include <functional>
- namespace Aws
- {
- namespace Http
- {
- class HttpClient;
- class HttpClientFactory;
- } // namespace Http
- namespace Utils
- {
- template< typename R, typename E> class Outcome;
- namespace Threading
- {
- class Executor;
- } // namespace Threading
- namespace Xml
- {
- class XmlDocument;
- } // namespace Xml
- } // namespace Utils
- namespace Auth
- {
- class AWSCredentials;
- class AWSCredentialsProvider;
- } // namespace Auth
- namespace Client
- {
- class RetryStrategy;
- } // namespace Client
- namespace S3
- {
- namespace Model
- {
- class AbortMultipartUploadRequest;
- class CompleteMultipartUploadRequest;
- class CopyObjectRequest;
- class CreateBucketRequest;
- class CreateMultipartUploadRequest;
- class DeleteBucketRequest;
- class DeleteBucketAnalyticsConfigurationRequest;
- class DeleteBucketCorsRequest;
- class DeleteBucketEncryptionRequest;
- class DeleteBucketIntelligentTieringConfigurationRequest;
- class DeleteBucketInventoryConfigurationRequest;
- class DeleteBucketLifecycleRequest;
- class DeleteBucketMetricsConfigurationRequest;
- class DeleteBucketOwnershipControlsRequest;
- class DeleteBucketPolicyRequest;
- class DeleteBucketReplicationRequest;
- class DeleteBucketTaggingRequest;
- class DeleteBucketWebsiteRequest;
- class DeleteObjectRequest;
- class DeleteObjectTaggingRequest;
- class DeleteObjectsRequest;
- class DeletePublicAccessBlockRequest;
- class GetBucketAccelerateConfigurationRequest;
- class GetBucketAclRequest;
- class GetBucketAnalyticsConfigurationRequest;
- class GetBucketCorsRequest;
- class GetBucketEncryptionRequest;
- class GetBucketIntelligentTieringConfigurationRequest;
- class GetBucketInventoryConfigurationRequest;
- class GetBucketLifecycleConfigurationRequest;
- class GetBucketLocationRequest;
- class GetBucketLoggingRequest;
- class GetBucketMetricsConfigurationRequest;
- class GetBucketNotificationConfigurationRequest;
- class GetBucketOwnershipControlsRequest;
- class GetBucketPolicyRequest;
- class GetBucketPolicyStatusRequest;
- class GetBucketReplicationRequest;
- class GetBucketRequestPaymentRequest;
- class GetBucketTaggingRequest;
- class GetBucketVersioningRequest;
- class GetBucketWebsiteRequest;
- class GetObjectRequest;
- class GetObjectAclRequest;
- class GetObjectLegalHoldRequest;
- class GetObjectLockConfigurationRequest;
- class GetObjectRetentionRequest;
- class GetObjectTaggingRequest;
- class GetObjectTorrentRequest;
- class GetPublicAccessBlockRequest;
- class HeadBucketRequest;
- class HeadObjectRequest;
- class ListBucketAnalyticsConfigurationsRequest;
- class ListBucketIntelligentTieringConfigurationsRequest;
- class ListBucketInventoryConfigurationsRequest;
- class ListBucketMetricsConfigurationsRequest;
- class ListMultipartUploadsRequest;
- class ListObjectVersionsRequest;
- class ListObjectsRequest;
- class ListObjectsV2Request;
- class ListPartsRequest;
- class PutBucketAccelerateConfigurationRequest;
- class PutBucketAclRequest;
- class PutBucketAnalyticsConfigurationRequest;
- class PutBucketCorsRequest;
- class PutBucketEncryptionRequest;
- class PutBucketIntelligentTieringConfigurationRequest;
- class PutBucketInventoryConfigurationRequest;
- class PutBucketLifecycleConfigurationRequest;
- class PutBucketLoggingRequest;
- class PutBucketMetricsConfigurationRequest;
- class PutBucketNotificationConfigurationRequest;
- class PutBucketOwnershipControlsRequest;
- class PutBucketPolicyRequest;
- class PutBucketReplicationRequest;
- class PutBucketRequestPaymentRequest;
- class PutBucketTaggingRequest;
- class PutBucketVersioningRequest;
- class PutBucketWebsiteRequest;
- class PutObjectRequest;
- class PutObjectAclRequest;
- class PutObjectLegalHoldRequest;
- class PutObjectLockConfigurationRequest;
- class PutObjectRetentionRequest;
- class PutObjectTaggingRequest;
- class PutPublicAccessBlockRequest;
- class RestoreObjectRequest;
- class SelectObjectContentRequest;
- class UploadPartRequest;
- class UploadPartCopyRequest;
- class WriteGetObjectResponseRequest;
- typedef Aws::Utils::Outcome<AbortMultipartUploadResult, S3Error> AbortMultipartUploadOutcome;
- typedef Aws::Utils::Outcome<CompleteMultipartUploadResult, S3Error> CompleteMultipartUploadOutcome;
- typedef Aws::Utils::Outcome<CopyObjectResult, S3Error> CopyObjectOutcome;
- typedef Aws::Utils::Outcome<CreateBucketResult, S3Error> CreateBucketOutcome;
- typedef Aws::Utils::Outcome<CreateMultipartUploadResult, S3Error> CreateMultipartUploadOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketAnalyticsConfigurationOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketCorsOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketEncryptionOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketIntelligentTieringConfigurationOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketInventoryConfigurationOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketLifecycleOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketMetricsConfigurationOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketOwnershipControlsOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketPolicyOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketReplicationOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketTaggingOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeleteBucketWebsiteOutcome;
- typedef Aws::Utils::Outcome<DeleteObjectResult, S3Error> DeleteObjectOutcome;
- typedef Aws::Utils::Outcome<DeleteObjectTaggingResult, S3Error> DeleteObjectTaggingOutcome;
- typedef Aws::Utils::Outcome<DeleteObjectsResult, S3Error> DeleteObjectsOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> DeletePublicAccessBlockOutcome;
- typedef Aws::Utils::Outcome<GetBucketAccelerateConfigurationResult, S3Error> GetBucketAccelerateConfigurationOutcome;
- typedef Aws::Utils::Outcome<GetBucketAclResult, S3Error> GetBucketAclOutcome;
- typedef Aws::Utils::Outcome<GetBucketAnalyticsConfigurationResult, S3Error> GetBucketAnalyticsConfigurationOutcome;
- typedef Aws::Utils::Outcome<GetBucketCorsResult, S3Error> GetBucketCorsOutcome;
- typedef Aws::Utils::Outcome<GetBucketEncryptionResult, S3Error> GetBucketEncryptionOutcome;
- typedef Aws::Utils::Outcome<GetBucketIntelligentTieringConfigurationResult, S3Error> GetBucketIntelligentTieringConfigurationOutcome;
- typedef Aws::Utils::Outcome<GetBucketInventoryConfigurationResult, S3Error> GetBucketInventoryConfigurationOutcome;
- typedef Aws::Utils::Outcome<GetBucketLifecycleConfigurationResult, S3Error> GetBucketLifecycleConfigurationOutcome;
- typedef Aws::Utils::Outcome<GetBucketLocationResult, S3Error> GetBucketLocationOutcome;
- typedef Aws::Utils::Outcome<GetBucketLoggingResult, S3Error> GetBucketLoggingOutcome;
- typedef Aws::Utils::Outcome<GetBucketMetricsConfigurationResult, S3Error> GetBucketMetricsConfigurationOutcome;
- typedef Aws::Utils::Outcome<GetBucketNotificationConfigurationResult, S3Error> GetBucketNotificationConfigurationOutcome;
- typedef Aws::Utils::Outcome<GetBucketOwnershipControlsResult, S3Error> GetBucketOwnershipControlsOutcome;
- typedef Aws::Utils::Outcome<GetBucketPolicyResult, S3Error> GetBucketPolicyOutcome;
- typedef Aws::Utils::Outcome<GetBucketPolicyStatusResult, S3Error> GetBucketPolicyStatusOutcome;
- typedef Aws::Utils::Outcome<GetBucketReplicationResult, S3Error> GetBucketReplicationOutcome;
- typedef Aws::Utils::Outcome<GetBucketRequestPaymentResult, S3Error> GetBucketRequestPaymentOutcome;
- typedef Aws::Utils::Outcome<GetBucketTaggingResult, S3Error> GetBucketTaggingOutcome;
- typedef Aws::Utils::Outcome<GetBucketVersioningResult, S3Error> GetBucketVersioningOutcome;
- typedef Aws::Utils::Outcome<GetBucketWebsiteResult, S3Error> GetBucketWebsiteOutcome;
- typedef Aws::Utils::Outcome<GetObjectResult, S3Error> GetObjectOutcome;
- typedef Aws::Utils::Outcome<GetObjectAclResult, S3Error> GetObjectAclOutcome;
- typedef Aws::Utils::Outcome<GetObjectLegalHoldResult, S3Error> GetObjectLegalHoldOutcome;
- typedef Aws::Utils::Outcome<GetObjectLockConfigurationResult, S3Error> GetObjectLockConfigurationOutcome;
- typedef Aws::Utils::Outcome<GetObjectRetentionResult, S3Error> GetObjectRetentionOutcome;
- typedef Aws::Utils::Outcome<GetObjectTaggingResult, S3Error> GetObjectTaggingOutcome;
- typedef Aws::Utils::Outcome<GetObjectTorrentResult, S3Error> GetObjectTorrentOutcome;
- typedef Aws::Utils::Outcome<GetPublicAccessBlockResult, S3Error> GetPublicAccessBlockOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> HeadBucketOutcome;
- typedef Aws::Utils::Outcome<HeadObjectResult, S3Error> HeadObjectOutcome;
- typedef Aws::Utils::Outcome<ListBucketAnalyticsConfigurationsResult, S3Error> ListBucketAnalyticsConfigurationsOutcome;
- typedef Aws::Utils::Outcome<ListBucketIntelligentTieringConfigurationsResult, S3Error> ListBucketIntelligentTieringConfigurationsOutcome;
- typedef Aws::Utils::Outcome<ListBucketInventoryConfigurationsResult, S3Error> ListBucketInventoryConfigurationsOutcome;
- typedef Aws::Utils::Outcome<ListBucketMetricsConfigurationsResult, S3Error> ListBucketMetricsConfigurationsOutcome;
- typedef Aws::Utils::Outcome<ListBucketsResult, S3Error> ListBucketsOutcome;
- typedef Aws::Utils::Outcome<ListMultipartUploadsResult, S3Error> ListMultipartUploadsOutcome;
- typedef Aws::Utils::Outcome<ListObjectVersionsResult, S3Error> ListObjectVersionsOutcome;
- typedef Aws::Utils::Outcome<ListObjectsResult, S3Error> ListObjectsOutcome;
- typedef Aws::Utils::Outcome<ListObjectsV2Result, S3Error> ListObjectsV2Outcome;
- typedef Aws::Utils::Outcome<ListPartsResult, S3Error> ListPartsOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketAccelerateConfigurationOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketAclOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketAnalyticsConfigurationOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketCorsOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketEncryptionOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketIntelligentTieringConfigurationOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketInventoryConfigurationOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketLifecycleConfigurationOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketLoggingOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketMetricsConfigurationOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketNotificationConfigurationOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketOwnershipControlsOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketPolicyOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketReplicationOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketRequestPaymentOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketTaggingOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketVersioningOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutBucketWebsiteOutcome;
- typedef Aws::Utils::Outcome<PutObjectResult, S3Error> PutObjectOutcome;
- typedef Aws::Utils::Outcome<PutObjectAclResult, S3Error> PutObjectAclOutcome;
- typedef Aws::Utils::Outcome<PutObjectLegalHoldResult, S3Error> PutObjectLegalHoldOutcome;
- typedef Aws::Utils::Outcome<PutObjectLockConfigurationResult, S3Error> PutObjectLockConfigurationOutcome;
- typedef Aws::Utils::Outcome<PutObjectRetentionResult, S3Error> PutObjectRetentionOutcome;
- typedef Aws::Utils::Outcome<PutObjectTaggingResult, S3Error> PutObjectTaggingOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> PutPublicAccessBlockOutcome;
- typedef Aws::Utils::Outcome<RestoreObjectResult, S3Error> RestoreObjectOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> SelectObjectContentOutcome;
- typedef Aws::Utils::Outcome<UploadPartResult, S3Error> UploadPartOutcome;
- typedef Aws::Utils::Outcome<UploadPartCopyResult, S3Error> UploadPartCopyOutcome;
- typedef Aws::Utils::Outcome<Aws::NoResult, S3Error> WriteGetObjectResponseOutcome;
- typedef std::future<AbortMultipartUploadOutcome> AbortMultipartUploadOutcomeCallable;
- typedef std::future<CompleteMultipartUploadOutcome> CompleteMultipartUploadOutcomeCallable;
- typedef std::future<CopyObjectOutcome> CopyObjectOutcomeCallable;
- typedef std::future<CreateBucketOutcome> CreateBucketOutcomeCallable;
- typedef std::future<CreateMultipartUploadOutcome> CreateMultipartUploadOutcomeCallable;
- typedef std::future<DeleteBucketOutcome> DeleteBucketOutcomeCallable;
- typedef std::future<DeleteBucketAnalyticsConfigurationOutcome> DeleteBucketAnalyticsConfigurationOutcomeCallable;
- typedef std::future<DeleteBucketCorsOutcome> DeleteBucketCorsOutcomeCallable;
- typedef std::future<DeleteBucketEncryptionOutcome> DeleteBucketEncryptionOutcomeCallable;
- typedef std::future<DeleteBucketIntelligentTieringConfigurationOutcome> DeleteBucketIntelligentTieringConfigurationOutcomeCallable;
- typedef std::future<DeleteBucketInventoryConfigurationOutcome> DeleteBucketInventoryConfigurationOutcomeCallable;
- typedef std::future<DeleteBucketLifecycleOutcome> DeleteBucketLifecycleOutcomeCallable;
- typedef std::future<DeleteBucketMetricsConfigurationOutcome> DeleteBucketMetricsConfigurationOutcomeCallable;
- typedef std::future<DeleteBucketOwnershipControlsOutcome> DeleteBucketOwnershipControlsOutcomeCallable;
- typedef std::future<DeleteBucketPolicyOutcome> DeleteBucketPolicyOutcomeCallable;
- typedef std::future<DeleteBucketReplicationOutcome> DeleteBucketReplicationOutcomeCallable;
- typedef std::future<DeleteBucketTaggingOutcome> DeleteBucketTaggingOutcomeCallable;
- typedef std::future<DeleteBucketWebsiteOutcome> DeleteBucketWebsiteOutcomeCallable;
- typedef std::future<DeleteObjectOutcome> DeleteObjectOutcomeCallable;
- typedef std::future<DeleteObjectTaggingOutcome> DeleteObjectTaggingOutcomeCallable;
- typedef std::future<DeleteObjectsOutcome> DeleteObjectsOutcomeCallable;
- typedef std::future<DeletePublicAccessBlockOutcome> DeletePublicAccessBlockOutcomeCallable;
- typedef std::future<GetBucketAccelerateConfigurationOutcome> GetBucketAccelerateConfigurationOutcomeCallable;
- typedef std::future<GetBucketAclOutcome> GetBucketAclOutcomeCallable;
- typedef std::future<GetBucketAnalyticsConfigurationOutcome> GetBucketAnalyticsConfigurationOutcomeCallable;
- typedef std::future<GetBucketCorsOutcome> GetBucketCorsOutcomeCallable;
- typedef std::future<GetBucketEncryptionOutcome> GetBucketEncryptionOutcomeCallable;
- typedef std::future<GetBucketIntelligentTieringConfigurationOutcome> GetBucketIntelligentTieringConfigurationOutcomeCallable;
- typedef std::future<GetBucketInventoryConfigurationOutcome> GetBucketInventoryConfigurationOutcomeCallable;
- typedef std::future<GetBucketLifecycleConfigurationOutcome> GetBucketLifecycleConfigurationOutcomeCallable;
- typedef std::future<GetBucketLocationOutcome> GetBucketLocationOutcomeCallable;
- typedef std::future<GetBucketLoggingOutcome> GetBucketLoggingOutcomeCallable;
- typedef std::future<GetBucketMetricsConfigurationOutcome> GetBucketMetricsConfigurationOutcomeCallable;
- typedef std::future<GetBucketNotificationConfigurationOutcome> GetBucketNotificationConfigurationOutcomeCallable;
- typedef std::future<GetBucketOwnershipControlsOutcome> GetBucketOwnershipControlsOutcomeCallable;
- typedef std::future<GetBucketPolicyOutcome> GetBucketPolicyOutcomeCallable;
- typedef std::future<GetBucketPolicyStatusOutcome> GetBucketPolicyStatusOutcomeCallable;
- typedef std::future<GetBucketReplicationOutcome> GetBucketReplicationOutcomeCallable;
- typedef std::future<GetBucketRequestPaymentOutcome> GetBucketRequestPaymentOutcomeCallable;
- typedef std::future<GetBucketTaggingOutcome> GetBucketTaggingOutcomeCallable;
- typedef std::future<GetBucketVersioningOutcome> GetBucketVersioningOutcomeCallable;
- typedef std::future<GetBucketWebsiteOutcome> GetBucketWebsiteOutcomeCallable;
- typedef std::future<GetObjectOutcome> GetObjectOutcomeCallable;
- typedef std::future<GetObjectAclOutcome> GetObjectAclOutcomeCallable;
- typedef std::future<GetObjectLegalHoldOutcome> GetObjectLegalHoldOutcomeCallable;
- typedef std::future<GetObjectLockConfigurationOutcome> GetObjectLockConfigurationOutcomeCallable;
- typedef std::future<GetObjectRetentionOutcome> GetObjectRetentionOutcomeCallable;
- typedef std::future<GetObjectTaggingOutcome> GetObjectTaggingOutcomeCallable;
- typedef std::future<GetObjectTorrentOutcome> GetObjectTorrentOutcomeCallable;
- typedef std::future<GetPublicAccessBlockOutcome> GetPublicAccessBlockOutcomeCallable;
- typedef std::future<HeadBucketOutcome> HeadBucketOutcomeCallable;
- typedef std::future<HeadObjectOutcome> HeadObjectOutcomeCallable;
- typedef std::future<ListBucketAnalyticsConfigurationsOutcome> ListBucketAnalyticsConfigurationsOutcomeCallable;
- typedef std::future<ListBucketIntelligentTieringConfigurationsOutcome> ListBucketIntelligentTieringConfigurationsOutcomeCallable;
- typedef std::future<ListBucketInventoryConfigurationsOutcome> ListBucketInventoryConfigurationsOutcomeCallable;
- typedef std::future<ListBucketMetricsConfigurationsOutcome> ListBucketMetricsConfigurationsOutcomeCallable;
- typedef std::future<ListBucketsOutcome> ListBucketsOutcomeCallable;
- typedef std::future<ListMultipartUploadsOutcome> ListMultipartUploadsOutcomeCallable;
- typedef std::future<ListObjectVersionsOutcome> ListObjectVersionsOutcomeCallable;
- typedef std::future<ListObjectsOutcome> ListObjectsOutcomeCallable;
- typedef std::future<ListObjectsV2Outcome> ListObjectsV2OutcomeCallable;
- typedef std::future<ListPartsOutcome> ListPartsOutcomeCallable;
- typedef std::future<PutBucketAccelerateConfigurationOutcome> PutBucketAccelerateConfigurationOutcomeCallable;
- typedef std::future<PutBucketAclOutcome> PutBucketAclOutcomeCallable;
- typedef std::future<PutBucketAnalyticsConfigurationOutcome> PutBucketAnalyticsConfigurationOutcomeCallable;
- typedef std::future<PutBucketCorsOutcome> PutBucketCorsOutcomeCallable;
- typedef std::future<PutBucketEncryptionOutcome> PutBucketEncryptionOutcomeCallable;
- typedef std::future<PutBucketIntelligentTieringConfigurationOutcome> PutBucketIntelligentTieringConfigurationOutcomeCallable;
- typedef std::future<PutBucketInventoryConfigurationOutcome> PutBucketInventoryConfigurationOutcomeCallable;
- typedef std::future<PutBucketLifecycleConfigurationOutcome> PutBucketLifecycleConfigurationOutcomeCallable;
- typedef std::future<PutBucketLoggingOutcome> PutBucketLoggingOutcomeCallable;
- typedef std::future<PutBucketMetricsConfigurationOutcome> PutBucketMetricsConfigurationOutcomeCallable;
- typedef std::future<PutBucketNotificationConfigurationOutcome> PutBucketNotificationConfigurationOutcomeCallable;
- typedef std::future<PutBucketOwnershipControlsOutcome> PutBucketOwnershipControlsOutcomeCallable;
- typedef std::future<PutBucketPolicyOutcome> PutBucketPolicyOutcomeCallable;
- typedef std::future<PutBucketReplicationOutcome> PutBucketReplicationOutcomeCallable;
- typedef std::future<PutBucketRequestPaymentOutcome> PutBucketRequestPaymentOutcomeCallable;
- typedef std::future<PutBucketTaggingOutcome> PutBucketTaggingOutcomeCallable;
- typedef std::future<PutBucketVersioningOutcome> PutBucketVersioningOutcomeCallable;
- typedef std::future<PutBucketWebsiteOutcome> PutBucketWebsiteOutcomeCallable;
- typedef std::future<PutObjectOutcome> PutObjectOutcomeCallable;
- typedef std::future<PutObjectAclOutcome> PutObjectAclOutcomeCallable;
- typedef std::future<PutObjectLegalHoldOutcome> PutObjectLegalHoldOutcomeCallable;
- typedef std::future<PutObjectLockConfigurationOutcome> PutObjectLockConfigurationOutcomeCallable;
- typedef std::future<PutObjectRetentionOutcome> PutObjectRetentionOutcomeCallable;
- typedef std::future<PutObjectTaggingOutcome> PutObjectTaggingOutcomeCallable;
- typedef std::future<PutPublicAccessBlockOutcome> PutPublicAccessBlockOutcomeCallable;
- typedef std::future<RestoreObjectOutcome> RestoreObjectOutcomeCallable;
- typedef std::future<SelectObjectContentOutcome> SelectObjectContentOutcomeCallable;
- typedef std::future<UploadPartOutcome> UploadPartOutcomeCallable;
- typedef std::future<UploadPartCopyOutcome> UploadPartCopyOutcomeCallable;
- typedef std::future<WriteGetObjectResponseOutcome> WriteGetObjectResponseOutcomeCallable;
- } // namespace Model
- namespace SSEHeaders
- {
- static const char SERVER_SIDE_ENCRYPTION[] = "x-amz-server-side-encryption";
- static const char SERVER_SIDE_ENCRYPTION_AWS_KMS_KEY_ID[] = "x-amz-server-side-encryption-aws-kms-key-id";
- static const char SERVER_SIDE_ENCRYPTION_CUSTOMER_ALGORITHM[] = "x-amz-server-side-encryption-customer-algorithm";
- static const char SERVER_SIDE_ENCRYPTION_CUSTOMER_KEY[] = "x-amz-server-side-encryption-customer-key";
- static const char SERVER_SIDE_ENCRYPTION_CUSTOMER_KEY_MD5[] = "x-amz-server-side-encryption-customer-key-MD5";
- } // SS3Headers
- class S3Client;
- typedef std::function<void(const S3Client*, const Model::AbortMultipartUploadRequest&, const Model::AbortMultipartUploadOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AbortMultipartUploadResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::CompleteMultipartUploadRequest&, const Model::CompleteMultipartUploadOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CompleteMultipartUploadResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::CopyObjectRequest&, const Model::CopyObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CopyObjectResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::CreateBucketRequest&, const Model::CreateBucketOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateBucketResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::CreateMultipartUploadRequest&, const Model::CreateMultipartUploadOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateMultipartUploadResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteBucketRequest&, const Model::DeleteBucketOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteBucketAnalyticsConfigurationRequest&, const Model::DeleteBucketAnalyticsConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketAnalyticsConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteBucketCorsRequest&, const Model::DeleteBucketCorsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketCorsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteBucketEncryptionRequest&, const Model::DeleteBucketEncryptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketEncryptionResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteBucketIntelligentTieringConfigurationRequest&, const Model::DeleteBucketIntelligentTieringConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketIntelligentTieringConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteBucketInventoryConfigurationRequest&, const Model::DeleteBucketInventoryConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketInventoryConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteBucketLifecycleRequest&, const Model::DeleteBucketLifecycleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketLifecycleResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteBucketMetricsConfigurationRequest&, const Model::DeleteBucketMetricsConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketMetricsConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteBucketOwnershipControlsRequest&, const Model::DeleteBucketOwnershipControlsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketOwnershipControlsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteBucketPolicyRequest&, const Model::DeleteBucketPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketPolicyResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteBucketReplicationRequest&, const Model::DeleteBucketReplicationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketReplicationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteBucketTaggingRequest&, const Model::DeleteBucketTaggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketTaggingResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteBucketWebsiteRequest&, const Model::DeleteBucketWebsiteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBucketWebsiteResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteObjectRequest&, const Model::DeleteObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteObjectResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteObjectTaggingRequest&, const Model::DeleteObjectTaggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteObjectTaggingResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeleteObjectsRequest&, const Model::DeleteObjectsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteObjectsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::DeletePublicAccessBlockRequest&, const Model::DeletePublicAccessBlockOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeletePublicAccessBlockResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketAccelerateConfigurationRequest&, const Model::GetBucketAccelerateConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketAccelerateConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketAclRequest&, const Model::GetBucketAclOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketAclResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketAnalyticsConfigurationRequest&, const Model::GetBucketAnalyticsConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketAnalyticsConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketCorsRequest&, const Model::GetBucketCorsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketCorsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketEncryptionRequest&, const Model::GetBucketEncryptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketEncryptionResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketIntelligentTieringConfigurationRequest&, const Model::GetBucketIntelligentTieringConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketIntelligentTieringConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketInventoryConfigurationRequest&, const Model::GetBucketInventoryConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketInventoryConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketLifecycleConfigurationRequest&, const Model::GetBucketLifecycleConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketLifecycleConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketLocationRequest&, const Model::GetBucketLocationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketLocationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketLoggingRequest&, const Model::GetBucketLoggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketLoggingResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketMetricsConfigurationRequest&, const Model::GetBucketMetricsConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketMetricsConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketNotificationConfigurationRequest&, const Model::GetBucketNotificationConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketNotificationConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketOwnershipControlsRequest&, const Model::GetBucketOwnershipControlsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketOwnershipControlsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketPolicyRequest&, Model::GetBucketPolicyOutcome, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketPolicyResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketPolicyStatusRequest&, const Model::GetBucketPolicyStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketPolicyStatusResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketReplicationRequest&, const Model::GetBucketReplicationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketReplicationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketRequestPaymentRequest&, const Model::GetBucketRequestPaymentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketRequestPaymentResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketTaggingRequest&, const Model::GetBucketTaggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketTaggingResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketVersioningRequest&, const Model::GetBucketVersioningOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketVersioningResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetBucketWebsiteRequest&, const Model::GetBucketWebsiteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBucketWebsiteResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetObjectRequest&, Model::GetObjectOutcome, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetObjectAclRequest&, const Model::GetObjectAclOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectAclResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetObjectLegalHoldRequest&, const Model::GetObjectLegalHoldOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectLegalHoldResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetObjectLockConfigurationRequest&, const Model::GetObjectLockConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectLockConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetObjectRetentionRequest&, const Model::GetObjectRetentionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectRetentionResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetObjectTaggingRequest&, const Model::GetObjectTaggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectTaggingResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetObjectTorrentRequest&, Model::GetObjectTorrentOutcome, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectTorrentResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::GetPublicAccessBlockRequest&, const Model::GetPublicAccessBlockOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetPublicAccessBlockResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::HeadBucketRequest&, const Model::HeadBucketOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > HeadBucketResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::HeadObjectRequest&, const Model::HeadObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > HeadObjectResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::ListBucketAnalyticsConfigurationsRequest&, const Model::ListBucketAnalyticsConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBucketAnalyticsConfigurationsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::ListBucketIntelligentTieringConfigurationsRequest&, const Model::ListBucketIntelligentTieringConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBucketIntelligentTieringConfigurationsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::ListBucketInventoryConfigurationsRequest&, const Model::ListBucketInventoryConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBucketInventoryConfigurationsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::ListBucketMetricsConfigurationsRequest&, const Model::ListBucketMetricsConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBucketMetricsConfigurationsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::ListBucketsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBucketsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::ListMultipartUploadsRequest&, const Model::ListMultipartUploadsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListMultipartUploadsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::ListObjectVersionsRequest&, const Model::ListObjectVersionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListObjectVersionsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::ListObjectsRequest&, const Model::ListObjectsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListObjectsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::ListObjectsV2Request&, const Model::ListObjectsV2Outcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListObjectsV2ResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::ListPartsRequest&, const Model::ListPartsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListPartsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketAccelerateConfigurationRequest&, const Model::PutBucketAccelerateConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketAccelerateConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketAclRequest&, const Model::PutBucketAclOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketAclResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketAnalyticsConfigurationRequest&, const Model::PutBucketAnalyticsConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketAnalyticsConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketCorsRequest&, const Model::PutBucketCorsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketCorsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketEncryptionRequest&, const Model::PutBucketEncryptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketEncryptionResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketIntelligentTieringConfigurationRequest&, const Model::PutBucketIntelligentTieringConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketIntelligentTieringConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketInventoryConfigurationRequest&, const Model::PutBucketInventoryConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketInventoryConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketLifecycleConfigurationRequest&, const Model::PutBucketLifecycleConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketLifecycleConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketLoggingRequest&, const Model::PutBucketLoggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketLoggingResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketMetricsConfigurationRequest&, const Model::PutBucketMetricsConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketMetricsConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketNotificationConfigurationRequest&, const Model::PutBucketNotificationConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketNotificationConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketOwnershipControlsRequest&, const Model::PutBucketOwnershipControlsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketOwnershipControlsResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketPolicyRequest&, const Model::PutBucketPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketPolicyResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketReplicationRequest&, const Model::PutBucketReplicationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketReplicationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketRequestPaymentRequest&, const Model::PutBucketRequestPaymentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketRequestPaymentResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketTaggingRequest&, const Model::PutBucketTaggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketTaggingResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketVersioningRequest&, const Model::PutBucketVersioningOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketVersioningResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutBucketWebsiteRequest&, const Model::PutBucketWebsiteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBucketWebsiteResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutObjectRequest&, const Model::PutObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutObjectResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutObjectAclRequest&, const Model::PutObjectAclOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutObjectAclResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutObjectLegalHoldRequest&, const Model::PutObjectLegalHoldOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutObjectLegalHoldResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutObjectLockConfigurationRequest&, const Model::PutObjectLockConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutObjectLockConfigurationResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutObjectRetentionRequest&, const Model::PutObjectRetentionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutObjectRetentionResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutObjectTaggingRequest&, const Model::PutObjectTaggingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutObjectTaggingResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::PutPublicAccessBlockRequest&, const Model::PutPublicAccessBlockOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutPublicAccessBlockResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::RestoreObjectRequest&, const Model::RestoreObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RestoreObjectResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::SelectObjectContentRequest&, const Model::SelectObjectContentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SelectObjectContentResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::UploadPartRequest&, const Model::UploadPartOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UploadPartResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::UploadPartCopyRequest&, const Model::UploadPartCopyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UploadPartCopyResponseReceivedHandler;
- typedef std::function<void(const S3Client*, const Model::WriteGetObjectResponseRequest&, const Model::WriteGetObjectResponseOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > WriteGetObjectResponseResponseReceivedHandler;
- // Get endpoint, signer region and signer service name after computing the endpoint.
- struct ComputeEndpointResult
- {
- ComputeEndpointResult(const Aws::String& endpointName = {}, const Aws::String& region = {}, const Aws::String& serviceName = {}) :
- endpoint(endpointName), signerRegion(region), signerServiceName(serviceName) {}
- Aws::String endpoint;
- Aws::String signerRegion;
- Aws::String signerServiceName;
- };
- typedef Aws::Utils::Outcome<ComputeEndpointResult, Aws::Client::AWSError<S3Errors>> ComputeEndpointOutcome;
- //max expiration for presigned urls in s3 is 7 days.
- static const unsigned MAX_EXPIRATION_SECONDS = 7 * 24 * 60 * 60;
- /**
- * <p/>
- */
- enum class US_EAST_1_REGIONAL_ENDPOINT_OPTION
- {
- NOT_SET,
- LEGACY, //stands for using global endpoint for us-east-1,
- REGIONAL //stands for using regional endpoint for us-east-1
- };
- class AWS_S3_API S3Client : public Aws::Client::AWSXMLClient
- {
- public:
- typedef Aws::Client::AWSXMLClient BASECLASS;
- /**
- * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
- * is not specified, it will be initialized to default values.
- */
- 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);
- /**
- * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
- * is not specified, it will be initialized to default values.
- */
- 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);
- /**
- * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
- * the default http client factory will be used
- */
- S3Client(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
- 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);
- virtual ~S3Client();
- /**
- * <p>This action aborts a multipart upload. After a multipart upload is aborted,
- * no additional parts can be uploaded using that upload ID. The storage consumed
- * by any previously uploaded parts will be freed. However, if any part uploads are
- * currently in progress, those part uploads might or might not succeed. As a
- * result, it might be necessary to abort a given multipart upload multiple times
- * in order to completely free all storage consumed by all parts. </p> <p>To verify
- * that all parts have been removed, so you don't get charged for the part storage,
- * you should call the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * action and ensure that the parts list is empty.</p> <p>For information about
- * permissions required to use the multipart upload, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p>The following operations are related to
- * <code>AbortMultipartUpload</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortMultipartUpload">AWS
- * API Reference</a></p>
- */
- virtual Model::AbortMultipartUploadOutcome AbortMultipartUpload(const Model::AbortMultipartUploadRequest& request) const;
- /**
- * <p>This action aborts a multipart upload. After a multipart upload is aborted,
- * no additional parts can be uploaded using that upload ID. The storage consumed
- * by any previously uploaded parts will be freed. However, if any part uploads are
- * currently in progress, those part uploads might or might not succeed. As a
- * result, it might be necessary to abort a given multipart upload multiple times
- * in order to completely free all storage consumed by all parts. </p> <p>To verify
- * that all parts have been removed, so you don't get charged for the part storage,
- * you should call the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * action and ensure that the parts list is empty.</p> <p>For information about
- * permissions required to use the multipart upload, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p>The following operations are related to
- * <code>AbortMultipartUpload</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortMultipartUpload">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::AbortMultipartUploadOutcomeCallable AbortMultipartUploadCallable(const Model::AbortMultipartUploadRequest& request) const;
- /**
- * <p>This action aborts a multipart upload. After a multipart upload is aborted,
- * no additional parts can be uploaded using that upload ID. The storage consumed
- * by any previously uploaded parts will be freed. However, if any part uploads are
- * currently in progress, those part uploads might or might not succeed. As a
- * result, it might be necessary to abort a given multipart upload multiple times
- * in order to completely free all storage consumed by all parts. </p> <p>To verify
- * that all parts have been removed, so you don't get charged for the part storage,
- * you should call the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * action and ensure that the parts list is empty.</p> <p>For information about
- * permissions required to use the multipart upload, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p>The following operations are related to
- * <code>AbortMultipartUpload</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortMultipartUpload">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void AbortMultipartUploadAsync(const Model::AbortMultipartUploadRequest& request, const AbortMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Completes a multipart upload by assembling previously uploaded parts.</p>
- * <p>You first initiate the multipart upload and then upload all parts using the
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * operation. After successfully uploading all relevant parts of an upload, you
- * call this action to complete the upload. Upon receiving this request, Amazon S3
- * concatenates all the parts in ascending order by part number to create a new
- * object. In the Complete Multipart Upload request, you must provide the parts
- * list. You must ensure that the parts list is complete. This action concatenates
- * the parts that you provide in the list. For each part in the list, you must
- * provide the part number and the <code>ETag</code> value, returned after that
- * part was uploaded.</p> <p>Processing of a Complete Multipart Upload request
- * could take several minutes to complete. After Amazon S3 begins processing the
- * request, it sends an HTTP response header that specifies a 200 OK response.
- * While processing is in progress, Amazon S3 periodically sends white space
- * characters to keep the connection from timing out. Because a request could fail
- * after the initial 200 OK response has been sent, it is important that you check
- * the response body to determine whether the request succeeded.</p> <p>Note that
- * if <code>CompleteMultipartUpload</code> fails, applications should be prepared
- * to retry the failed requests. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html">Amazon
- * S3 Error Best Practices</a>.</p> <p>For more information about multipart
- * uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
- * Objects Using Multipart Upload</a>.</p> <p>For information about permissions
- * required to use the multipart upload API, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p> <code>CompleteMultipartUpload</code> has the
- * following special errors:</p> <ul> <li> <p>Error code:
- * <code>EntityTooSmall</code> </p> <ul> <li> <p>Description: Your proposed upload
- * is smaller than the minimum allowed object size. Each part must be at least 5 MB
- * in size, except the last part.</p> </li> <li> <p>400 Bad Request</p> </li> </ul>
- * </li> <li> <p>Error code: <code>InvalidPart</code> </p> <ul> <li>
- * <p>Description: One or more of the specified parts could not be found. The part
- * might not have been uploaded, or the specified entity tag might not have matched
- * the part's entity tag.</p> </li> <li> <p>400 Bad Request</p> </li> </ul> </li>
- * <li> <p>Error code: <code>InvalidPartOrder</code> </p> <ul> <li> <p>Description:
- * The list of parts was not in ascending order. The parts list must be specified
- * in order by part number.</p> </li> <li> <p>400 Bad Request</p> </li> </ul> </li>
- * <li> <p>Error code: <code>NoSuchUpload</code> </p> <ul> <li> <p>Description: The
- * specified multipart upload does not exist. The upload ID might be invalid, or
- * the multipart upload might have been aborted or completed.</p> </li> <li> <p>404
- * Not Found</p> </li> </ul> </li> </ul> <p>The following operations are related to
- * <code>CompleteMultipartUpload</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompleteMultipartUpload">AWS
- * API Reference</a></p>
- */
- virtual Model::CompleteMultipartUploadOutcome CompleteMultipartUpload(const Model::CompleteMultipartUploadRequest& request) const;
- /**
- * <p>Completes a multipart upload by assembling previously uploaded parts.</p>
- * <p>You first initiate the multipart upload and then upload all parts using the
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * operation. After successfully uploading all relevant parts of an upload, you
- * call this action to complete the upload. Upon receiving this request, Amazon S3
- * concatenates all the parts in ascending order by part number to create a new
- * object. In the Complete Multipart Upload request, you must provide the parts
- * list. You must ensure that the parts list is complete. This action concatenates
- * the parts that you provide in the list. For each part in the list, you must
- * provide the part number and the <code>ETag</code> value, returned after that
- * part was uploaded.</p> <p>Processing of a Complete Multipart Upload request
- * could take several minutes to complete. After Amazon S3 begins processing the
- * request, it sends an HTTP response header that specifies a 200 OK response.
- * While processing is in progress, Amazon S3 periodically sends white space
- * characters to keep the connection from timing out. Because a request could fail
- * after the initial 200 OK response has been sent, it is important that you check
- * the response body to determine whether the request succeeded.</p> <p>Note that
- * if <code>CompleteMultipartUpload</code> fails, applications should be prepared
- * to retry the failed requests. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html">Amazon
- * S3 Error Best Practices</a>.</p> <p>For more information about multipart
- * uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
- * Objects Using Multipart Upload</a>.</p> <p>For information about permissions
- * required to use the multipart upload API, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p> <code>CompleteMultipartUpload</code> has the
- * following special errors:</p> <ul> <li> <p>Error code:
- * <code>EntityTooSmall</code> </p> <ul> <li> <p>Description: Your proposed upload
- * is smaller than the minimum allowed object size. Each part must be at least 5 MB
- * in size, except the last part.</p> </li> <li> <p>400 Bad Request</p> </li> </ul>
- * </li> <li> <p>Error code: <code>InvalidPart</code> </p> <ul> <li>
- * <p>Description: One or more of the specified parts could not be found. The part
- * might not have been uploaded, or the specified entity tag might not have matched
- * the part's entity tag.</p> </li> <li> <p>400 Bad Request</p> </li> </ul> </li>
- * <li> <p>Error code: <code>InvalidPartOrder</code> </p> <ul> <li> <p>Description:
- * The list of parts was not in ascending order. The parts list must be specified
- * in order by part number.</p> </li> <li> <p>400 Bad Request</p> </li> </ul> </li>
- * <li> <p>Error code: <code>NoSuchUpload</code> </p> <ul> <li> <p>Description: The
- * specified multipart upload does not exist. The upload ID might be invalid, or
- * the multipart upload might have been aborted or completed.</p> </li> <li> <p>404
- * Not Found</p> </li> </ul> </li> </ul> <p>The following operations are related to
- * <code>CompleteMultipartUpload</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompleteMultipartUpload">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::CompleteMultipartUploadOutcomeCallable CompleteMultipartUploadCallable(const Model::CompleteMultipartUploadRequest& request) const;
- /**
- * <p>Completes a multipart upload by assembling previously uploaded parts.</p>
- * <p>You first initiate the multipart upload and then upload all parts using the
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * operation. After successfully uploading all relevant parts of an upload, you
- * call this action to complete the upload. Upon receiving this request, Amazon S3
- * concatenates all the parts in ascending order by part number to create a new
- * object. In the Complete Multipart Upload request, you must provide the parts
- * list. You must ensure that the parts list is complete. This action concatenates
- * the parts that you provide in the list. For each part in the list, you must
- * provide the part number and the <code>ETag</code> value, returned after that
- * part was uploaded.</p> <p>Processing of a Complete Multipart Upload request
- * could take several minutes to complete. After Amazon S3 begins processing the
- * request, it sends an HTTP response header that specifies a 200 OK response.
- * While processing is in progress, Amazon S3 periodically sends white space
- * characters to keep the connection from timing out. Because a request could fail
- * after the initial 200 OK response has been sent, it is important that you check
- * the response body to determine whether the request succeeded.</p> <p>Note that
- * if <code>CompleteMultipartUpload</code> fails, applications should be prepared
- * to retry the failed requests. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html">Amazon
- * S3 Error Best Practices</a>.</p> <p>For more information about multipart
- * uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
- * Objects Using Multipart Upload</a>.</p> <p>For information about permissions
- * required to use the multipart upload API, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p> <code>CompleteMultipartUpload</code> has the
- * following special errors:</p> <ul> <li> <p>Error code:
- * <code>EntityTooSmall</code> </p> <ul> <li> <p>Description: Your proposed upload
- * is smaller than the minimum allowed object size. Each part must be at least 5 MB
- * in size, except the last part.</p> </li> <li> <p>400 Bad Request</p> </li> </ul>
- * </li> <li> <p>Error code: <code>InvalidPart</code> </p> <ul> <li>
- * <p>Description: One or more of the specified parts could not be found. The part
- * might not have been uploaded, or the specified entity tag might not have matched
- * the part's entity tag.</p> </li> <li> <p>400 Bad Request</p> </li> </ul> </li>
- * <li> <p>Error code: <code>InvalidPartOrder</code> </p> <ul> <li> <p>Description:
- * The list of parts was not in ascending order. The parts list must be specified
- * in order by part number.</p> </li> <li> <p>400 Bad Request</p> </li> </ul> </li>
- * <li> <p>Error code: <code>NoSuchUpload</code> </p> <ul> <li> <p>Description: The
- * specified multipart upload does not exist. The upload ID might be invalid, or
- * the multipart upload might have been aborted or completed.</p> </li> <li> <p>404
- * Not Found</p> </li> </ul> </li> </ul> <p>The following operations are related to
- * <code>CompleteMultipartUpload</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompleteMultipartUpload">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void CompleteMultipartUploadAsync(const Model::CompleteMultipartUploadRequest& request, const CompleteMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Creates a copy of an object that is already stored in Amazon S3.</p>
- * <p>You can store individual objects of up to 5 TB in Amazon S3. You create a
- * copy of your object up to 5 GB in size in a single atomic action using this API.
- * However, to copy an object greater than 5 GB, you must use the multipart upload
- * Upload Part - Copy API. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html">Copy
- * Object Using the REST Multipart Upload API</a>.</p> <p>All copy requests
- * must be authenticated. Additionally, you must have <i>read</i> access to the
- * source object and <i>write</i> access to the destination bucket. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html">REST
- * Authentication</a>. Both the Region that you want to copy the object from and
- * the Region that you want to copy the object to must be enabled for your
- * account.</p> <p>A copy request might return an error when Amazon S3 receives the
- * copy request or while Amazon S3 is copying the files. If the error occurs before
- * the copy action starts, you receive a standard Amazon S3 error. If the error
- * occurs during the copy operation, the error response is embedded in the
- * <code>200 OK</code> response. This means that a <code>200 OK</code> response can
- * contain either a success or an error. Design your application to parse the
- * contents of the response and handle it appropriately.</p> <p>If the copy is
- * successful, you receive a response with information about the copied object.</p>
- * <p>If the request is an HTTP 1.1 request, the response is chunk encoded.
- * If it were not, it would not contain the content-length, and you would need to
- * read the entire body.</p> <p>The copy request charge is based on the
- * storage class and Region that you specify for the destination object. For
- * pricing information, see <a href="http://aws.amazon.com/s3/pricing/">Amazon S3
- * pricing</a>.</p> <p>Amazon S3 transfer acceleration does not support
- * cross-Region copies. If you request a cross-Region copy using a transfer
- * acceleration endpoint, you get a 400 <code>Bad Request</code> error. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
- * Acceleration</a>.</p> <p> <b>Metadata</b> </p> <p>When copying an
- * object, you can preserve all metadata (default) or specify new metadata.
- * However, the ACL is not preserved and is set to private for the user making the
- * request. To override the default ACL setting, specify a new ACL when generating
- * a copy request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
- * ACLs</a>. </p> <p>To specify whether you want the object metadata copied from
- * the source object or replaced with metadata provided in the request, you can
- * optionally add the <code>x-amz-metadata-directive</code> header. When you grant
- * permissions, you can use the <code>s3:x-amz-metadata-directive</code> condition
- * key to enforce certain metadata behavior when objects are uploaded. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html">Specifying
- * Conditions in a Policy</a> in the <i>Amazon S3 Developer Guide</i>. For a
- * complete list of Amazon S3-specific condition keys, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html">Actions,
- * Resources, and Condition Keys for Amazon S3</a>.</p> <p> <b>
- * <code>x-amz-copy-source-if</code> Headers</b> </p> <p>To only copy an object
- * under certain conditions, such as whether the <code>Etag</code> matches or
- * whether the object was modified before or after a specified date, use the
- * following request parameters:</p> <ul> <li> <p>
- * <code>x-amz-copy-source-if-match</code> </p> </li> <li> <p>
- * <code>x-amz-copy-source-if-none-match</code> </p> </li> <li> <p>
- * <code>x-amz-copy-source-if-unmodified-since</code> </p> </li> <li> <p>
- * <code>x-amz-copy-source-if-modified-since</code> </p> </li> </ul> <p> If both
- * the <code>x-amz-copy-source-if-match</code> and
- * <code>x-amz-copy-source-if-unmodified-since</code> headers are present in the
- * request and evaluate as follows, Amazon S3 returns <code>200 OK</code> and
- * copies the data:</p> <ul> <li> <p> <code>x-amz-copy-source-if-match</code>
- * condition evaluates to true</p> </li> <li> <p>
- * <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to
- * false</p> </li> </ul> <p>If both the
- * <code>x-amz-copy-source-if-none-match</code> and
- * <code>x-amz-copy-source-if-modified-since</code> headers are present in the
- * request and evaluate as follows, Amazon S3 returns the <code>412 Precondition
- * Failed</code> response code:</p> <ul> <li> <p>
- * <code>x-amz-copy-source-if-none-match</code> condition evaluates to false</p>
- * </li> <li> <p> <code>x-amz-copy-source-if-modified-since</code> condition
- * evaluates to true</p> </li> </ul> <p>All headers with the
- * <code>x-amz-</code> prefix, including <code>x-amz-copy-source</code>, must be
- * signed.</p> <p> <b>Server-side encryption</b> </p> <p>When you perform a
- * CopyObject operation, you can optionally use the appropriate encryption-related
- * headers to encrypt the object using server-side encryption with AWS managed
- * encryption keys (SSE-S3 or SSE-KMS) or a customer-provided encryption key. With
- * server-side encryption, Amazon S3 encrypts your data as it writes it to disks in
- * its data centers and decrypts the data when you access it. For more information
- * about server-side encryption, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Using
- * Server-Side Encryption</a>.</p> <p>If a target object uses SSE-KMS, you can
- * enable an S3 Bucket Key for the object. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
- * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p> <b>Access Control
- * List (ACL)-Specific Request Headers</b> </p> <p>When copying an object, you can
- * optionally use headers to grant ACL-based permissions. By default, all objects
- * are private. Only the owner has full access control. When adding a new object,
- * you can grant permissions to individual AWS accounts or to predefined groups
- * defined by Amazon S3. These permissions are then added to the ACL on the object.
- * For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing
- * ACLs Using the REST API</a>. </p> <p> <b>Storage Class Options</b> </p> <p>You
- * can use the <code>CopyObject</code> action to change the storage class of an
- * object that is already stored in Amazon S3 using the <code>StorageClass</code>
- * parameter. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage
- * Classes</a> in the <i>Amazon S3 Service Developer Guide</i>.</p> <p>
- * <b>Versioning</b> </p> <p>By default, <code>x-amz-copy-source</code> identifies
- * the current version of an object to copy. If the current version is a delete
- * marker, Amazon S3 behaves as if the object was deleted. To copy a different
- * version, use the <code>versionId</code> subresource.</p> <p>If you enable
- * versioning on the target bucket, Amazon S3 generates a unique version ID for the
- * object being copied. This version ID is different from the version ID of the
- * source object. Amazon S3 returns the version ID of the copied object in the
- * <code>x-amz-version-id</code> response header in the response.</p> <p>If you do
- * not enable versioning or suspend it on the target bucket, the version ID that
- * Amazon S3 generates is always null.</p> <p>If the source object's storage class
- * is GLACIER, you must restore a copy of this object before you can use it as a
- * source object for the copy operation. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>.</p>
- * <p>The following operations are related to <code>CopyObject</code>:</p> <ul>
- * <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul> <p>For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html">Copying
- * Objects</a>.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObject">AWS API
- * Reference</a></p>
- */
- virtual Model::CopyObjectOutcome CopyObject(const Model::CopyObjectRequest& request) const;
- /**
- * <p>Creates a copy of an object that is already stored in Amazon S3.</p>
- * <p>You can store individual objects of up to 5 TB in Amazon S3. You create a
- * copy of your object up to 5 GB in size in a single atomic action using this API.
- * However, to copy an object greater than 5 GB, you must use the multipart upload
- * Upload Part - Copy API. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html">Copy
- * Object Using the REST Multipart Upload API</a>.</p> <p>All copy requests
- * must be authenticated. Additionally, you must have <i>read</i> access to the
- * source object and <i>write</i> access to the destination bucket. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html">REST
- * Authentication</a>. Both the Region that you want to copy the object from and
- * the Region that you want to copy the object to must be enabled for your
- * account.</p> <p>A copy request might return an error when Amazon S3 receives the
- * copy request or while Amazon S3 is copying the files. If the error occurs before
- * the copy action starts, you receive a standard Amazon S3 error. If the error
- * occurs during the copy operation, the error response is embedded in the
- * <code>200 OK</code> response. This means that a <code>200 OK</code> response can
- * contain either a success or an error. Design your application to parse the
- * contents of the response and handle it appropriately.</p> <p>If the copy is
- * successful, you receive a response with information about the copied object.</p>
- * <p>If the request is an HTTP 1.1 request, the response is chunk encoded.
- * If it were not, it would not contain the content-length, and you would need to
- * read the entire body.</p> <p>The copy request charge is based on the
- * storage class and Region that you specify for the destination object. For
- * pricing information, see <a href="http://aws.amazon.com/s3/pricing/">Amazon S3
- * pricing</a>.</p> <p>Amazon S3 transfer acceleration does not support
- * cross-Region copies. If you request a cross-Region copy using a transfer
- * acceleration endpoint, you get a 400 <code>Bad Request</code> error. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
- * Acceleration</a>.</p> <p> <b>Metadata</b> </p> <p>When copying an
- * object, you can preserve all metadata (default) or specify new metadata.
- * However, the ACL is not preserved and is set to private for the user making the
- * request. To override the default ACL setting, specify a new ACL when generating
- * a copy request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
- * ACLs</a>. </p> <p>To specify whether you want the object metadata copied from
- * the source object or replaced with metadata provided in the request, you can
- * optionally add the <code>x-amz-metadata-directive</code> header. When you grant
- * permissions, you can use the <code>s3:x-amz-metadata-directive</code> condition
- * key to enforce certain metadata behavior when objects are uploaded. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html">Specifying
- * Conditions in a Policy</a> in the <i>Amazon S3 Developer Guide</i>. For a
- * complete list of Amazon S3-specific condition keys, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html">Actions,
- * Resources, and Condition Keys for Amazon S3</a>.</p> <p> <b>
- * <code>x-amz-copy-source-if</code> Headers</b> </p> <p>To only copy an object
- * under certain conditions, such as whether the <code>Etag</code> matches or
- * whether the object was modified before or after a specified date, use the
- * following request parameters:</p> <ul> <li> <p>
- * <code>x-amz-copy-source-if-match</code> </p> </li> <li> <p>
- * <code>x-amz-copy-source-if-none-match</code> </p> </li> <li> <p>
- * <code>x-amz-copy-source-if-unmodified-since</code> </p> </li> <li> <p>
- * <code>x-amz-copy-source-if-modified-since</code> </p> </li> </ul> <p> If both
- * the <code>x-amz-copy-source-if-match</code> and
- * <code>x-amz-copy-source-if-unmodified-since</code> headers are present in the
- * request and evaluate as follows, Amazon S3 returns <code>200 OK</code> and
- * copies the data:</p> <ul> <li> <p> <code>x-amz-copy-source-if-match</code>
- * condition evaluates to true</p> </li> <li> <p>
- * <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to
- * false</p> </li> </ul> <p>If both the
- * <code>x-amz-copy-source-if-none-match</code> and
- * <code>x-amz-copy-source-if-modified-since</code> headers are present in the
- * request and evaluate as follows, Amazon S3 returns the <code>412 Precondition
- * Failed</code> response code:</p> <ul> <li> <p>
- * <code>x-amz-copy-source-if-none-match</code> condition evaluates to false</p>
- * </li> <li> <p> <code>x-amz-copy-source-if-modified-since</code> condition
- * evaluates to true</p> </li> </ul> <p>All headers with the
- * <code>x-amz-</code> prefix, including <code>x-amz-copy-source</code>, must be
- * signed.</p> <p> <b>Server-side encryption</b> </p> <p>When you perform a
- * CopyObject operation, you can optionally use the appropriate encryption-related
- * headers to encrypt the object using server-side encryption with AWS managed
- * encryption keys (SSE-S3 or SSE-KMS) or a customer-provided encryption key. With
- * server-side encryption, Amazon S3 encrypts your data as it writes it to disks in
- * its data centers and decrypts the data when you access it. For more information
- * about server-side encryption, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Using
- * Server-Side Encryption</a>.</p> <p>If a target object uses SSE-KMS, you can
- * enable an S3 Bucket Key for the object. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
- * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p> <b>Access Control
- * List (ACL)-Specific Request Headers</b> </p> <p>When copying an object, you can
- * optionally use headers to grant ACL-based permissions. By default, all objects
- * are private. Only the owner has full access control. When adding a new object,
- * you can grant permissions to individual AWS accounts or to predefined groups
- * defined by Amazon S3. These permissions are then added to the ACL on the object.
- * For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing
- * ACLs Using the REST API</a>. </p> <p> <b>Storage Class Options</b> </p> <p>You
- * can use the <code>CopyObject</code> action to change the storage class of an
- * object that is already stored in Amazon S3 using the <code>StorageClass</code>
- * parameter. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage
- * Classes</a> in the <i>Amazon S3 Service Developer Guide</i>.</p> <p>
- * <b>Versioning</b> </p> <p>By default, <code>x-amz-copy-source</code> identifies
- * the current version of an object to copy. If the current version is a delete
- * marker, Amazon S3 behaves as if the object was deleted. To copy a different
- * version, use the <code>versionId</code> subresource.</p> <p>If you enable
- * versioning on the target bucket, Amazon S3 generates a unique version ID for the
- * object being copied. This version ID is different from the version ID of the
- * source object. Amazon S3 returns the version ID of the copied object in the
- * <code>x-amz-version-id</code> response header in the response.</p> <p>If you do
- * not enable versioning or suspend it on the target bucket, the version ID that
- * Amazon S3 generates is always null.</p> <p>If the source object's storage class
- * is GLACIER, you must restore a copy of this object before you can use it as a
- * source object for the copy operation. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>.</p>
- * <p>The following operations are related to <code>CopyObject</code>:</p> <ul>
- * <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul> <p>For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html">Copying
- * Objects</a>.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObject">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::CopyObjectOutcomeCallable CopyObjectCallable(const Model::CopyObjectRequest& request) const;
- /**
- * <p>Creates a copy of an object that is already stored in Amazon S3.</p>
- * <p>You can store individual objects of up to 5 TB in Amazon S3. You create a
- * copy of your object up to 5 GB in size in a single atomic action using this API.
- * However, to copy an object greater than 5 GB, you must use the multipart upload
- * Upload Part - Copy API. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html">Copy
- * Object Using the REST Multipart Upload API</a>.</p> <p>All copy requests
- * must be authenticated. Additionally, you must have <i>read</i> access to the
- * source object and <i>write</i> access to the destination bucket. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html">REST
- * Authentication</a>. Both the Region that you want to copy the object from and
- * the Region that you want to copy the object to must be enabled for your
- * account.</p> <p>A copy request might return an error when Amazon S3 receives the
- * copy request or while Amazon S3 is copying the files. If the error occurs before
- * the copy action starts, you receive a standard Amazon S3 error. If the error
- * occurs during the copy operation, the error response is embedded in the
- * <code>200 OK</code> response. This means that a <code>200 OK</code> response can
- * contain either a success or an error. Design your application to parse the
- * contents of the response and handle it appropriately.</p> <p>If the copy is
- * successful, you receive a response with information about the copied object.</p>
- * <p>If the request is an HTTP 1.1 request, the response is chunk encoded.
- * If it were not, it would not contain the content-length, and you would need to
- * read the entire body.</p> <p>The copy request charge is based on the
- * storage class and Region that you specify for the destination object. For
- * pricing information, see <a href="http://aws.amazon.com/s3/pricing/">Amazon S3
- * pricing</a>.</p> <p>Amazon S3 transfer acceleration does not support
- * cross-Region copies. If you request a cross-Region copy using a transfer
- * acceleration endpoint, you get a 400 <code>Bad Request</code> error. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
- * Acceleration</a>.</p> <p> <b>Metadata</b> </p> <p>When copying an
- * object, you can preserve all metadata (default) or specify new metadata.
- * However, the ACL is not preserved and is set to private for the user making the
- * request. To override the default ACL setting, specify a new ACL when generating
- * a copy request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
- * ACLs</a>. </p> <p>To specify whether you want the object metadata copied from
- * the source object or replaced with metadata provided in the request, you can
- * optionally add the <code>x-amz-metadata-directive</code> header. When you grant
- * permissions, you can use the <code>s3:x-amz-metadata-directive</code> condition
- * key to enforce certain metadata behavior when objects are uploaded. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html">Specifying
- * Conditions in a Policy</a> in the <i>Amazon S3 Developer Guide</i>. For a
- * complete list of Amazon S3-specific condition keys, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html">Actions,
- * Resources, and Condition Keys for Amazon S3</a>.</p> <p> <b>
- * <code>x-amz-copy-source-if</code> Headers</b> </p> <p>To only copy an object
- * under certain conditions, such as whether the <code>Etag</code> matches or
- * whether the object was modified before or after a specified date, use the
- * following request parameters:</p> <ul> <li> <p>
- * <code>x-amz-copy-source-if-match</code> </p> </li> <li> <p>
- * <code>x-amz-copy-source-if-none-match</code> </p> </li> <li> <p>
- * <code>x-amz-copy-source-if-unmodified-since</code> </p> </li> <li> <p>
- * <code>x-amz-copy-source-if-modified-since</code> </p> </li> </ul> <p> If both
- * the <code>x-amz-copy-source-if-match</code> and
- * <code>x-amz-copy-source-if-unmodified-since</code> headers are present in the
- * request and evaluate as follows, Amazon S3 returns <code>200 OK</code> and
- * copies the data:</p> <ul> <li> <p> <code>x-amz-copy-source-if-match</code>
- * condition evaluates to true</p> </li> <li> <p>
- * <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to
- * false</p> </li> </ul> <p>If both the
- * <code>x-amz-copy-source-if-none-match</code> and
- * <code>x-amz-copy-source-if-modified-since</code> headers are present in the
- * request and evaluate as follows, Amazon S3 returns the <code>412 Precondition
- * Failed</code> response code:</p> <ul> <li> <p>
- * <code>x-amz-copy-source-if-none-match</code> condition evaluates to false</p>
- * </li> <li> <p> <code>x-amz-copy-source-if-modified-since</code> condition
- * evaluates to true</p> </li> </ul> <p>All headers with the
- * <code>x-amz-</code> prefix, including <code>x-amz-copy-source</code>, must be
- * signed.</p> <p> <b>Server-side encryption</b> </p> <p>When you perform a
- * CopyObject operation, you can optionally use the appropriate encryption-related
- * headers to encrypt the object using server-side encryption with AWS managed
- * encryption keys (SSE-S3 or SSE-KMS) or a customer-provided encryption key. With
- * server-side encryption, Amazon S3 encrypts your data as it writes it to disks in
- * its data centers and decrypts the data when you access it. For more information
- * about server-side encryption, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Using
- * Server-Side Encryption</a>.</p> <p>If a target object uses SSE-KMS, you can
- * enable an S3 Bucket Key for the object. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
- * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p> <b>Access Control
- * List (ACL)-Specific Request Headers</b> </p> <p>When copying an object, you can
- * optionally use headers to grant ACL-based permissions. By default, all objects
- * are private. Only the owner has full access control. When adding a new object,
- * you can grant permissions to individual AWS accounts or to predefined groups
- * defined by Amazon S3. These permissions are then added to the ACL on the object.
- * For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing
- * ACLs Using the REST API</a>. </p> <p> <b>Storage Class Options</b> </p> <p>You
- * can use the <code>CopyObject</code> action to change the storage class of an
- * object that is already stored in Amazon S3 using the <code>StorageClass</code>
- * parameter. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage
- * Classes</a> in the <i>Amazon S3 Service Developer Guide</i>.</p> <p>
- * <b>Versioning</b> </p> <p>By default, <code>x-amz-copy-source</code> identifies
- * the current version of an object to copy. If the current version is a delete
- * marker, Amazon S3 behaves as if the object was deleted. To copy a different
- * version, use the <code>versionId</code> subresource.</p> <p>If you enable
- * versioning on the target bucket, Amazon S3 generates a unique version ID for the
- * object being copied. This version ID is different from the version ID of the
- * source object. Amazon S3 returns the version ID of the copied object in the
- * <code>x-amz-version-id</code> response header in the response.</p> <p>If you do
- * not enable versioning or suspend it on the target bucket, the version ID that
- * Amazon S3 generates is always null.</p> <p>If the source object's storage class
- * is GLACIER, you must restore a copy of this object before you can use it as a
- * source object for the copy operation. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>.</p>
- * <p>The following operations are related to <code>CopyObject</code>:</p> <ul>
- * <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul> <p>For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html">Copying
- * Objects</a>.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObject">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void CopyObjectAsync(const Model::CopyObjectRequest& request, const CopyObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Creates a new S3 bucket. To create a bucket, you must register with Amazon S3
- * and have a valid AWS Access Key ID to authenticate requests. Anonymous requests
- * are never allowed to create buckets. By creating the bucket, you become the
- * bucket owner.</p> <p>Not every string is an acceptable bucket name. For
- * information about bucket naming restrictions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html">Working
- * with Amazon S3 buckets</a>. </p> <p>If you want to create an Amazon S3 on
- * Outposts bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html">Create
- * Bucket</a>. </p> <p>By default, the bucket is created in the US East (N.
- * Virginia) Region. You can optionally specify a Region in the request body. You
- * might choose a Region to optimize latency, minimize costs, or address regulatory
- * requirements. For example, if you reside in Europe, you will probably find it
- * advantageous to create buckets in the Europe (Ireland) Region. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro">Accessing
- * a bucket</a>.</p> <p>If you send your create bucket request to the
- * <code>s3.amazonaws.com</code> endpoint, the request goes to the us-east-1
- * Region. Accordingly, the signature calculations in Signature Version 4 must use
- * us-east-1 as the Region, even if the location constraint in the request
- * specifies another Region where the bucket is to be created. If you create a
- * bucket in a Region other than US East (N. Virginia), your application must be
- * able to handle 307 redirect. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html">Virtual
- * hosting of buckets</a>.</p> <p>When creating a bucket using this
- * operation, you can optionally specify the accounts or groups that should be
- * granted specific permissions on the bucket. There are two ways to grant the
- * appropriate permissions using the request headers.</p> <ul> <li> <p>Specify a
- * canned ACL using the <code>x-amz-acl</code> request header. Amazon S3 supports a
- * set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a
- * predefined set of grantees and permissions. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly using the
- * <code>x-amz-grant-read</code>, <code>x-amz-grant-write</code>,
- * <code>x-amz-grant-read-acp</code>, <code>x-amz-grant-write-acp</code>, and
- * <code>x-amz-grant-full-control</code> headers. These headers map to the set of
- * permissions Amazon S3 supports in an ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * control list (ACL) overview</a>.</p> <p>You specify each grantee as a type=value
- * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
- * – if the value specified is the canonical user ID of an AWS account</p> </li>
- * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
- * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
- * the email address of an AWS account</p> <p>Using email addresses to
- * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
- * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
- * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
- * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
- * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
- * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
- * example, the following <code>x-amz-grant-read</code> header grants the AWS
- * accounts identified by account IDs permissions to read object data and its
- * metadata:</p> <p> <code>x-amz-grant-read: id="11112222333", id="444455556666"
- * </code> </p> </li> </ul> <p>You can use either a canned ACL or specify
- * access permissions explicitly. You cannot do both.</p> <p>The following
- * operations are related to <code>CreateBucket</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucket">AWS API
- * Reference</a></p>
- */
- virtual Model::CreateBucketOutcome CreateBucket(const Model::CreateBucketRequest& request) const;
- /**
- * <p>Creates a new S3 bucket. To create a bucket, you must register with Amazon S3
- * and have a valid AWS Access Key ID to authenticate requests. Anonymous requests
- * are never allowed to create buckets. By creating the bucket, you become the
- * bucket owner.</p> <p>Not every string is an acceptable bucket name. For
- * information about bucket naming restrictions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html">Working
- * with Amazon S3 buckets</a>. </p> <p>If you want to create an Amazon S3 on
- * Outposts bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html">Create
- * Bucket</a>. </p> <p>By default, the bucket is created in the US East (N.
- * Virginia) Region. You can optionally specify a Region in the request body. You
- * might choose a Region to optimize latency, minimize costs, or address regulatory
- * requirements. For example, if you reside in Europe, you will probably find it
- * advantageous to create buckets in the Europe (Ireland) Region. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro">Accessing
- * a bucket</a>.</p> <p>If you send your create bucket request to the
- * <code>s3.amazonaws.com</code> endpoint, the request goes to the us-east-1
- * Region. Accordingly, the signature calculations in Signature Version 4 must use
- * us-east-1 as the Region, even if the location constraint in the request
- * specifies another Region where the bucket is to be created. If you create a
- * bucket in a Region other than US East (N. Virginia), your application must be
- * able to handle 307 redirect. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html">Virtual
- * hosting of buckets</a>.</p> <p>When creating a bucket using this
- * operation, you can optionally specify the accounts or groups that should be
- * granted specific permissions on the bucket. There are two ways to grant the
- * appropriate permissions using the request headers.</p> <ul> <li> <p>Specify a
- * canned ACL using the <code>x-amz-acl</code> request header. Amazon S3 supports a
- * set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a
- * predefined set of grantees and permissions. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly using the
- * <code>x-amz-grant-read</code>, <code>x-amz-grant-write</code>,
- * <code>x-amz-grant-read-acp</code>, <code>x-amz-grant-write-acp</code>, and
- * <code>x-amz-grant-full-control</code> headers. These headers map to the set of
- * permissions Amazon S3 supports in an ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * control list (ACL) overview</a>.</p> <p>You specify each grantee as a type=value
- * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
- * – if the value specified is the canonical user ID of an AWS account</p> </li>
- * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
- * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
- * the email address of an AWS account</p> <p>Using email addresses to
- * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
- * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
- * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
- * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
- * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
- * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
- * example, the following <code>x-amz-grant-read</code> header grants the AWS
- * accounts identified by account IDs permissions to read object data and its
- * metadata:</p> <p> <code>x-amz-grant-read: id="11112222333", id="444455556666"
- * </code> </p> </li> </ul> <p>You can use either a canned ACL or specify
- * access permissions explicitly. You cannot do both.</p> <p>The following
- * operations are related to <code>CreateBucket</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucket">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::CreateBucketOutcomeCallable CreateBucketCallable(const Model::CreateBucketRequest& request) const;
- /**
- * <p>Creates a new S3 bucket. To create a bucket, you must register with Amazon S3
- * and have a valid AWS Access Key ID to authenticate requests. Anonymous requests
- * are never allowed to create buckets. By creating the bucket, you become the
- * bucket owner.</p> <p>Not every string is an acceptable bucket name. For
- * information about bucket naming restrictions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html">Working
- * with Amazon S3 buckets</a>. </p> <p>If you want to create an Amazon S3 on
- * Outposts bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html">Create
- * Bucket</a>. </p> <p>By default, the bucket is created in the US East (N.
- * Virginia) Region. You can optionally specify a Region in the request body. You
- * might choose a Region to optimize latency, minimize costs, or address regulatory
- * requirements. For example, if you reside in Europe, you will probably find it
- * advantageous to create buckets in the Europe (Ireland) Region. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro">Accessing
- * a bucket</a>.</p> <p>If you send your create bucket request to the
- * <code>s3.amazonaws.com</code> endpoint, the request goes to the us-east-1
- * Region. Accordingly, the signature calculations in Signature Version 4 must use
- * us-east-1 as the Region, even if the location constraint in the request
- * specifies another Region where the bucket is to be created. If you create a
- * bucket in a Region other than US East (N. Virginia), your application must be
- * able to handle 307 redirect. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html">Virtual
- * hosting of buckets</a>.</p> <p>When creating a bucket using this
- * operation, you can optionally specify the accounts or groups that should be
- * granted specific permissions on the bucket. There are two ways to grant the
- * appropriate permissions using the request headers.</p> <ul> <li> <p>Specify a
- * canned ACL using the <code>x-amz-acl</code> request header. Amazon S3 supports a
- * set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a
- * predefined set of grantees and permissions. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly using the
- * <code>x-amz-grant-read</code>, <code>x-amz-grant-write</code>,
- * <code>x-amz-grant-read-acp</code>, <code>x-amz-grant-write-acp</code>, and
- * <code>x-amz-grant-full-control</code> headers. These headers map to the set of
- * permissions Amazon S3 supports in an ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * control list (ACL) overview</a>.</p> <p>You specify each grantee as a type=value
- * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
- * – if the value specified is the canonical user ID of an AWS account</p> </li>
- * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
- * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
- * the email address of an AWS account</p> <p>Using email addresses to
- * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
- * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
- * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
- * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
- * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
- * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
- * example, the following <code>x-amz-grant-read</code> header grants the AWS
- * accounts identified by account IDs permissions to read object data and its
- * metadata:</p> <p> <code>x-amz-grant-read: id="11112222333", id="444455556666"
- * </code> </p> </li> </ul> <p>You can use either a canned ACL or specify
- * access permissions explicitly. You cannot do both.</p> <p>The following
- * operations are related to <code>CreateBucket</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucket">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void CreateBucketAsync(const Model::CreateBucketRequest& request, const CreateBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>This action initiates a multipart upload and returns an upload ID. This
- * upload ID is used to associate all of the parts in the specific multipart
- * upload. You specify this upload ID in each of your subsequent upload part
- * requests (see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>).
- * You also include this upload ID in the final request to either complete or abort
- * the multipart upload request.</p> <p>For more information about multipart
- * uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart
- * Upload Overview</a>.</p> <p>If you have configured a lifecycle rule to abort
- * incomplete multipart uploads, the upload must complete within the number of days
- * specified in the bucket lifecycle configuration. Otherwise, the incomplete
- * multipart upload becomes eligible for an abort action and Amazon S3 aborts the
- * multipart upload. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">Aborting
- * Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>.</p> <p>For
- * information about the permissions required to use the multipart upload API, see
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p>For request signing, multipart upload is just
- * a series of regular requests. You initiate a multipart upload, send one or more
- * requests to upload parts, and then complete the multipart upload process. You
- * sign each request individually. There is nothing special about signing multipart
- * upload requests. For more information about signing, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">Authenticating
- * Requests (AWS Signature Version 4)</a>.</p> <p> After you initiate a
- * multipart upload and upload one or more parts, to stop being charged for storing
- * the uploaded parts, you must either complete or abort the multipart upload.
- * Amazon S3 frees up the space used to store the parts and stop charging you for
- * storing them only after you either complete or abort a multipart upload. </p>
- * <p>You can optionally request server-side encryption. For server-side
- * encryption, Amazon S3 encrypts your data as it writes it to disks in its data
- * centers and decrypts it when you access it. You can provide your own encryption
- * key, or use AWS Key Management Service (AWS KMS) customer master keys (CMKs) or
- * Amazon S3-managed encryption keys. If you choose to provide your own encryption
- * key, the request headers you provide in <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>
- * requests must match the headers you used in the request to initiate the upload
- * by using <code>CreateMultipartUpload</code>. </p> <p>To perform a multipart
- * upload with encryption using an AWS KMS CMK, the requester must have permission
- * to the <code>kms:Encrypt</code>, <code>kms:Decrypt</code>,
- * <code>kms:ReEncrypt*</code>, <code>kms:GenerateDataKey*</code>, and
- * <code>kms:DescribeKey</code> actions on the key. These permissions are required
- * because Amazon S3 must decrypt and read data from the encrypted file parts
- * before it completes the multipart upload.</p> <p>If your AWS Identity and Access
- * Management (IAM) user or role is in the same AWS account as the AWS KMS CMK,
- * then you must have these permissions on the key policy. If your IAM user or role
- * belongs to a different account than the key, then you must have the permissions
- * on both the key policy and your IAM user or role.</p> <p> For more information,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
- * Data Using Server-Side Encryption</a>.</p> <dl> <dt>Access Permissions</dt> <dd>
- * <p>When copying an object, you can optionally specify the accounts or groups
- * that should be granted specific permissions on the new object. There are two
- * ways to grant the permissions using the request headers:</p> <ul> <li>
- * <p>Specify a canned ACL with the <code>x-amz-acl</code> request header. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
- * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
- * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
- * headers. These parameters map to the set of permissions that Amazon S3 supports
- * in an ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a>.</p> </li> </ul> <p>You can use either a canned
- * ACL or specify access permissions explicitly. You cannot do both.</p> </dd>
- * <dt>Server-Side- Encryption-Specific Request Headers</dt> <dd> <p>You can
- * optionally tell Amazon S3 to encrypt data at rest using server-side encryption.
- * Server-side encryption is for data encryption at rest. Amazon S3 encrypts your
- * data as it writes it to disks in its data centers and decrypts it when you
- * access it. The option you use depends on whether you want to use AWS managed
- * encryption keys or provide your own encryption key. </p> <ul> <li> <p>Use
- * encryption keys managed by Amazon S3 or customer master keys (CMKs) stored in
- * AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys used
- * to encrypt data, specify the following headers in the request.</p> <ul> <li>
- * <p>x-amz-server-side-encryption</p> </li> <li>
- * <p>x-amz-server-side-encryption-aws-kms-key-id</p> </li> <li>
- * <p>x-amz-server-side-encryption-context</p> </li> </ul> <p>If you specify
- * <code>x-amz-server-side-encryption:aws:kms</code>, but don't provide
- * <code>x-amz-server-side-encryption-aws-kms-key-id</code>, Amazon S3 uses the AWS
- * managed CMK in AWS KMS to protect the data.</p> <p>All GET
- * and PUT requests for an object protected by AWS KMS fail if you don't make them
- * with SSL or by using SigV4.</p> <p>For more information about
- * server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting
- * Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>.</p> </li>
- * <li> <p>Use customer-provided encryption keys – If you want to manage your own
- * encryption keys, provide all the following headers in the request.</p> <ul> <li>
- * <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
- * information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS),
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting
- * Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>.</p> </li>
- * </ul> </dd> <dt>Access-Control-List (ACL)-Specific Request Headers</dt> <dd>
- * <p>You also can use the following access control–related headers with this
- * operation. By default, all objects are private. Only the owner has full access
- * control. When adding a new object, you can grant permissions to individual AWS
- * accounts or to predefined groups defined by Amazon S3. These permissions are
- * then added to the access control list (ACL) on the object. For more information,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
- * ACLs</a>. With this operation, you can grant access permissions using one of the
- * following two methods:</p> <ul> <li> <p>Specify a canned ACL
- * (<code>x-amz-acl</code>) — Amazon S3 supports a set of predefined ACLs, known as
- * <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and
- * permissions. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly — To explicitly
- * grant access permissions to specific AWS accounts or groups, use the following
- * headers. Each header maps to specific permissions that Amazon S3 supports in an
- * ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a>. In the header, you specify a list of grantees
- * who get the specific permission. To grant permissions explicitly, use:</p> <ul>
- * <li> <p>x-amz-grant-read</p> </li> <li> <p>x-amz-grant-write</p> </li> <li>
- * <p>x-amz-grant-read-acp</p> </li> <li> <p>x-amz-grant-write-acp</p> </li> <li>
- * <p>x-amz-grant-full-control</p> </li> </ul> <p>You specify each grantee as a
- * type=value pair, where the type is one of the following:</p> <ul> <li> <p>
- * <code>id</code> – if the value specified is the canonical user ID of an AWS
- * account</p> </li> <li> <p> <code>uri</code> – if you are granting permissions to
- * a predefined group</p> </li> <li> <p> <code>emailAddress</code> – if the value
- * specified is the email address of an AWS account</p> <p>Using email
- * addresses to specify a grantee is only supported in the following AWS Regions:
- * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
- * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
- * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
- * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
- * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
- * Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
- * example, the following <code>x-amz-grant-read</code> header grants the AWS
- * accounts identified by account IDs permissions to read object data and its
- * metadata:</p> <p> <code>x-amz-grant-read: id="11112222333", id="444455556666"
- * </code> </p> </li> </ul> </dd> </dl> <p>The following operations are related to
- * <code>CreateMultipartUpload</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUpload">AWS
- * API Reference</a></p>
- */
- virtual Model::CreateMultipartUploadOutcome CreateMultipartUpload(const Model::CreateMultipartUploadRequest& request) const;
- /**
- * <p>This action initiates a multipart upload and returns an upload ID. This
- * upload ID is used to associate all of the parts in the specific multipart
- * upload. You specify this upload ID in each of your subsequent upload part
- * requests (see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>).
- * You also include this upload ID in the final request to either complete or abort
- * the multipart upload request.</p> <p>For more information about multipart
- * uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart
- * Upload Overview</a>.</p> <p>If you have configured a lifecycle rule to abort
- * incomplete multipart uploads, the upload must complete within the number of days
- * specified in the bucket lifecycle configuration. Otherwise, the incomplete
- * multipart upload becomes eligible for an abort action and Amazon S3 aborts the
- * multipart upload. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">Aborting
- * Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>.</p> <p>For
- * information about the permissions required to use the multipart upload API, see
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p>For request signing, multipart upload is just
- * a series of regular requests. You initiate a multipart upload, send one or more
- * requests to upload parts, and then complete the multipart upload process. You
- * sign each request individually. There is nothing special about signing multipart
- * upload requests. For more information about signing, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">Authenticating
- * Requests (AWS Signature Version 4)</a>.</p> <p> After you initiate a
- * multipart upload and upload one or more parts, to stop being charged for storing
- * the uploaded parts, you must either complete or abort the multipart upload.
- * Amazon S3 frees up the space used to store the parts and stop charging you for
- * storing them only after you either complete or abort a multipart upload. </p>
- * <p>You can optionally request server-side encryption. For server-side
- * encryption, Amazon S3 encrypts your data as it writes it to disks in its data
- * centers and decrypts it when you access it. You can provide your own encryption
- * key, or use AWS Key Management Service (AWS KMS) customer master keys (CMKs) or
- * Amazon S3-managed encryption keys. If you choose to provide your own encryption
- * key, the request headers you provide in <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>
- * requests must match the headers you used in the request to initiate the upload
- * by using <code>CreateMultipartUpload</code>. </p> <p>To perform a multipart
- * upload with encryption using an AWS KMS CMK, the requester must have permission
- * to the <code>kms:Encrypt</code>, <code>kms:Decrypt</code>,
- * <code>kms:ReEncrypt*</code>, <code>kms:GenerateDataKey*</code>, and
- * <code>kms:DescribeKey</code> actions on the key. These permissions are required
- * because Amazon S3 must decrypt and read data from the encrypted file parts
- * before it completes the multipart upload.</p> <p>If your AWS Identity and Access
- * Management (IAM) user or role is in the same AWS account as the AWS KMS CMK,
- * then you must have these permissions on the key policy. If your IAM user or role
- * belongs to a different account than the key, then you must have the permissions
- * on both the key policy and your IAM user or role.</p> <p> For more information,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
- * Data Using Server-Side Encryption</a>.</p> <dl> <dt>Access Permissions</dt> <dd>
- * <p>When copying an object, you can optionally specify the accounts or groups
- * that should be granted specific permissions on the new object. There are two
- * ways to grant the permissions using the request headers:</p> <ul> <li>
- * <p>Specify a canned ACL with the <code>x-amz-acl</code> request header. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
- * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
- * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
- * headers. These parameters map to the set of permissions that Amazon S3 supports
- * in an ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a>.</p> </li> </ul> <p>You can use either a canned
- * ACL or specify access permissions explicitly. You cannot do both.</p> </dd>
- * <dt>Server-Side- Encryption-Specific Request Headers</dt> <dd> <p>You can
- * optionally tell Amazon S3 to encrypt data at rest using server-side encryption.
- * Server-side encryption is for data encryption at rest. Amazon S3 encrypts your
- * data as it writes it to disks in its data centers and decrypts it when you
- * access it. The option you use depends on whether you want to use AWS managed
- * encryption keys or provide your own encryption key. </p> <ul> <li> <p>Use
- * encryption keys managed by Amazon S3 or customer master keys (CMKs) stored in
- * AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys used
- * to encrypt data, specify the following headers in the request.</p> <ul> <li>
- * <p>x-amz-server-side-encryption</p> </li> <li>
- * <p>x-amz-server-side-encryption-aws-kms-key-id</p> </li> <li>
- * <p>x-amz-server-side-encryption-context</p> </li> </ul> <p>If you specify
- * <code>x-amz-server-side-encryption:aws:kms</code>, but don't provide
- * <code>x-amz-server-side-encryption-aws-kms-key-id</code>, Amazon S3 uses the AWS
- * managed CMK in AWS KMS to protect the data.</p> <p>All GET
- * and PUT requests for an object protected by AWS KMS fail if you don't make them
- * with SSL or by using SigV4.</p> <p>For more information about
- * server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting
- * Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>.</p> </li>
- * <li> <p>Use customer-provided encryption keys – If you want to manage your own
- * encryption keys, provide all the following headers in the request.</p> <ul> <li>
- * <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
- * information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS),
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting
- * Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>.</p> </li>
- * </ul> </dd> <dt>Access-Control-List (ACL)-Specific Request Headers</dt> <dd>
- * <p>You also can use the following access control–related headers with this
- * operation. By default, all objects are private. Only the owner has full access
- * control. When adding a new object, you can grant permissions to individual AWS
- * accounts or to predefined groups defined by Amazon S3. These permissions are
- * then added to the access control list (ACL) on the object. For more information,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
- * ACLs</a>. With this operation, you can grant access permissions using one of the
- * following two methods:</p> <ul> <li> <p>Specify a canned ACL
- * (<code>x-amz-acl</code>) — Amazon S3 supports a set of predefined ACLs, known as
- * <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and
- * permissions. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly — To explicitly
- * grant access permissions to specific AWS accounts or groups, use the following
- * headers. Each header maps to specific permissions that Amazon S3 supports in an
- * ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a>. In the header, you specify a list of grantees
- * who get the specific permission. To grant permissions explicitly, use:</p> <ul>
- * <li> <p>x-amz-grant-read</p> </li> <li> <p>x-amz-grant-write</p> </li> <li>
- * <p>x-amz-grant-read-acp</p> </li> <li> <p>x-amz-grant-write-acp</p> </li> <li>
- * <p>x-amz-grant-full-control</p> </li> </ul> <p>You specify each grantee as a
- * type=value pair, where the type is one of the following:</p> <ul> <li> <p>
- * <code>id</code> – if the value specified is the canonical user ID of an AWS
- * account</p> </li> <li> <p> <code>uri</code> – if you are granting permissions to
- * a predefined group</p> </li> <li> <p> <code>emailAddress</code> – if the value
- * specified is the email address of an AWS account</p> <p>Using email
- * addresses to specify a grantee is only supported in the following AWS Regions:
- * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
- * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
- * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
- * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
- * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
- * Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
- * example, the following <code>x-amz-grant-read</code> header grants the AWS
- * accounts identified by account IDs permissions to read object data and its
- * metadata:</p> <p> <code>x-amz-grant-read: id="11112222333", id="444455556666"
- * </code> </p> </li> </ul> </dd> </dl> <p>The following operations are related to
- * <code>CreateMultipartUpload</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUpload">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::CreateMultipartUploadOutcomeCallable CreateMultipartUploadCallable(const Model::CreateMultipartUploadRequest& request) const;
- /**
- * <p>This action initiates a multipart upload and returns an upload ID. This
- * upload ID is used to associate all of the parts in the specific multipart
- * upload. You specify this upload ID in each of your subsequent upload part
- * requests (see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>).
- * You also include this upload ID in the final request to either complete or abort
- * the multipart upload request.</p> <p>For more information about multipart
- * uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart
- * Upload Overview</a>.</p> <p>If you have configured a lifecycle rule to abort
- * incomplete multipart uploads, the upload must complete within the number of days
- * specified in the bucket lifecycle configuration. Otherwise, the incomplete
- * multipart upload becomes eligible for an abort action and Amazon S3 aborts the
- * multipart upload. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">Aborting
- * Incomplete Multipart Uploads Using a Bucket Lifecycle Policy</a>.</p> <p>For
- * information about the permissions required to use the multipart upload API, see
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p>For request signing, multipart upload is just
- * a series of regular requests. You initiate a multipart upload, send one or more
- * requests to upload parts, and then complete the multipart upload process. You
- * sign each request individually. There is nothing special about signing multipart
- * upload requests. For more information about signing, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">Authenticating
- * Requests (AWS Signature Version 4)</a>.</p> <p> After you initiate a
- * multipart upload and upload one or more parts, to stop being charged for storing
- * the uploaded parts, you must either complete or abort the multipart upload.
- * Amazon S3 frees up the space used to store the parts and stop charging you for
- * storing them only after you either complete or abort a multipart upload. </p>
- * <p>You can optionally request server-side encryption. For server-side
- * encryption, Amazon S3 encrypts your data as it writes it to disks in its data
- * centers and decrypts it when you access it. You can provide your own encryption
- * key, or use AWS Key Management Service (AWS KMS) customer master keys (CMKs) or
- * Amazon S3-managed encryption keys. If you choose to provide your own encryption
- * key, the request headers you provide in <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>
- * requests must match the headers you used in the request to initiate the upload
- * by using <code>CreateMultipartUpload</code>. </p> <p>To perform a multipart
- * upload with encryption using an AWS KMS CMK, the requester must have permission
- * to the <code>kms:Encrypt</code>, <code>kms:Decrypt</code>,
- * <code>kms:ReEncrypt*</code>, <code>kms:GenerateDataKey*</code>, and
- * <code>kms:DescribeKey</code> actions on the key. These permissions are required
- * because Amazon S3 must decrypt and read data from the encrypted file parts
- * before it completes the multipart upload.</p> <p>If your AWS Identity and Access
- * Management (IAM) user or role is in the same AWS account as the AWS KMS CMK,
- * then you must have these permissions on the key policy. If your IAM user or role
- * belongs to a different account than the key, then you must have the permissions
- * on both the key policy and your IAM user or role.</p> <p> For more information,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
- * Data Using Server-Side Encryption</a>.</p> <dl> <dt>Access Permissions</dt> <dd>
- * <p>When copying an object, you can optionally specify the accounts or groups
- * that should be granted specific permissions on the new object. There are two
- * ways to grant the permissions using the request headers:</p> <ul> <li>
- * <p>Specify a canned ACL with the <code>x-amz-acl</code> request header. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
- * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
- * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
- * headers. These parameters map to the set of permissions that Amazon S3 supports
- * in an ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a>.</p> </li> </ul> <p>You can use either a canned
- * ACL or specify access permissions explicitly. You cannot do both.</p> </dd>
- * <dt>Server-Side- Encryption-Specific Request Headers</dt> <dd> <p>You can
- * optionally tell Amazon S3 to encrypt data at rest using server-side encryption.
- * Server-side encryption is for data encryption at rest. Amazon S3 encrypts your
- * data as it writes it to disks in its data centers and decrypts it when you
- * access it. The option you use depends on whether you want to use AWS managed
- * encryption keys or provide your own encryption key. </p> <ul> <li> <p>Use
- * encryption keys managed by Amazon S3 or customer master keys (CMKs) stored in
- * AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys used
- * to encrypt data, specify the following headers in the request.</p> <ul> <li>
- * <p>x-amz-server-side-encryption</p> </li> <li>
- * <p>x-amz-server-side-encryption-aws-kms-key-id</p> </li> <li>
- * <p>x-amz-server-side-encryption-context</p> </li> </ul> <p>If you specify
- * <code>x-amz-server-side-encryption:aws:kms</code>, but don't provide
- * <code>x-amz-server-side-encryption-aws-kms-key-id</code>, Amazon S3 uses the AWS
- * managed CMK in AWS KMS to protect the data.</p> <p>All GET
- * and PUT requests for an object protected by AWS KMS fail if you don't make them
- * with SSL or by using SigV4.</p> <p>For more information about
- * server-side encryption with CMKs stored in AWS KMS (SSE-KMS), see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting
- * Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>.</p> </li>
- * <li> <p>Use customer-provided encryption keys – If you want to manage your own
- * encryption keys, provide all the following headers in the request.</p> <ul> <li>
- * <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
- * information about server-side encryption with CMKs stored in AWS KMS (SSE-KMS),
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html">Protecting
- * Data Using Server-Side Encryption with CMKs stored in AWS KMS</a>.</p> </li>
- * </ul> </dd> <dt>Access-Control-List (ACL)-Specific Request Headers</dt> <dd>
- * <p>You also can use the following access control–related headers with this
- * operation. By default, all objects are private. Only the owner has full access
- * control. When adding a new object, you can grant permissions to individual AWS
- * accounts or to predefined groups defined by Amazon S3. These permissions are
- * then added to the access control list (ACL) on the object. For more information,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
- * ACLs</a>. With this operation, you can grant access permissions using one of the
- * following two methods:</p> <ul> <li> <p>Specify a canned ACL
- * (<code>x-amz-acl</code>) — Amazon S3 supports a set of predefined ACLs, known as
- * <i>canned ACLs</i>. Each canned ACL has a predefined set of grantees and
- * permissions. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly — To explicitly
- * grant access permissions to specific AWS accounts or groups, use the following
- * headers. Each header maps to specific permissions that Amazon S3 supports in an
- * ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a>. In the header, you specify a list of grantees
- * who get the specific permission. To grant permissions explicitly, use:</p> <ul>
- * <li> <p>x-amz-grant-read</p> </li> <li> <p>x-amz-grant-write</p> </li> <li>
- * <p>x-amz-grant-read-acp</p> </li> <li> <p>x-amz-grant-write-acp</p> </li> <li>
- * <p>x-amz-grant-full-control</p> </li> </ul> <p>You specify each grantee as a
- * type=value pair, where the type is one of the following:</p> <ul> <li> <p>
- * <code>id</code> – if the value specified is the canonical user ID of an AWS
- * account</p> </li> <li> <p> <code>uri</code> – if you are granting permissions to
- * a predefined group</p> </li> <li> <p> <code>emailAddress</code> – if the value
- * specified is the email address of an AWS account</p> <p>Using email
- * addresses to specify a grantee is only supported in the following AWS Regions:
- * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
- * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
- * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
- * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
- * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
- * Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
- * example, the following <code>x-amz-grant-read</code> header grants the AWS
- * accounts identified by account IDs permissions to read object data and its
- * metadata:</p> <p> <code>x-amz-grant-read: id="11112222333", id="444455556666"
- * </code> </p> </li> </ul> </dd> </dl> <p>The following operations are related to
- * <code>CreateMultipartUpload</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUpload">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void CreateMultipartUploadAsync(const Model::CreateMultipartUploadRequest& request, const CreateMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Deletes the S3 bucket. All objects (including all object versions and delete
- * markers) in the bucket must be deleted before the bucket itself can be
- * deleted.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucket">AWS API
- * Reference</a></p>
- */
- virtual Model::DeleteBucketOutcome DeleteBucket(const Model::DeleteBucketRequest& request) const;
- /**
- * <p>Deletes the S3 bucket. All objects (including all object versions and delete
- * markers) in the bucket must be deleted before the bucket itself can be
- * deleted.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucket">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteBucketOutcomeCallable DeleteBucketCallable(const Model::DeleteBucketRequest& request) const;
- /**
- * <p>Deletes the S3 bucket. All objects (including all object versions and delete
- * markers) in the bucket must be deleted before the bucket itself can be
- * deleted.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucket">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteBucketAsync(const Model::DeleteBucketRequest& request, const DeleteBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Deletes an analytics configuration for the bucket (specified by the analytics
- * configuration ID).</p> <p>To use this operation, you must have permissions to
- * perform the <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner
- * has this permission by default. The bucket owner can grant this permission to
- * others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * the Amazon S3 analytics feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
- * S3 Analytics – Storage Class Analysis</a>. </p> <p>The following operations are
- * related to <code>DeleteBucketAnalyticsConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketAnalyticsConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteBucketAnalyticsConfigurationOutcome DeleteBucketAnalyticsConfiguration(const Model::DeleteBucketAnalyticsConfigurationRequest& request) const;
- /**
- * <p>Deletes an analytics configuration for the bucket (specified by the analytics
- * configuration ID).</p> <p>To use this operation, you must have permissions to
- * perform the <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner
- * has this permission by default. The bucket owner can grant this permission to
- * others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * the Amazon S3 analytics feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
- * S3 Analytics – Storage Class Analysis</a>. </p> <p>The following operations are
- * related to <code>DeleteBucketAnalyticsConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketAnalyticsConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteBucketAnalyticsConfigurationOutcomeCallable DeleteBucketAnalyticsConfigurationCallable(const Model::DeleteBucketAnalyticsConfigurationRequest& request) const;
- /**
- * <p>Deletes an analytics configuration for the bucket (specified by the analytics
- * configuration ID).</p> <p>To use this operation, you must have permissions to
- * perform the <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner
- * has this permission by default. The bucket owner can grant this permission to
- * others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * the Amazon S3 analytics feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
- * S3 Analytics – Storage Class Analysis</a>. </p> <p>The following operations are
- * related to <code>DeleteBucketAnalyticsConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketAnalyticsConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteBucketAnalyticsConfigurationAsync(const Model::DeleteBucketAnalyticsConfigurationRequest& request, const DeleteBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Deletes the <code>cors</code> configuration information set for the
- * bucket.</p> <p>To use this operation, you must have permission to perform the
- * <code>s3:PutBucketCORS</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. </p> <p>For information about
- * <code>cors</code>, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling
- * Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.</p> <p
- * class="title"> <b>Related Resources:</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketCors">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteBucketCorsOutcome DeleteBucketCors(const Model::DeleteBucketCorsRequest& request) const;
- /**
- * <p>Deletes the <code>cors</code> configuration information set for the
- * bucket.</p> <p>To use this operation, you must have permission to perform the
- * <code>s3:PutBucketCORS</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. </p> <p>For information about
- * <code>cors</code>, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling
- * Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.</p> <p
- * class="title"> <b>Related Resources:</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketCors">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteBucketCorsOutcomeCallable DeleteBucketCorsCallable(const Model::DeleteBucketCorsRequest& request) const;
- /**
- * <p>Deletes the <code>cors</code> configuration information set for the
- * bucket.</p> <p>To use this operation, you must have permission to perform the
- * <code>s3:PutBucketCORS</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. </p> <p>For information about
- * <code>cors</code>, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling
- * Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.</p> <p
- * class="title"> <b>Related Resources:</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketCors">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteBucketCorsAsync(const Model::DeleteBucketCorsRequest& request, const DeleteBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>This implementation of the DELETE action removes default encryption from the
- * bucket. For information about the Amazon S3 default encryption feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
- * S3 Default Bucket Encryption</a> in the <i>Amazon S3 User Guide</i>.</p> <p>To
- * use this operation, you must have permissions to perform the
- * <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketEncryption">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteBucketEncryptionOutcome DeleteBucketEncryption(const Model::DeleteBucketEncryptionRequest& request) const;
- /**
- * <p>This implementation of the DELETE action removes default encryption from the
- * bucket. For information about the Amazon S3 default encryption feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
- * S3 Default Bucket Encryption</a> in the <i>Amazon S3 User Guide</i>.</p> <p>To
- * use this operation, you must have permissions to perform the
- * <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketEncryption">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteBucketEncryptionOutcomeCallable DeleteBucketEncryptionCallable(const Model::DeleteBucketEncryptionRequest& request) const;
- /**
- * <p>This implementation of the DELETE action removes default encryption from the
- * bucket. For information about the Amazon S3 default encryption feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
- * S3 Default Bucket Encryption</a> in the <i>Amazon S3 User Guide</i>.</p> <p>To
- * use this operation, you must have permissions to perform the
- * <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketEncryption">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteBucketEncryptionAsync(const Model::DeleteBucketEncryptionRequest& request, const DeleteBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Deletes the S3 Intelligent-Tiering configuration from the specified
- * bucket.</p> <p>The S3 Intelligent-Tiering storage class is designed to optimize
- * storage costs by automatically moving data to the most cost-effective storage
- * access tier, without additional operational overhead. S3 Intelligent-Tiering
- * delivers automatic cost savings by moving data between access tiers, when access
- * patterns change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for
- * objects larger than 128 KB that you plan to store for at least 30 days. If the
- * size of an object is less than 128 KB, it is not eligible for auto-tiering.
- * Smaller objects can be stored, but they are always charged at the frequent
- * access tier rates in the S3 Intelligent-Tiering storage class. </p> <p>If you
- * delete an object before the end of the 30-day minimum storage duration period,
- * you are charged for 30 days. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
- * class for automatically optimizing frequently and infrequently accessed
- * objects</a>.</p> <p>Operations related to
- * <code>DeleteBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteBucketIntelligentTieringConfigurationOutcome DeleteBucketIntelligentTieringConfiguration(const Model::DeleteBucketIntelligentTieringConfigurationRequest& request) const;
- /**
- * <p>Deletes the S3 Intelligent-Tiering configuration from the specified
- * bucket.</p> <p>The S3 Intelligent-Tiering storage class is designed to optimize
- * storage costs by automatically moving data to the most cost-effective storage
- * access tier, without additional operational overhead. S3 Intelligent-Tiering
- * delivers automatic cost savings by moving data between access tiers, when access
- * patterns change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for
- * objects larger than 128 KB that you plan to store for at least 30 days. If the
- * size of an object is less than 128 KB, it is not eligible for auto-tiering.
- * Smaller objects can be stored, but they are always charged at the frequent
- * access tier rates in the S3 Intelligent-Tiering storage class. </p> <p>If you
- * delete an object before the end of the 30-day minimum storage duration period,
- * you are charged for 30 days. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
- * class for automatically optimizing frequently and infrequently accessed
- * objects</a>.</p> <p>Operations related to
- * <code>DeleteBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteBucketIntelligentTieringConfigurationOutcomeCallable DeleteBucketIntelligentTieringConfigurationCallable(const Model::DeleteBucketIntelligentTieringConfigurationRequest& request) const;
- /**
- * <p>Deletes the S3 Intelligent-Tiering configuration from the specified
- * bucket.</p> <p>The S3 Intelligent-Tiering storage class is designed to optimize
- * storage costs by automatically moving data to the most cost-effective storage
- * access tier, without additional operational overhead. S3 Intelligent-Tiering
- * delivers automatic cost savings by moving data between access tiers, when access
- * patterns change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for
- * objects larger than 128 KB that you plan to store for at least 30 days. If the
- * size of an object is less than 128 KB, it is not eligible for auto-tiering.
- * Smaller objects can be stored, but they are always charged at the frequent
- * access tier rates in the S3 Intelligent-Tiering storage class. </p> <p>If you
- * delete an object before the end of the 30-day minimum storage duration period,
- * you are charged for 30 days. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
- * class for automatically optimizing frequently and infrequently accessed
- * objects</a>.</p> <p>Operations related to
- * <code>DeleteBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteBucketIntelligentTieringConfigurationAsync(const Model::DeleteBucketIntelligentTieringConfigurationRequest& request, const DeleteBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Deletes an inventory configuration (identified by the inventory ID) from the
- * bucket.</p> <p>To use this operation, you must have permissions to perform the
- * <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * the Amazon S3 inventory feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
- * S3 Inventory</a>.</p> <p>Operations related to
- * <code>DeleteBucketInventoryConfiguration</code> include: </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketInventoryConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteBucketInventoryConfigurationOutcome DeleteBucketInventoryConfiguration(const Model::DeleteBucketInventoryConfigurationRequest& request) const;
- /**
- * <p>Deletes an inventory configuration (identified by the inventory ID) from the
- * bucket.</p> <p>To use this operation, you must have permissions to perform the
- * <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * the Amazon S3 inventory feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
- * S3 Inventory</a>.</p> <p>Operations related to
- * <code>DeleteBucketInventoryConfiguration</code> include: </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketInventoryConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteBucketInventoryConfigurationOutcomeCallable DeleteBucketInventoryConfigurationCallable(const Model::DeleteBucketInventoryConfigurationRequest& request) const;
- /**
- * <p>Deletes an inventory configuration (identified by the inventory ID) from the
- * bucket.</p> <p>To use this operation, you must have permissions to perform the
- * <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * the Amazon S3 inventory feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
- * S3 Inventory</a>.</p> <p>Operations related to
- * <code>DeleteBucketInventoryConfiguration</code> include: </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketInventoryConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteBucketInventoryConfigurationAsync(const Model::DeleteBucketInventoryConfigurationRequest& request, const DeleteBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Deletes the lifecycle configuration from the specified bucket. Amazon S3
- * removes all the lifecycle configuration rules in the lifecycle subresource
- * associated with the bucket. Your objects never expire, and Amazon S3 no longer
- * automatically deletes any objects on the basis of rules contained in the deleted
- * lifecycle configuration.</p> <p>To use this operation, you must have permission
- * to perform the <code>s3:PutLifecycleConfiguration</code> action. By default, the
- * bucket owner has this permission and the bucket owner can grant this permission
- * to others.</p> <p>There is usually some time lag before lifecycle configuration
- * deletion is fully propagated to all the Amazon S3 systems.</p> <p>For more
- * information about the object expiration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions">Elements
- * to Describe Lifecycle Actions</a>.</p> <p>Related actions include:</p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketLifecycle">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteBucketLifecycleOutcome DeleteBucketLifecycle(const Model::DeleteBucketLifecycleRequest& request) const;
- /**
- * <p>Deletes the lifecycle configuration from the specified bucket. Amazon S3
- * removes all the lifecycle configuration rules in the lifecycle subresource
- * associated with the bucket. Your objects never expire, and Amazon S3 no longer
- * automatically deletes any objects on the basis of rules contained in the deleted
- * lifecycle configuration.</p> <p>To use this operation, you must have permission
- * to perform the <code>s3:PutLifecycleConfiguration</code> action. By default, the
- * bucket owner has this permission and the bucket owner can grant this permission
- * to others.</p> <p>There is usually some time lag before lifecycle configuration
- * deletion is fully propagated to all the Amazon S3 systems.</p> <p>For more
- * information about the object expiration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions">Elements
- * to Describe Lifecycle Actions</a>.</p> <p>Related actions include:</p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketLifecycle">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteBucketLifecycleOutcomeCallable DeleteBucketLifecycleCallable(const Model::DeleteBucketLifecycleRequest& request) const;
- /**
- * <p>Deletes the lifecycle configuration from the specified bucket. Amazon S3
- * removes all the lifecycle configuration rules in the lifecycle subresource
- * associated with the bucket. Your objects never expire, and Amazon S3 no longer
- * automatically deletes any objects on the basis of rules contained in the deleted
- * lifecycle configuration.</p> <p>To use this operation, you must have permission
- * to perform the <code>s3:PutLifecycleConfiguration</code> action. By default, the
- * bucket owner has this permission and the bucket owner can grant this permission
- * to others.</p> <p>There is usually some time lag before lifecycle configuration
- * deletion is fully propagated to all the Amazon S3 systems.</p> <p>For more
- * information about the object expiration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions">Elements
- * to Describe Lifecycle Actions</a>.</p> <p>Related actions include:</p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketLifecycle">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteBucketLifecycleAsync(const Model::DeleteBucketLifecycleRequest& request, const DeleteBucketLifecycleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Deletes a metrics configuration for the Amazon CloudWatch request metrics
- * (specified by the metrics configuration ID) from the bucket. Note that this
- * doesn't include the daily storage metrics.</p> <p> To use this operation, you
- * must have permissions to perform the <code>s3:PutMetricsConfiguration</code>
- * action. The bucket owner has this permission by default. The bucket owner can
- * grant this permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * CloudWatch request metrics for Amazon S3, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a>. </p> <p>The following operations are related
- * to <code>DeleteBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetricsConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteBucketMetricsConfigurationOutcome DeleteBucketMetricsConfiguration(const Model::DeleteBucketMetricsConfigurationRequest& request) const;
- /**
- * <p>Deletes a metrics configuration for the Amazon CloudWatch request metrics
- * (specified by the metrics configuration ID) from the bucket. Note that this
- * doesn't include the daily storage metrics.</p> <p> To use this operation, you
- * must have permissions to perform the <code>s3:PutMetricsConfiguration</code>
- * action. The bucket owner has this permission by default. The bucket owner can
- * grant this permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * CloudWatch request metrics for Amazon S3, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a>. </p> <p>The following operations are related
- * to <code>DeleteBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetricsConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteBucketMetricsConfigurationOutcomeCallable DeleteBucketMetricsConfigurationCallable(const Model::DeleteBucketMetricsConfigurationRequest& request) const;
- /**
- * <p>Deletes a metrics configuration for the Amazon CloudWatch request metrics
- * (specified by the metrics configuration ID) from the bucket. Note that this
- * doesn't include the daily storage metrics.</p> <p> To use this operation, you
- * must have permissions to perform the <code>s3:PutMetricsConfiguration</code>
- * action. The bucket owner has this permission by default. The bucket owner can
- * grant this permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * CloudWatch request metrics for Amazon S3, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a>. </p> <p>The following operations are related
- * to <code>DeleteBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetricsConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteBucketMetricsConfigurationAsync(const Model::DeleteBucketMetricsConfigurationRequest& request, const DeleteBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Removes <code>OwnershipControls</code> for an Amazon S3 bucket. To use this
- * operation, you must have the <code>s3:PutBucketOwnershipControls</code>
- * permission. For more information about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>.</p> <p>For information about Amazon S3 Object
- * Ownership, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
- * Object Ownership</a>. </p> <p>The following operations are related to
- * <code>DeleteBucketOwnershipControls</code>:</p> <ul> <li> <p>
- * <a>GetBucketOwnershipControls</a> </p> </li> <li> <p>
- * <a>PutBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControls">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteBucketOwnershipControlsOutcome DeleteBucketOwnershipControls(const Model::DeleteBucketOwnershipControlsRequest& request) const;
- /**
- * <p>Removes <code>OwnershipControls</code> for an Amazon S3 bucket. To use this
- * operation, you must have the <code>s3:PutBucketOwnershipControls</code>
- * permission. For more information about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>.</p> <p>For information about Amazon S3 Object
- * Ownership, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
- * Object Ownership</a>. </p> <p>The following operations are related to
- * <code>DeleteBucketOwnershipControls</code>:</p> <ul> <li> <p>
- * <a>GetBucketOwnershipControls</a> </p> </li> <li> <p>
- * <a>PutBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControls">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteBucketOwnershipControlsOutcomeCallable DeleteBucketOwnershipControlsCallable(const Model::DeleteBucketOwnershipControlsRequest& request) const;
- /**
- * <p>Removes <code>OwnershipControls</code> for an Amazon S3 bucket. To use this
- * operation, you must have the <code>s3:PutBucketOwnershipControls</code>
- * permission. For more information about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>.</p> <p>For information about Amazon S3 Object
- * Ownership, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
- * Object Ownership</a>. </p> <p>The following operations are related to
- * <code>DeleteBucketOwnershipControls</code>:</p> <ul> <li> <p>
- * <a>GetBucketOwnershipControls</a> </p> </li> <li> <p>
- * <a>PutBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControls">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteBucketOwnershipControlsAsync(const Model::DeleteBucketOwnershipControlsRequest& request, const DeleteBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>This implementation of the DELETE action uses the policy subresource to
- * delete the policy of a specified bucket. If you are using an identity other than
- * the root user of the AWS account that owns the bucket, the calling identity must
- * have the <code>DeleteBucketPolicy</code> permissions on the specified bucket and
- * belong to the bucket owner's account to use this operation. </p> <p>If you don't
- * have <code>DeleteBucketPolicy</code> permissions, Amazon S3 returns a <code>403
- * Access Denied</code> error. If you have the correct permissions, but you're not
- * using an identity that belongs to the bucket owner's account, Amazon S3 returns
- * a <code>405 Method Not Allowed</code> error. </p> <p>As a security
- * precaution, the root user of the AWS account that owns a bucket can always use
- * this operation, even if the policy explicitly denies the root user the ability
- * to perform this action.</p> <p>For more information about bucket
- * policies, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies and UserPolicies</a>. </p> <p>The following operations are
- * related to <code>DeleteBucketPolicy</code> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketPolicy">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteBucketPolicyOutcome DeleteBucketPolicy(const Model::DeleteBucketPolicyRequest& request) const;
- /**
- * <p>This implementation of the DELETE action uses the policy subresource to
- * delete the policy of a specified bucket. If you are using an identity other than
- * the root user of the AWS account that owns the bucket, the calling identity must
- * have the <code>DeleteBucketPolicy</code> permissions on the specified bucket and
- * belong to the bucket owner's account to use this operation. </p> <p>If you don't
- * have <code>DeleteBucketPolicy</code> permissions, Amazon S3 returns a <code>403
- * Access Denied</code> error. If you have the correct permissions, but you're not
- * using an identity that belongs to the bucket owner's account, Amazon S3 returns
- * a <code>405 Method Not Allowed</code> error. </p> <p>As a security
- * precaution, the root user of the AWS account that owns a bucket can always use
- * this operation, even if the policy explicitly denies the root user the ability
- * to perform this action.</p> <p>For more information about bucket
- * policies, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies and UserPolicies</a>. </p> <p>The following operations are
- * related to <code>DeleteBucketPolicy</code> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketPolicy">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteBucketPolicyOutcomeCallable DeleteBucketPolicyCallable(const Model::DeleteBucketPolicyRequest& request) const;
- /**
- * <p>This implementation of the DELETE action uses the policy subresource to
- * delete the policy of a specified bucket. If you are using an identity other than
- * the root user of the AWS account that owns the bucket, the calling identity must
- * have the <code>DeleteBucketPolicy</code> permissions on the specified bucket and
- * belong to the bucket owner's account to use this operation. </p> <p>If you don't
- * have <code>DeleteBucketPolicy</code> permissions, Amazon S3 returns a <code>403
- * Access Denied</code> error. If you have the correct permissions, but you're not
- * using an identity that belongs to the bucket owner's account, Amazon S3 returns
- * a <code>405 Method Not Allowed</code> error. </p> <p>As a security
- * precaution, the root user of the AWS account that owns a bucket can always use
- * this operation, even if the policy explicitly denies the root user the ability
- * to perform this action.</p> <p>For more information about bucket
- * policies, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies and UserPolicies</a>. </p> <p>The following operations are
- * related to <code>DeleteBucketPolicy</code> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketPolicy">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteBucketPolicyAsync(const Model::DeleteBucketPolicyRequest& request, const DeleteBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p> Deletes the replication configuration from the bucket.</p> <p>To use this
- * operation, you must have permissions to perform the
- * <code>s3:PutReplicationConfiguration</code> action. The bucket owner has these
- * permissions by default and can grant it to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>. </p> <p>It can take a
- * while for the deletion of a replication configuration to fully propagate.</p>
- * <p> For information about replication configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
- * in the <i>Amazon S3 Developer Guide</i>. </p> <p>The following operations are
- * related to <code>DeleteBucketReplication</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketReplication">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteBucketReplicationOutcome DeleteBucketReplication(const Model::DeleteBucketReplicationRequest& request) const;
- /**
- * <p> Deletes the replication configuration from the bucket.</p> <p>To use this
- * operation, you must have permissions to perform the
- * <code>s3:PutReplicationConfiguration</code> action. The bucket owner has these
- * permissions by default and can grant it to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>. </p> <p>It can take a
- * while for the deletion of a replication configuration to fully propagate.</p>
- * <p> For information about replication configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
- * in the <i>Amazon S3 Developer Guide</i>. </p> <p>The following operations are
- * related to <code>DeleteBucketReplication</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketReplication">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteBucketReplicationOutcomeCallable DeleteBucketReplicationCallable(const Model::DeleteBucketReplicationRequest& request) const;
- /**
- * <p> Deletes the replication configuration from the bucket.</p> <p>To use this
- * operation, you must have permissions to perform the
- * <code>s3:PutReplicationConfiguration</code> action. The bucket owner has these
- * permissions by default and can grant it to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>. </p> <p>It can take a
- * while for the deletion of a replication configuration to fully propagate.</p>
- * <p> For information about replication configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
- * in the <i>Amazon S3 Developer Guide</i>. </p> <p>The following operations are
- * related to <code>DeleteBucketReplication</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketReplication">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteBucketReplicationAsync(const Model::DeleteBucketReplicationRequest& request, const DeleteBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Deletes the tags from the bucket.</p> <p>To use this operation, you must have
- * permission to perform the <code>s3:PutBucketTagging</code> action. By default,
- * the bucket owner has this permission and can grant this permission to others.
- * </p> <p>The following operations are related to
- * <code>DeleteBucketTagging</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketTagging">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteBucketTaggingOutcome DeleteBucketTagging(const Model::DeleteBucketTaggingRequest& request) const;
- /**
- * <p>Deletes the tags from the bucket.</p> <p>To use this operation, you must have
- * permission to perform the <code>s3:PutBucketTagging</code> action. By default,
- * the bucket owner has this permission and can grant this permission to others.
- * </p> <p>The following operations are related to
- * <code>DeleteBucketTagging</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketTagging">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteBucketTaggingOutcomeCallable DeleteBucketTaggingCallable(const Model::DeleteBucketTaggingRequest& request) const;
- /**
- * <p>Deletes the tags from the bucket.</p> <p>To use this operation, you must have
- * permission to perform the <code>s3:PutBucketTagging</code> action. By default,
- * the bucket owner has this permission and can grant this permission to others.
- * </p> <p>The following operations are related to
- * <code>DeleteBucketTagging</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketTagging">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteBucketTaggingAsync(const Model::DeleteBucketTaggingRequest& request, const DeleteBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>This action removes the website configuration for a bucket. Amazon S3 returns
- * a <code>200 OK</code> response upon successfully deleting a website
- * configuration on the specified bucket. You will get a <code>200 OK</code>
- * response if the website configuration you are trying to delete does not exist on
- * the bucket. Amazon S3 returns a <code>404</code> response if the bucket
- * specified in the request does not exist.</p> <p>This DELETE action requires the
- * <code>S3:DeleteBucketWebsite</code> permission. By default, only the bucket
- * owner can delete the website configuration attached to a bucket. However, bucket
- * owners can grant other users permission to delete the website configuration by
- * writing a bucket policy granting them the <code>S3:DeleteBucketWebsite</code>
- * permission. </p> <p>For more information about hosting websites, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
- * Websites on Amazon S3</a>. </p> <p>The following operations are related to
- * <code>DeleteBucketWebsite</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html">GetBucketWebsite</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketWebsite">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteBucketWebsiteOutcome DeleteBucketWebsite(const Model::DeleteBucketWebsiteRequest& request) const;
- /**
- * <p>This action removes the website configuration for a bucket. Amazon S3 returns
- * a <code>200 OK</code> response upon successfully deleting a website
- * configuration on the specified bucket. You will get a <code>200 OK</code>
- * response if the website configuration you are trying to delete does not exist on
- * the bucket. Amazon S3 returns a <code>404</code> response if the bucket
- * specified in the request does not exist.</p> <p>This DELETE action requires the
- * <code>S3:DeleteBucketWebsite</code> permission. By default, only the bucket
- * owner can delete the website configuration attached to a bucket. However, bucket
- * owners can grant other users permission to delete the website configuration by
- * writing a bucket policy granting them the <code>S3:DeleteBucketWebsite</code>
- * permission. </p> <p>For more information about hosting websites, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
- * Websites on Amazon S3</a>. </p> <p>The following operations are related to
- * <code>DeleteBucketWebsite</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html">GetBucketWebsite</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketWebsite">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteBucketWebsiteOutcomeCallable DeleteBucketWebsiteCallable(const Model::DeleteBucketWebsiteRequest& request) const;
- /**
- * <p>This action removes the website configuration for a bucket. Amazon S3 returns
- * a <code>200 OK</code> response upon successfully deleting a website
- * configuration on the specified bucket. You will get a <code>200 OK</code>
- * response if the website configuration you are trying to delete does not exist on
- * the bucket. Amazon S3 returns a <code>404</code> response if the bucket
- * specified in the request does not exist.</p> <p>This DELETE action requires the
- * <code>S3:DeleteBucketWebsite</code> permission. By default, only the bucket
- * owner can delete the website configuration attached to a bucket. However, bucket
- * owners can grant other users permission to delete the website configuration by
- * writing a bucket policy granting them the <code>S3:DeleteBucketWebsite</code>
- * permission. </p> <p>For more information about hosting websites, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
- * Websites on Amazon S3</a>. </p> <p>The following operations are related to
- * <code>DeleteBucketWebsite</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html">GetBucketWebsite</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketWebsite">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteBucketWebsiteAsync(const Model::DeleteBucketWebsiteRequest& request, const DeleteBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Removes the null version (if there is one) of an object and inserts a delete
- * marker, which becomes the latest version of the object. If there isn't a null
- * version, Amazon S3 does not remove any objects but will still respond that the
- * command was successful.</p> <p>To remove a specific version, you must be the
- * bucket owner and you must use the version Id subresource. Using this subresource
- * permanently deletes the version. If the object deleted is a delete marker,
- * Amazon S3 sets the response header, <code>x-amz-delete-marker</code>, to true.
- * </p> <p>If the object you want to delete is in a bucket where the bucket
- * versioning configuration is MFA Delete enabled, you must include the
- * <code>x-amz-mfa</code> request header in the DELETE <code>versionId</code>
- * request. Requests that include <code>x-amz-mfa</code> must use HTTPS. </p> <p>
- * For more information about MFA Delete, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html">Using
- * MFA Delete</a>. To see sample requests that use versioning, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete">Sample
- * Request</a>. </p> <p>You can delete objects by explicitly calling DELETE Object
- * or configure its lifecycle (<a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>)
- * to enable Amazon S3 to remove them for you. If you want to block users or
- * accounts from removing or deleting objects from your bucket, you must deny them
- * the <code>s3:DeleteObject</code>, <code>s3:DeleteObjectVersion</code>, and
- * <code>s3:PutLifeCycleConfiguration</code> actions. </p> <p>The following action
- * is related to <code>DeleteObject</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObject">AWS API
- * Reference</a></p>
- */
- virtual Model::DeleteObjectOutcome DeleteObject(const Model::DeleteObjectRequest& request) const;
- /**
- * <p>Removes the null version (if there is one) of an object and inserts a delete
- * marker, which becomes the latest version of the object. If there isn't a null
- * version, Amazon S3 does not remove any objects but will still respond that the
- * command was successful.</p> <p>To remove a specific version, you must be the
- * bucket owner and you must use the version Id subresource. Using this subresource
- * permanently deletes the version. If the object deleted is a delete marker,
- * Amazon S3 sets the response header, <code>x-amz-delete-marker</code>, to true.
- * </p> <p>If the object you want to delete is in a bucket where the bucket
- * versioning configuration is MFA Delete enabled, you must include the
- * <code>x-amz-mfa</code> request header in the DELETE <code>versionId</code>
- * request. Requests that include <code>x-amz-mfa</code> must use HTTPS. </p> <p>
- * For more information about MFA Delete, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html">Using
- * MFA Delete</a>. To see sample requests that use versioning, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete">Sample
- * Request</a>. </p> <p>You can delete objects by explicitly calling DELETE Object
- * or configure its lifecycle (<a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>)
- * to enable Amazon S3 to remove them for you. If you want to block users or
- * accounts from removing or deleting objects from your bucket, you must deny them
- * the <code>s3:DeleteObject</code>, <code>s3:DeleteObjectVersion</code>, and
- * <code>s3:PutLifeCycleConfiguration</code> actions. </p> <p>The following action
- * is related to <code>DeleteObject</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObject">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteObjectOutcomeCallable DeleteObjectCallable(const Model::DeleteObjectRequest& request) const;
- /**
- * <p>Removes the null version (if there is one) of an object and inserts a delete
- * marker, which becomes the latest version of the object. If there isn't a null
- * version, Amazon S3 does not remove any objects but will still respond that the
- * command was successful.</p> <p>To remove a specific version, you must be the
- * bucket owner and you must use the version Id subresource. Using this subresource
- * permanently deletes the version. If the object deleted is a delete marker,
- * Amazon S3 sets the response header, <code>x-amz-delete-marker</code>, to true.
- * </p> <p>If the object you want to delete is in a bucket where the bucket
- * versioning configuration is MFA Delete enabled, you must include the
- * <code>x-amz-mfa</code> request header in the DELETE <code>versionId</code>
- * request. Requests that include <code>x-amz-mfa</code> must use HTTPS. </p> <p>
- * For more information about MFA Delete, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html">Using
- * MFA Delete</a>. To see sample requests that use versioning, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete">Sample
- * Request</a>. </p> <p>You can delete objects by explicitly calling DELETE Object
- * or configure its lifecycle (<a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>)
- * to enable Amazon S3 to remove them for you. If you want to block users or
- * accounts from removing or deleting objects from your bucket, you must deny them
- * the <code>s3:DeleteObject</code>, <code>s3:DeleteObjectVersion</code>, and
- * <code>s3:PutLifeCycleConfiguration</code> actions. </p> <p>The following action
- * is related to <code>DeleteObject</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObject">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteObjectAsync(const Model::DeleteObjectRequest& request, const DeleteObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Removes the entire tag set from the specified object. For more information
- * about managing object tags, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">
- * Object Tagging</a>.</p> <p>To use this operation, you must have permission to
- * perform the <code>s3:DeleteObjectTagging</code> action.</p> <p>To delete tags of
- * a specific object version, add the <code>versionId</code> query parameter in the
- * request. You will need permission for the
- * <code>s3:DeleteObjectVersionTagging</code> action.</p> <p>The following
- * operations are related to <code>DeleteBucketMetricsConfiguration</code>:</p>
- * <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectTagging">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteObjectTaggingOutcome DeleteObjectTagging(const Model::DeleteObjectTaggingRequest& request) const;
- /**
- * <p>Removes the entire tag set from the specified object. For more information
- * about managing object tags, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">
- * Object Tagging</a>.</p> <p>To use this operation, you must have permission to
- * perform the <code>s3:DeleteObjectTagging</code> action.</p> <p>To delete tags of
- * a specific object version, add the <code>versionId</code> query parameter in the
- * request. You will need permission for the
- * <code>s3:DeleteObjectVersionTagging</code> action.</p> <p>The following
- * operations are related to <code>DeleteBucketMetricsConfiguration</code>:</p>
- * <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectTagging">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteObjectTaggingOutcomeCallable DeleteObjectTaggingCallable(const Model::DeleteObjectTaggingRequest& request) const;
- /**
- * <p>Removes the entire tag set from the specified object. For more information
- * about managing object tags, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">
- * Object Tagging</a>.</p> <p>To use this operation, you must have permission to
- * perform the <code>s3:DeleteObjectTagging</code> action.</p> <p>To delete tags of
- * a specific object version, add the <code>versionId</code> query parameter in the
- * request. You will need permission for the
- * <code>s3:DeleteObjectVersionTagging</code> action.</p> <p>The following
- * operations are related to <code>DeleteBucketMetricsConfiguration</code>:</p>
- * <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectTagging">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteObjectTaggingAsync(const Model::DeleteObjectTaggingRequest& request, const DeleteObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>This action enables you to delete multiple objects from a bucket using a
- * single HTTP request. If you know the object keys that you want to delete, then
- * this action provides a suitable alternative to sending individual delete
- * requests, reducing per-request overhead.</p> <p>The request contains a list of
- * up to 1000 keys that you want to delete. In the XML, you provide the object key
- * names, and optionally, version IDs if you want to delete a specific version of
- * the object from a versioning-enabled bucket. For each key, Amazon S3 performs a
- * delete action and returns the result of that delete, success, or failure, in the
- * response. Note that if the object specified in the request is not found, Amazon
- * S3 returns the result as deleted.</p> <p> The action supports two modes for the
- * response: verbose and quiet. By default, the action uses verbose mode in which
- * the response includes the result of deletion of each key in your request. In
- * quiet mode the response includes only keys where the delete action encountered
- * an error. For a successful deletion, the action does not return any information
- * about the delete in the response body.</p> <p>When performing this action on an
- * MFA Delete enabled bucket, that attempts to delete any versioned objects, you
- * must include an MFA token. If you do not provide one, the entire request will
- * fail, even if there are non-versioned objects you are trying to delete. If you
- * provide an invalid token, whether there are versioned keys in the request or
- * not, the entire Multi-Object Delete request will fail. For information about MFA
- * Delete, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete">
- * MFA Delete</a>.</p> <p>Finally, the Content-MD5 header is required for all
- * Multi-Object Delete requests. Amazon S3 uses the header value to ensure that
- * your request body has not been altered in transit.</p> <p>The following
- * operations are related to <code>DeleteObjects</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjects">AWS
- * API Reference</a></p>
- */
- virtual Model::DeleteObjectsOutcome DeleteObjects(const Model::DeleteObjectsRequest& request) const;
- /**
- * <p>This action enables you to delete multiple objects from a bucket using a
- * single HTTP request. If you know the object keys that you want to delete, then
- * this action provides a suitable alternative to sending individual delete
- * requests, reducing per-request overhead.</p> <p>The request contains a list of
- * up to 1000 keys that you want to delete. In the XML, you provide the object key
- * names, and optionally, version IDs if you want to delete a specific version of
- * the object from a versioning-enabled bucket. For each key, Amazon S3 performs a
- * delete action and returns the result of that delete, success, or failure, in the
- * response. Note that if the object specified in the request is not found, Amazon
- * S3 returns the result as deleted.</p> <p> The action supports two modes for the
- * response: verbose and quiet. By default, the action uses verbose mode in which
- * the response includes the result of deletion of each key in your request. In
- * quiet mode the response includes only keys where the delete action encountered
- * an error. For a successful deletion, the action does not return any information
- * about the delete in the response body.</p> <p>When performing this action on an
- * MFA Delete enabled bucket, that attempts to delete any versioned objects, you
- * must include an MFA token. If you do not provide one, the entire request will
- * fail, even if there are non-versioned objects you are trying to delete. If you
- * provide an invalid token, whether there are versioned keys in the request or
- * not, the entire Multi-Object Delete request will fail. For information about MFA
- * Delete, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete">
- * MFA Delete</a>.</p> <p>Finally, the Content-MD5 header is required for all
- * Multi-Object Delete requests. Amazon S3 uses the header value to ensure that
- * your request body has not been altered in transit.</p> <p>The following
- * operations are related to <code>DeleteObjects</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjects">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeleteObjectsOutcomeCallable DeleteObjectsCallable(const Model::DeleteObjectsRequest& request) const;
- /**
- * <p>This action enables you to delete multiple objects from a bucket using a
- * single HTTP request. If you know the object keys that you want to delete, then
- * this action provides a suitable alternative to sending individual delete
- * requests, reducing per-request overhead.</p> <p>The request contains a list of
- * up to 1000 keys that you want to delete. In the XML, you provide the object key
- * names, and optionally, version IDs if you want to delete a specific version of
- * the object from a versioning-enabled bucket. For each key, Amazon S3 performs a
- * delete action and returns the result of that delete, success, or failure, in the
- * response. Note that if the object specified in the request is not found, Amazon
- * S3 returns the result as deleted.</p> <p> The action supports two modes for the
- * response: verbose and quiet. By default, the action uses verbose mode in which
- * the response includes the result of deletion of each key in your request. In
- * quiet mode the response includes only keys where the delete action encountered
- * an error. For a successful deletion, the action does not return any information
- * about the delete in the response body.</p> <p>When performing this action on an
- * MFA Delete enabled bucket, that attempts to delete any versioned objects, you
- * must include an MFA token. If you do not provide one, the entire request will
- * fail, even if there are non-versioned objects you are trying to delete. If you
- * provide an invalid token, whether there are versioned keys in the request or
- * not, the entire Multi-Object Delete request will fail. For information about MFA
- * Delete, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete">
- * MFA Delete</a>.</p> <p>Finally, the Content-MD5 header is required for all
- * Multi-Object Delete requests. Amazon S3 uses the header value to ensure that
- * your request body has not been altered in transit.</p> <p>The following
- * operations are related to <code>DeleteObjects</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjects">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeleteObjectsAsync(const Model::DeleteObjectsRequest& request, const DeleteObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Removes the <code>PublicAccessBlock</code> configuration for an Amazon S3
- * bucket. To use this operation, you must have the
- * <code>s3:PutBucketPublicAccessBlock</code> permission. For more information
- * about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following
- * operations are related to <code>DeletePublicAccessBlock</code>:</p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
- * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock">AWS
- * API Reference</a></p>
- */
- virtual Model::DeletePublicAccessBlockOutcome DeletePublicAccessBlock(const Model::DeletePublicAccessBlockRequest& request) const;
- /**
- * <p>Removes the <code>PublicAccessBlock</code> configuration for an Amazon S3
- * bucket. To use this operation, you must have the
- * <code>s3:PutBucketPublicAccessBlock</code> permission. For more information
- * about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following
- * operations are related to <code>DeletePublicAccessBlock</code>:</p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
- * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::DeletePublicAccessBlockOutcomeCallable DeletePublicAccessBlockCallable(const Model::DeletePublicAccessBlockRequest& request) const;
- /**
- * <p>Removes the <code>PublicAccessBlock</code> configuration for an Amazon S3
- * bucket. To use this operation, you must have the
- * <code>s3:PutBucketPublicAccessBlock</code> permission. For more information
- * about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following
- * operations are related to <code>DeletePublicAccessBlock</code>:</p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
- * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void DeletePublicAccessBlockAsync(const Model::DeletePublicAccessBlockRequest& request, const DeletePublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>This implementation of the GET action uses the <code>accelerate</code>
- * subresource to return the Transfer Acceleration state of a bucket, which is
- * either <code>Enabled</code> or <code>Suspended</code>. Amazon S3 Transfer
- * Acceleration is a bucket-level feature that enables you to perform faster data
- * transfers to and from Amazon S3.</p> <p>To use this operation, you must have
- * permission to perform the <code>s3:GetAccelerateConfiguration</code> action. The
- * bucket owner has this permission by default. The bucket owner can grant this
- * permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p>You set the Transfer Acceleration state of an existing bucket
- * to <code>Enabled</code> or <code>Suspended</code> by using the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a>
- * operation. </p> <p>A GET <code>accelerate</code> request does not return a state
- * value for a bucket that has no transfer acceleration state. A bucket has no
- * Transfer Acceleration state if a state has never been set on the bucket. </p>
- * <p>For more information about transfer acceleration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
- * Acceleration</a> in the Amazon S3 User Guide.</p> <p class="title"> <b>Related
- * Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAccelerateConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketAccelerateConfigurationOutcome GetBucketAccelerateConfiguration(const Model::GetBucketAccelerateConfigurationRequest& request) const;
- /**
- * <p>This implementation of the GET action uses the <code>accelerate</code>
- * subresource to return the Transfer Acceleration state of a bucket, which is
- * either <code>Enabled</code> or <code>Suspended</code>. Amazon S3 Transfer
- * Acceleration is a bucket-level feature that enables you to perform faster data
- * transfers to and from Amazon S3.</p> <p>To use this operation, you must have
- * permission to perform the <code>s3:GetAccelerateConfiguration</code> action. The
- * bucket owner has this permission by default. The bucket owner can grant this
- * permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p>You set the Transfer Acceleration state of an existing bucket
- * to <code>Enabled</code> or <code>Suspended</code> by using the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a>
- * operation. </p> <p>A GET <code>accelerate</code> request does not return a state
- * value for a bucket that has no transfer acceleration state. A bucket has no
- * Transfer Acceleration state if a state has never been set on the bucket. </p>
- * <p>For more information about transfer acceleration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
- * Acceleration</a> in the Amazon S3 User Guide.</p> <p class="title"> <b>Related
- * Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAccelerateConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketAccelerateConfigurationOutcomeCallable GetBucketAccelerateConfigurationCallable(const Model::GetBucketAccelerateConfigurationRequest& request) const;
- /**
- * <p>This implementation of the GET action uses the <code>accelerate</code>
- * subresource to return the Transfer Acceleration state of a bucket, which is
- * either <code>Enabled</code> or <code>Suspended</code>. Amazon S3 Transfer
- * Acceleration is a bucket-level feature that enables you to perform faster data
- * transfers to and from Amazon S3.</p> <p>To use this operation, you must have
- * permission to perform the <code>s3:GetAccelerateConfiguration</code> action. The
- * bucket owner has this permission by default. The bucket owner can grant this
- * permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p>You set the Transfer Acceleration state of an existing bucket
- * to <code>Enabled</code> or <code>Suspended</code> by using the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a>
- * operation. </p> <p>A GET <code>accelerate</code> request does not return a state
- * value for a bucket that has no transfer acceleration state. A bucket has no
- * Transfer Acceleration state if a state has never been set on the bucket. </p>
- * <p>For more information about transfer acceleration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
- * Acceleration</a> in the Amazon S3 User Guide.</p> <p class="title"> <b>Related
- * Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAccelerateConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketAccelerateConfigurationAsync(const Model::GetBucketAccelerateConfigurationRequest& request, const GetBucketAccelerateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>This implementation of the <code>GET</code> action uses the <code>acl</code>
- * subresource to return the access control list (ACL) of a bucket. To use
- * <code>GET</code> to return the ACL of the bucket, you must have
- * <code>READ_ACP</code> access to the bucket. If <code>READ_ACP</code> permission
- * is granted to the anonymous user, you can return the ACL of the bucket without
- * using an authorization header.</p> <p class="title"> <b>Related Resources</b>
- * </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAcl">AWS API
- * Reference</a></p>
- */
- virtual Model::GetBucketAclOutcome GetBucketAcl(const Model::GetBucketAclRequest& request) const;
- /**
- * <p>This implementation of the <code>GET</code> action uses the <code>acl</code>
- * subresource to return the access control list (ACL) of a bucket. To use
- * <code>GET</code> to return the ACL of the bucket, you must have
- * <code>READ_ACP</code> access to the bucket. If <code>READ_ACP</code> permission
- * is granted to the anonymous user, you can return the ACL of the bucket without
- * using an authorization header.</p> <p class="title"> <b>Related Resources</b>
- * </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAcl">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketAclOutcomeCallable GetBucketAclCallable(const Model::GetBucketAclRequest& request) const;
- /**
- * <p>This implementation of the <code>GET</code> action uses the <code>acl</code>
- * subresource to return the access control list (ACL) of a bucket. To use
- * <code>GET</code> to return the ACL of the bucket, you must have
- * <code>READ_ACP</code> access to the bucket. If <code>READ_ACP</code> permission
- * is granted to the anonymous user, you can return the ACL of the bucket without
- * using an authorization header.</p> <p class="title"> <b>Related Resources</b>
- * </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAcl">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketAclAsync(const Model::GetBucketAclRequest& request, const GetBucketAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>This implementation of the GET action returns an analytics configuration
- * (identified by the analytics configuration ID) from the bucket.</p> <p>To use
- * this operation, you must have permissions to perform the
- * <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">
- * Permissions Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User
- * Guide</i>. </p> <p>For information about Amazon S3 analytics feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
- * S3 Analytics – Storage Class Analysis</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAnalyticsConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketAnalyticsConfigurationOutcome GetBucketAnalyticsConfiguration(const Model::GetBucketAnalyticsConfigurationRequest& request) const;
- /**
- * <p>This implementation of the GET action returns an analytics configuration
- * (identified by the analytics configuration ID) from the bucket.</p> <p>To use
- * this operation, you must have permissions to perform the
- * <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">
- * Permissions Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User
- * Guide</i>. </p> <p>For information about Amazon S3 analytics feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
- * S3 Analytics – Storage Class Analysis</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAnalyticsConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketAnalyticsConfigurationOutcomeCallable GetBucketAnalyticsConfigurationCallable(const Model::GetBucketAnalyticsConfigurationRequest& request) const;
- /**
- * <p>This implementation of the GET action returns an analytics configuration
- * (identified by the analytics configuration ID) from the bucket.</p> <p>To use
- * this operation, you must have permissions to perform the
- * <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">
- * Permissions Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User
- * Guide</i>. </p> <p>For information about Amazon S3 analytics feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
- * S3 Analytics – Storage Class Analysis</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAnalyticsConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketAnalyticsConfigurationAsync(const Model::GetBucketAnalyticsConfigurationRequest& request, const GetBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns the cors configuration information set for the bucket.</p> <p> To use
- * this operation, you must have permission to perform the s3:GetBucketCORS action.
- * By default, the bucket owner has this permission and can grant it to others.</p>
- * <p> For more information about cors, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html"> Enabling
- * Cross-Origin Resource Sharing</a>.</p> <p>The following operations are related
- * to <code>GetBucketCors</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketCors">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketCorsOutcome GetBucketCors(const Model::GetBucketCorsRequest& request) const;
- /**
- * <p>Returns the cors configuration information set for the bucket.</p> <p> To use
- * this operation, you must have permission to perform the s3:GetBucketCORS action.
- * By default, the bucket owner has this permission and can grant it to others.</p>
- * <p> For more information about cors, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html"> Enabling
- * Cross-Origin Resource Sharing</a>.</p> <p>The following operations are related
- * to <code>GetBucketCors</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketCors">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketCorsOutcomeCallable GetBucketCorsCallable(const Model::GetBucketCorsRequest& request) const;
- /**
- * <p>Returns the cors configuration information set for the bucket.</p> <p> To use
- * this operation, you must have permission to perform the s3:GetBucketCORS action.
- * By default, the bucket owner has this permission and can grant it to others.</p>
- * <p> For more information about cors, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html"> Enabling
- * Cross-Origin Resource Sharing</a>.</p> <p>The following operations are related
- * to <code>GetBucketCors</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html">PutBucketCors</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketCors">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketCorsAsync(const Model::GetBucketCorsRequest& request, const GetBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns the default encryption configuration for an Amazon S3 bucket. If the
- * bucket does not have a default encryption configuration, GetBucketEncryption
- * returns <code>ServerSideEncryptionConfigurationNotFoundError</code>. </p> <p>For
- * information about the Amazon S3 default encryption feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
- * S3 Default Bucket Encryption</a>.</p> <p> To use this operation, you must have
- * permission to perform the <code>s3:GetEncryptionConfiguration</code> action. The
- * bucket owner has this permission by default. The bucket owner can grant this
- * permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following
- * operations are related to <code>GetBucketEncryption</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryption">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketEncryptionOutcome GetBucketEncryption(const Model::GetBucketEncryptionRequest& request) const;
- /**
- * <p>Returns the default encryption configuration for an Amazon S3 bucket. If the
- * bucket does not have a default encryption configuration, GetBucketEncryption
- * returns <code>ServerSideEncryptionConfigurationNotFoundError</code>. </p> <p>For
- * information about the Amazon S3 default encryption feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
- * S3 Default Bucket Encryption</a>.</p> <p> To use this operation, you must have
- * permission to perform the <code>s3:GetEncryptionConfiguration</code> action. The
- * bucket owner has this permission by default. The bucket owner can grant this
- * permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following
- * operations are related to <code>GetBucketEncryption</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryption">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketEncryptionOutcomeCallable GetBucketEncryptionCallable(const Model::GetBucketEncryptionRequest& request) const;
- /**
- * <p>Returns the default encryption configuration for an Amazon S3 bucket. If the
- * bucket does not have a default encryption configuration, GetBucketEncryption
- * returns <code>ServerSideEncryptionConfigurationNotFoundError</code>. </p> <p>For
- * information about the Amazon S3 default encryption feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
- * S3 Default Bucket Encryption</a>.</p> <p> To use this operation, you must have
- * permission to perform the <code>s3:GetEncryptionConfiguration</code> action. The
- * bucket owner has this permission by default. The bucket owner can grant this
- * permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following
- * operations are related to <code>GetBucketEncryption</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html">PutBucketEncryption</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryption">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketEncryptionAsync(const Model::GetBucketEncryptionRequest& request, const GetBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Gets the S3 Intelligent-Tiering configuration from the specified bucket.</p>
- * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage
- * costs by automatically moving data to the most cost-effective storage access
- * tier, without additional operational overhead. S3 Intelligent-Tiering delivers
- * automatic cost savings by moving data between access tiers, when access patterns
- * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
- * larger than 128 KB that you plan to store for at least 30 days. If the size of
- * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
- * objects can be stored, but they are always charged at the frequent access tier
- * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
- * object before the end of the 30-day minimum storage duration period, you are
- * charged for 30 days. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
- * class for automatically optimizing frequently and infrequently accessed
- * objects</a>.</p> <p>Operations related to
- * <code>GetBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketIntelligentTieringConfigurationOutcome GetBucketIntelligentTieringConfiguration(const Model::GetBucketIntelligentTieringConfigurationRequest& request) const;
- /**
- * <p>Gets the S3 Intelligent-Tiering configuration from the specified bucket.</p>
- * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage
- * costs by automatically moving data to the most cost-effective storage access
- * tier, without additional operational overhead. S3 Intelligent-Tiering delivers
- * automatic cost savings by moving data between access tiers, when access patterns
- * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
- * larger than 128 KB that you plan to store for at least 30 days. If the size of
- * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
- * objects can be stored, but they are always charged at the frequent access tier
- * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
- * object before the end of the 30-day minimum storage duration period, you are
- * charged for 30 days. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
- * class for automatically optimizing frequently and infrequently accessed
- * objects</a>.</p> <p>Operations related to
- * <code>GetBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketIntelligentTieringConfigurationOutcomeCallable GetBucketIntelligentTieringConfigurationCallable(const Model::GetBucketIntelligentTieringConfigurationRequest& request) const;
- /**
- * <p>Gets the S3 Intelligent-Tiering configuration from the specified bucket.</p>
- * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage
- * costs by automatically moving data to the most cost-effective storage access
- * tier, without additional operational overhead. S3 Intelligent-Tiering delivers
- * automatic cost savings by moving data between access tiers, when access patterns
- * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
- * larger than 128 KB that you plan to store for at least 30 days. If the size of
- * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
- * objects can be stored, but they are always charged at the frequent access tier
- * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
- * object before the end of the 30-day minimum storage duration period, you are
- * charged for 30 days. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
- * class for automatically optimizing frequently and infrequently accessed
- * objects</a>.</p> <p>Operations related to
- * <code>GetBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketIntelligentTieringConfigurationAsync(const Model::GetBucketIntelligentTieringConfigurationRequest& request, const GetBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns an inventory configuration (identified by the inventory configuration
- * ID) from the bucket.</p> <p>To use this operation, you must have permissions to
- * perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner
- * has this permission by default and can grant this permission to others. For more
- * information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * the Amazon S3 inventory feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
- * S3 Inventory</a>.</p> <p>The following operations are related to
- * <code>GetBucketInventoryConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketInventoryConfigurationOutcome GetBucketInventoryConfiguration(const Model::GetBucketInventoryConfigurationRequest& request) const;
- /**
- * <p>Returns an inventory configuration (identified by the inventory configuration
- * ID) from the bucket.</p> <p>To use this operation, you must have permissions to
- * perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner
- * has this permission by default and can grant this permission to others. For more
- * information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * the Amazon S3 inventory feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
- * S3 Inventory</a>.</p> <p>The following operations are related to
- * <code>GetBucketInventoryConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketInventoryConfigurationOutcomeCallable GetBucketInventoryConfigurationCallable(const Model::GetBucketInventoryConfigurationRequest& request) const;
- /**
- * <p>Returns an inventory configuration (identified by the inventory configuration
- * ID) from the bucket.</p> <p>To use this operation, you must have permissions to
- * perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner
- * has this permission by default and can grant this permission to others. For more
- * information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * the Amazon S3 inventory feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
- * S3 Inventory</a>.</p> <p>The following operations are related to
- * <code>GetBucketInventoryConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketInventoryConfigurationAsync(const Model::GetBucketInventoryConfigurationRequest& request, const GetBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Bucket lifecycle configuration now supports specifying a lifecycle
- * rule using an object key name prefix, one or more object tags, or a combination
- * of both. Accordingly, this section describes the latest API. The response
- * describes the new filter element that you can use to specify a filter to select
- * a subset of objects to which the rule applies. If you are using a previous
- * version of the lifecycle configuration, it still works. For the earlier action,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>.</p>
- * <p>Returns the lifecycle configuration information set on the bucket.
- * For information about lifecycle configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
- * Lifecycle Management</a>.</p> <p>To use this operation, you must have permission
- * to perform the <code>s3:GetLifecycleConfiguration</code> action. The bucket
- * owner has this permission, by default. The bucket owner can grant this
- * permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>
- * <code>GetBucketLifecycleConfiguration</code> has the following special
- * error:</p> <ul> <li> <p>Error code: <code>NoSuchLifecycleConfiguration</code>
- * </p> <ul> <li> <p>Description: The lifecycle configuration does not exist.</p>
- * </li> <li> <p>HTTP Status Code: 404 Not Found</p> </li> <li> <p>SOAP Fault Code
- * Prefix: Client</p> </li> </ul> </li> </ul> <p>The following operations are
- * related to <code>GetBucketLifecycleConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketLifecycleConfigurationOutcome GetBucketLifecycleConfiguration(const Model::GetBucketLifecycleConfigurationRequest& request) const;
- /**
- * <p>Bucket lifecycle configuration now supports specifying a lifecycle
- * rule using an object key name prefix, one or more object tags, or a combination
- * of both. Accordingly, this section describes the latest API. The response
- * describes the new filter element that you can use to specify a filter to select
- * a subset of objects to which the rule applies. If you are using a previous
- * version of the lifecycle configuration, it still works. For the earlier action,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>.</p>
- * <p>Returns the lifecycle configuration information set on the bucket.
- * For information about lifecycle configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
- * Lifecycle Management</a>.</p> <p>To use this operation, you must have permission
- * to perform the <code>s3:GetLifecycleConfiguration</code> action. The bucket
- * owner has this permission, by default. The bucket owner can grant this
- * permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>
- * <code>GetBucketLifecycleConfiguration</code> has the following special
- * error:</p> <ul> <li> <p>Error code: <code>NoSuchLifecycleConfiguration</code>
- * </p> <ul> <li> <p>Description: The lifecycle configuration does not exist.</p>
- * </li> <li> <p>HTTP Status Code: 404 Not Found</p> </li> <li> <p>SOAP Fault Code
- * Prefix: Client</p> </li> </ul> </li> </ul> <p>The following operations are
- * related to <code>GetBucketLifecycleConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketLifecycleConfigurationOutcomeCallable GetBucketLifecycleConfigurationCallable(const Model::GetBucketLifecycleConfigurationRequest& request) const;
- /**
- * <p>Bucket lifecycle configuration now supports specifying a lifecycle
- * rule using an object key name prefix, one or more object tags, or a combination
- * of both. Accordingly, this section describes the latest API. The response
- * describes the new filter element that you can use to specify a filter to select
- * a subset of objects to which the rule applies. If you are using a previous
- * version of the lifecycle configuration, it still works. For the earlier action,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>.</p>
- * <p>Returns the lifecycle configuration information set on the bucket.
- * For information about lifecycle configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
- * Lifecycle Management</a>.</p> <p>To use this operation, you must have permission
- * to perform the <code>s3:GetLifecycleConfiguration</code> action. The bucket
- * owner has this permission, by default. The bucket owner can grant this
- * permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>
- * <code>GetBucketLifecycleConfiguration</code> has the following special
- * error:</p> <ul> <li> <p>Error code: <code>NoSuchLifecycleConfiguration</code>
- * </p> <ul> <li> <p>Description: The lifecycle configuration does not exist.</p>
- * </li> <li> <p>HTTP Status Code: 404 Not Found</p> </li> <li> <p>SOAP Fault Code
- * Prefix: Client</p> </li> </ul> </li> </ul> <p>The following operations are
- * related to <code>GetBucketLifecycleConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html">GetBucketLifecycle</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketLifecycleConfigurationAsync(const Model::GetBucketLifecycleConfigurationRequest& request, const GetBucketLifecycleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns the Region the bucket resides in. You set the bucket's Region using
- * the <code>LocationConstraint</code> request parameter in a
- * <code>CreateBucket</code> request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>.</p>
- * <p> To use this implementation of the operation, you must be the bucket
- * owner.</p> <p>The following operations are related to
- * <code>GetBucketLocation</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLocation">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketLocationOutcome GetBucketLocation(const Model::GetBucketLocationRequest& request) const;
- /**
- * <p>Returns the Region the bucket resides in. You set the bucket's Region using
- * the <code>LocationConstraint</code> request parameter in a
- * <code>CreateBucket</code> request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>.</p>
- * <p> To use this implementation of the operation, you must be the bucket
- * owner.</p> <p>The following operations are related to
- * <code>GetBucketLocation</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLocation">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketLocationOutcomeCallable GetBucketLocationCallable(const Model::GetBucketLocationRequest& request) const;
- /**
- * <p>Returns the Region the bucket resides in. You set the bucket's Region using
- * the <code>LocationConstraint</code> request parameter in a
- * <code>CreateBucket</code> request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>.</p>
- * <p> To use this implementation of the operation, you must be the bucket
- * owner.</p> <p>The following operations are related to
- * <code>GetBucketLocation</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLocation">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketLocationAsync(const Model::GetBucketLocationRequest& request, const GetBucketLocationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns the logging status of a bucket and the permissions users have to view
- * and modify that status. To use GET, you must be the bucket owner.</p> <p>The
- * following operations are related to <code>GetBucketLogging</code>:</p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html">PutBucketLogging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLogging">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketLoggingOutcome GetBucketLogging(const Model::GetBucketLoggingRequest& request) const;
- /**
- * <p>Returns the logging status of a bucket and the permissions users have to view
- * and modify that status. To use GET, you must be the bucket owner.</p> <p>The
- * following operations are related to <code>GetBucketLogging</code>:</p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html">PutBucketLogging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLogging">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketLoggingOutcomeCallable GetBucketLoggingCallable(const Model::GetBucketLoggingRequest& request) const;
- /**
- * <p>Returns the logging status of a bucket and the permissions users have to view
- * and modify that status. To use GET, you must be the bucket owner.</p> <p>The
- * following operations are related to <code>GetBucketLogging</code>:</p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html">PutBucketLogging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLogging">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketLoggingAsync(const Model::GetBucketLoggingRequest& request, const GetBucketLoggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Gets a metrics configuration (specified by the metrics configuration ID) from
- * the bucket. Note that this doesn't include the daily storage metrics.</p> <p> To
- * use this operation, you must have permissions to perform the
- * <code>s3:GetMetricsConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> For information
- * about CloudWatch request metrics for Amazon S3, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
- * to <code>GetBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetricsConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketMetricsConfigurationOutcome GetBucketMetricsConfiguration(const Model::GetBucketMetricsConfigurationRequest& request) const;
- /**
- * <p>Gets a metrics configuration (specified by the metrics configuration ID) from
- * the bucket. Note that this doesn't include the daily storage metrics.</p> <p> To
- * use this operation, you must have permissions to perform the
- * <code>s3:GetMetricsConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> For information
- * about CloudWatch request metrics for Amazon S3, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
- * to <code>GetBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetricsConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketMetricsConfigurationOutcomeCallable GetBucketMetricsConfigurationCallable(const Model::GetBucketMetricsConfigurationRequest& request) const;
- /**
- * <p>Gets a metrics configuration (specified by the metrics configuration ID) from
- * the bucket. Note that this doesn't include the daily storage metrics.</p> <p> To
- * use this operation, you must have permissions to perform the
- * <code>s3:GetMetricsConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> For information
- * about CloudWatch request metrics for Amazon S3, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
- * to <code>GetBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetricsConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketMetricsConfigurationAsync(const Model::GetBucketMetricsConfigurationRequest& request, const GetBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns the notification configuration of a bucket.</p> <p>If notifications
- * are not enabled on the bucket, the action returns an empty
- * <code>NotificationConfiguration</code> element.</p> <p>By default, you must be
- * the bucket owner to read the notification configuration of a bucket. However,
- * the bucket owner can use a bucket policy to grant permission to other users to
- * read this configuration with the <code>s3:GetBucketNotification</code>
- * permission.</p> <p>For more information about setting and reading the
- * notification configuration on a bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Setting
- * Up Notification of Bucket Events</a>. For more information about bucket
- * policies, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies</a>.</p> <p>The following action is related to
- * <code>GetBucketNotification</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html">PutBucketNotification</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotificationConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketNotificationConfigurationOutcome GetBucketNotificationConfiguration(const Model::GetBucketNotificationConfigurationRequest& request) const;
- /**
- * <p>Returns the notification configuration of a bucket.</p> <p>If notifications
- * are not enabled on the bucket, the action returns an empty
- * <code>NotificationConfiguration</code> element.</p> <p>By default, you must be
- * the bucket owner to read the notification configuration of a bucket. However,
- * the bucket owner can use a bucket policy to grant permission to other users to
- * read this configuration with the <code>s3:GetBucketNotification</code>
- * permission.</p> <p>For more information about setting and reading the
- * notification configuration on a bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Setting
- * Up Notification of Bucket Events</a>. For more information about bucket
- * policies, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies</a>.</p> <p>The following action is related to
- * <code>GetBucketNotification</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html">PutBucketNotification</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotificationConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketNotificationConfigurationOutcomeCallable GetBucketNotificationConfigurationCallable(const Model::GetBucketNotificationConfigurationRequest& request) const;
- /**
- * <p>Returns the notification configuration of a bucket.</p> <p>If notifications
- * are not enabled on the bucket, the action returns an empty
- * <code>NotificationConfiguration</code> element.</p> <p>By default, you must be
- * the bucket owner to read the notification configuration of a bucket. However,
- * the bucket owner can use a bucket policy to grant permission to other users to
- * read this configuration with the <code>s3:GetBucketNotification</code>
- * permission.</p> <p>For more information about setting and reading the
- * notification configuration on a bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Setting
- * Up Notification of Bucket Events</a>. For more information about bucket
- * policies, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies</a>.</p> <p>The following action is related to
- * <code>GetBucketNotification</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html">PutBucketNotification</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotificationConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketNotificationConfigurationAsync(const Model::GetBucketNotificationConfigurationRequest& request, const GetBucketNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Retrieves <code>OwnershipControls</code> for an Amazon S3 bucket. To use this
- * operation, you must have the <code>s3:GetBucketOwnershipControls</code>
- * permission. For more information about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>. </p> <p>For information about Amazon S3 Object
- * Ownership, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
- * Object Ownership</a>. </p> <p>The following operations are related to
- * <code>GetBucketOwnershipControls</code>:</p> <ul> <li> <p>
- * <a>PutBucketOwnershipControls</a> </p> </li> <li> <p>
- * <a>DeleteBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControls">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketOwnershipControlsOutcome GetBucketOwnershipControls(const Model::GetBucketOwnershipControlsRequest& request) const;
- /**
- * <p>Retrieves <code>OwnershipControls</code> for an Amazon S3 bucket. To use this
- * operation, you must have the <code>s3:GetBucketOwnershipControls</code>
- * permission. For more information about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>. </p> <p>For information about Amazon S3 Object
- * Ownership, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
- * Object Ownership</a>. </p> <p>The following operations are related to
- * <code>GetBucketOwnershipControls</code>:</p> <ul> <li> <p>
- * <a>PutBucketOwnershipControls</a> </p> </li> <li> <p>
- * <a>DeleteBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControls">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketOwnershipControlsOutcomeCallable GetBucketOwnershipControlsCallable(const Model::GetBucketOwnershipControlsRequest& request) const;
- /**
- * <p>Retrieves <code>OwnershipControls</code> for an Amazon S3 bucket. To use this
- * operation, you must have the <code>s3:GetBucketOwnershipControls</code>
- * permission. For more information about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>. </p> <p>For information about Amazon S3 Object
- * Ownership, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
- * Object Ownership</a>. </p> <p>The following operations are related to
- * <code>GetBucketOwnershipControls</code>:</p> <ul> <li> <p>
- * <a>PutBucketOwnershipControls</a> </p> </li> <li> <p>
- * <a>DeleteBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControls">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketOwnershipControlsAsync(const Model::GetBucketOwnershipControlsRequest& request, const GetBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns the policy of a specified bucket. If you are using an identity other
- * than the root user of the AWS account that owns the bucket, the calling identity
- * must have the <code>GetBucketPolicy</code> permissions on the specified bucket
- * and belong to the bucket owner's account in order to use this operation.</p>
- * <p>If you don't have <code>GetBucketPolicy</code> permissions, Amazon S3 returns
- * a <code>403 Access Denied</code> error. If you have the correct permissions, but
- * you're not using an identity that belongs to the bucket owner's account, Amazon
- * S3 returns a <code>405 Method Not Allowed</code> error.</p> <p>As a
- * security precaution, the root user of the AWS account that owns a bucket can
- * always use this operation, even if the policy explicitly denies the root user
- * the ability to perform this action.</p> <p>For more information
- * about bucket policies, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies and User Policies</a>.</p> <p>The following action is related to
- * <code>GetBucketPolicy</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicy">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketPolicyOutcome GetBucketPolicy(const Model::GetBucketPolicyRequest& request) const;
- /**
- * <p>Returns the policy of a specified bucket. If you are using an identity other
- * than the root user of the AWS account that owns the bucket, the calling identity
- * must have the <code>GetBucketPolicy</code> permissions on the specified bucket
- * and belong to the bucket owner's account in order to use this operation.</p>
- * <p>If you don't have <code>GetBucketPolicy</code> permissions, Amazon S3 returns
- * a <code>403 Access Denied</code> error. If you have the correct permissions, but
- * you're not using an identity that belongs to the bucket owner's account, Amazon
- * S3 returns a <code>405 Method Not Allowed</code> error.</p> <p>As a
- * security precaution, the root user of the AWS account that owns a bucket can
- * always use this operation, even if the policy explicitly denies the root user
- * the ability to perform this action.</p> <p>For more information
- * about bucket policies, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies and User Policies</a>.</p> <p>The following action is related to
- * <code>GetBucketPolicy</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicy">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketPolicyOutcomeCallable GetBucketPolicyCallable(const Model::GetBucketPolicyRequest& request) const;
- /**
- * <p>Returns the policy of a specified bucket. If you are using an identity other
- * than the root user of the AWS account that owns the bucket, the calling identity
- * must have the <code>GetBucketPolicy</code> permissions on the specified bucket
- * and belong to the bucket owner's account in order to use this operation.</p>
- * <p>If you don't have <code>GetBucketPolicy</code> permissions, Amazon S3 returns
- * a <code>403 Access Denied</code> error. If you have the correct permissions, but
- * you're not using an identity that belongs to the bucket owner's account, Amazon
- * S3 returns a <code>405 Method Not Allowed</code> error.</p> <p>As a
- * security precaution, the root user of the AWS account that owns a bucket can
- * always use this operation, even if the policy explicitly denies the root user
- * the ability to perform this action.</p> <p>For more information
- * about bucket policies, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies and User Policies</a>.</p> <p>The following action is related to
- * <code>GetBucketPolicy</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicy">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketPolicyAsync(const Model::GetBucketPolicyRequest& request, const GetBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Retrieves the policy status for an Amazon S3 bucket, indicating whether the
- * bucket is public. In order to use this operation, you must have the
- * <code>s3:GetBucketPolicyStatus</code> permission. For more information about
- * Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>.</p> <p> For more information about when Amazon S3
- * considers a bucket public, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
- * Meaning of "Public"</a>. </p> <p>The following operations are related to
- * <code>GetBucketPolicyStatus</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
- * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketPolicyStatusOutcome GetBucketPolicyStatus(const Model::GetBucketPolicyStatusRequest& request) const;
- /**
- * <p>Retrieves the policy status for an Amazon S3 bucket, indicating whether the
- * bucket is public. In order to use this operation, you must have the
- * <code>s3:GetBucketPolicyStatus</code> permission. For more information about
- * Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>.</p> <p> For more information about when Amazon S3
- * considers a bucket public, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
- * Meaning of "Public"</a>. </p> <p>The following operations are related to
- * <code>GetBucketPolicyStatus</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
- * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketPolicyStatusOutcomeCallable GetBucketPolicyStatusCallable(const Model::GetBucketPolicyStatusRequest& request) const;
- /**
- * <p>Retrieves the policy status for an Amazon S3 bucket, indicating whether the
- * bucket is public. In order to use this operation, you must have the
- * <code>s3:GetBucketPolicyStatus</code> permission. For more information about
- * Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>.</p> <p> For more information about when Amazon S3
- * considers a bucket public, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
- * Meaning of "Public"</a>. </p> <p>The following operations are related to
- * <code>GetBucketPolicyStatus</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
- * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketPolicyStatusAsync(const Model::GetBucketPolicyStatusRequest& request, const GetBucketPolicyStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns the replication configuration of a bucket.</p> <p> It can take
- * a while to propagate the put or delete a replication configuration to all Amazon
- * S3 systems. Therefore, a get request soon after put or delete can return a wrong
- * result. </p> <p> For information about replication configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
- * in the <i>Amazon S3 User Guide</i>.</p> <p>This action requires permissions for
- * the <code>s3:GetReplicationConfiguration</code> action. For more information
- * about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies and User Policies</a>.</p> <p>If you include the
- * <code>Filter</code> element in a replication configuration, you must also
- * include the <code>DeleteMarkerReplication</code> and <code>Priority</code>
- * elements. The response also returns those elements.</p> <p>For information about
- * <code>GetBucketReplication</code> errors, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List
- * of replication-related error codes</a> </p> <p>The following operations are
- * related to <code>GetBucketReplication</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplication">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketReplicationOutcome GetBucketReplication(const Model::GetBucketReplicationRequest& request) const;
- /**
- * <p>Returns the replication configuration of a bucket.</p> <p> It can take
- * a while to propagate the put or delete a replication configuration to all Amazon
- * S3 systems. Therefore, a get request soon after put or delete can return a wrong
- * result. </p> <p> For information about replication configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
- * in the <i>Amazon S3 User Guide</i>.</p> <p>This action requires permissions for
- * the <code>s3:GetReplicationConfiguration</code> action. For more information
- * about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies and User Policies</a>.</p> <p>If you include the
- * <code>Filter</code> element in a replication configuration, you must also
- * include the <code>DeleteMarkerReplication</code> and <code>Priority</code>
- * elements. The response also returns those elements.</p> <p>For information about
- * <code>GetBucketReplication</code> errors, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List
- * of replication-related error codes</a> </p> <p>The following operations are
- * related to <code>GetBucketReplication</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplication">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketReplicationOutcomeCallable GetBucketReplicationCallable(const Model::GetBucketReplicationRequest& request) const;
- /**
- * <p>Returns the replication configuration of a bucket.</p> <p> It can take
- * a while to propagate the put or delete a replication configuration to all Amazon
- * S3 systems. Therefore, a get request soon after put or delete can return a wrong
- * result. </p> <p> For information about replication configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
- * in the <i>Amazon S3 User Guide</i>.</p> <p>This action requires permissions for
- * the <code>s3:GetReplicationConfiguration</code> action. For more information
- * about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies and User Policies</a>.</p> <p>If you include the
- * <code>Filter</code> element in a replication configuration, you must also
- * include the <code>DeleteMarkerReplication</code> and <code>Priority</code>
- * elements. The response also returns those elements.</p> <p>For information about
- * <code>GetBucketReplication</code> errors, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List
- * of replication-related error codes</a> </p> <p>The following operations are
- * related to <code>GetBucketReplication</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplication">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketReplicationAsync(const Model::GetBucketReplicationRequest& request, const GetBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns the request payment configuration of a bucket. To use this version of
- * the operation, you must be the bucket owner. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester
- * Pays Buckets</a>.</p> <p>The following operations are related to
- * <code>GetBucketRequestPayment</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketRequestPayment">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketRequestPaymentOutcome GetBucketRequestPayment(const Model::GetBucketRequestPaymentRequest& request) const;
- /**
- * <p>Returns the request payment configuration of a bucket. To use this version of
- * the operation, you must be the bucket owner. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester
- * Pays Buckets</a>.</p> <p>The following operations are related to
- * <code>GetBucketRequestPayment</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketRequestPayment">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketRequestPaymentOutcomeCallable GetBucketRequestPaymentCallable(const Model::GetBucketRequestPaymentRequest& request) const;
- /**
- * <p>Returns the request payment configuration of a bucket. To use this version of
- * the operation, you must be the bucket owner. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester
- * Pays Buckets</a>.</p> <p>The following operations are related to
- * <code>GetBucketRequestPayment</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketRequestPayment">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketRequestPaymentAsync(const Model::GetBucketRequestPaymentRequest& request, const GetBucketRequestPaymentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns the tag set associated with the bucket.</p> <p>To use this operation,
- * you must have permission to perform the <code>s3:GetBucketTagging</code> action.
- * By default, the bucket owner has this permission and can grant this permission
- * to others.</p> <p> <code>GetBucketTagging</code> has the following special
- * error:</p> <ul> <li> <p>Error code: <code>NoSuchTagSetError</code> </p> <ul>
- * <li> <p>Description: There is no tag set associated with the bucket.</p> </li>
- * </ul> </li> </ul> <p>The following operations are related to
- * <code>GetBucketTagging</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketTagging">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketTaggingOutcome GetBucketTagging(const Model::GetBucketTaggingRequest& request) const;
- /**
- * <p>Returns the tag set associated with the bucket.</p> <p>To use this operation,
- * you must have permission to perform the <code>s3:GetBucketTagging</code> action.
- * By default, the bucket owner has this permission and can grant this permission
- * to others.</p> <p> <code>GetBucketTagging</code> has the following special
- * error:</p> <ul> <li> <p>Error code: <code>NoSuchTagSetError</code> </p> <ul>
- * <li> <p>Description: There is no tag set associated with the bucket.</p> </li>
- * </ul> </li> </ul> <p>The following operations are related to
- * <code>GetBucketTagging</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketTagging">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketTaggingOutcomeCallable GetBucketTaggingCallable(const Model::GetBucketTaggingRequest& request) const;
- /**
- * <p>Returns the tag set associated with the bucket.</p> <p>To use this operation,
- * you must have permission to perform the <code>s3:GetBucketTagging</code> action.
- * By default, the bucket owner has this permission and can grant this permission
- * to others.</p> <p> <code>GetBucketTagging</code> has the following special
- * error:</p> <ul> <li> <p>Error code: <code>NoSuchTagSetError</code> </p> <ul>
- * <li> <p>Description: There is no tag set associated with the bucket.</p> </li>
- * </ul> </li> </ul> <p>The following operations are related to
- * <code>GetBucketTagging</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketTagging">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketTaggingAsync(const Model::GetBucketTaggingRequest& request, const GetBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns the versioning state of a bucket.</p> <p>To retrieve the versioning
- * state of a bucket, you must be the bucket owner.</p> <p>This implementation also
- * returns the MFA Delete status of the versioning state. If the MFA Delete status
- * is <code>enabled</code>, the bucket owner must use an authentication device to
- * change the versioning state of the bucket.</p> <p>The following operations are
- * related to <code>GetBucketVersioning</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketVersioning">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketVersioningOutcome GetBucketVersioning(const Model::GetBucketVersioningRequest& request) const;
- /**
- * <p>Returns the versioning state of a bucket.</p> <p>To retrieve the versioning
- * state of a bucket, you must be the bucket owner.</p> <p>This implementation also
- * returns the MFA Delete status of the versioning state. If the MFA Delete status
- * is <code>enabled</code>, the bucket owner must use an authentication device to
- * change the versioning state of the bucket.</p> <p>The following operations are
- * related to <code>GetBucketVersioning</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketVersioning">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketVersioningOutcomeCallable GetBucketVersioningCallable(const Model::GetBucketVersioningRequest& request) const;
- /**
- * <p>Returns the versioning state of a bucket.</p> <p>To retrieve the versioning
- * state of a bucket, you must be the bucket owner.</p> <p>This implementation also
- * returns the MFA Delete status of the versioning state. If the MFA Delete status
- * is <code>enabled</code>, the bucket owner must use an authentication device to
- * change the versioning state of the bucket.</p> <p>The following operations are
- * related to <code>GetBucketVersioning</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketVersioning">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketVersioningAsync(const Model::GetBucketVersioningRequest& request, const GetBucketVersioningResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns the website configuration for a bucket. To host website on Amazon S3,
- * you can configure a bucket as website by adding a website configuration. For
- * more information about hosting websites, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
- * Websites on Amazon S3</a>. </p> <p>This GET action requires the
- * <code>S3:GetBucketWebsite</code> permission. By default, only the bucket owner
- * can read the bucket website configuration. However, bucket owners can allow
- * other users to read the website configuration by writing a bucket policy
- * granting them the <code>S3:GetBucketWebsite</code> permission.</p> <p>The
- * following operations are related to <code>DeleteBucketWebsite</code>:</p> <ul>
- * <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html">DeleteBucketWebsite</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketWebsite">AWS
- * API Reference</a></p>
- */
- virtual Model::GetBucketWebsiteOutcome GetBucketWebsite(const Model::GetBucketWebsiteRequest& request) const;
- /**
- * <p>Returns the website configuration for a bucket. To host website on Amazon S3,
- * you can configure a bucket as website by adding a website configuration. For
- * more information about hosting websites, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
- * Websites on Amazon S3</a>. </p> <p>This GET action requires the
- * <code>S3:GetBucketWebsite</code> permission. By default, only the bucket owner
- * can read the bucket website configuration. However, bucket owners can allow
- * other users to read the website configuration by writing a bucket policy
- * granting them the <code>S3:GetBucketWebsite</code> permission.</p> <p>The
- * following operations are related to <code>DeleteBucketWebsite</code>:</p> <ul>
- * <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html">DeleteBucketWebsite</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketWebsite">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetBucketWebsiteOutcomeCallable GetBucketWebsiteCallable(const Model::GetBucketWebsiteRequest& request) const;
- /**
- * <p>Returns the website configuration for a bucket. To host website on Amazon S3,
- * you can configure a bucket as website by adding a website configuration. For
- * more information about hosting websites, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
- * Websites on Amazon S3</a>. </p> <p>This GET action requires the
- * <code>S3:GetBucketWebsite</code> permission. By default, only the bucket owner
- * can read the bucket website configuration. However, bucket owners can allow
- * other users to read the website configuration by writing a bucket policy
- * granting them the <code>S3:GetBucketWebsite</code> permission.</p> <p>The
- * following operations are related to <code>DeleteBucketWebsite</code>:</p> <ul>
- * <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html">DeleteBucketWebsite</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketWebsite">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetBucketWebsiteAsync(const Model::GetBucketWebsiteRequest& request, const GetBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Retrieves objects from Amazon S3. To use <code>GET</code>, you must have
- * <code>READ</code> access to the object. If you grant <code>READ</code> access to
- * the anonymous user, you can return the object without using an authorization
- * header.</p> <p>An Amazon S3 bucket has no directory hierarchy such as you would
- * find in a typical computer file system. You can, however, create a logical
- * hierarchy by using object key names that imply a folder structure. For example,
- * instead of naming an object <code>sample.jpg</code>, you can name it
- * <code>photos/2006/February/sample.jpg</code>.</p> <p>To get an object from such
- * a logical hierarchy, specify the full key name for the object in the
- * <code>GET</code> operation. For a virtual hosted-style request example, if you
- * have the object <code>photos/2006/February/sample.jpg</code>, specify the
- * resource as <code>/photos/2006/February/sample.jpg</code>. For a path-style
- * request example, if you have the object
- * <code>photos/2006/February/sample.jpg</code> in the bucket named
- * <code>examplebucket</code>, specify the resource as
- * <code>/examplebucket/photos/2006/February/sample.jpg</code>. For more
- * information about request types, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket">HTTP
- * Host Header Bucket Specification</a>.</p> <p>To distribute large files to many
- * people, you can save bandwidth costs by using BitTorrent. For more information,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Amazon S3
- * Torrent</a>. For more information about returning the ACL of an object, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>.</p>
- * <p>If the object you are retrieving is stored in the S3 Glacier or S3 Glacier
- * Deep Archive storage class, or S3 Intelligent-Tiering Archive or S3
- * Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you
- * must first restore a copy using <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>.
- * Otherwise, this action returns an <code>InvalidObjectStateError</code> error.
- * For information about restoring archived objects, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring
- * Archived Objects</a>.</p> <p>Encryption request headers, like
- * <code>x-amz-server-side-encryption</code>, should not be sent for GET requests
- * if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS)
- * or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If
- * your object does use these types of keys, you’ll get an HTTP 400 BadRequest
- * error.</p> <p>If you encrypt an object by using server-side encryption with
- * customer-provided encryption keys (SSE-C) when you store the object in Amazon
- * S3, then when you GET the object, you must use the following headers:</p> <ul>
- * <li> <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
- * information about SSE-C, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
- * Encryption (Using Customer-Provided Encryption Keys)</a>.</p> <p>Assuming you
- * have permission to read object tags (permission for the
- * <code>s3:GetObjectVersionTagging</code> action), the response also returns the
- * <code>x-amz-tagging-count</code> header that provides the count of number of
- * tags associated with the object. You can use <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
- * to retrieve the tag set associated with an object.</p> <p> <b>Permissions</b>
- * </p> <p>You need the <code>s3:GetObject</code> permission for this operation.
- * For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>. If the object you request does not exist, the error
- * Amazon S3 returns depends on whether you also have the
- * <code>s3:ListBucket</code> permission.</p> <ul> <li> <p>If you have the
- * <code>s3:ListBucket</code> permission on the bucket, Amazon S3 will return an
- * HTTP status code 404 ("no such key") error.</p> </li> <li> <p>If you don’t have
- * the <code>s3:ListBucket</code> permission, Amazon S3 will return an HTTP status
- * code 403 ("access denied") error.</p> </li> </ul> <p> <b>Versioning</b> </p>
- * <p>By default, the GET action returns the current version of an object. To
- * return a different version, use the <code>versionId</code> subresource.</p>
- * <p>If the current version of the object is a delete marker, Amazon S3
- * behaves as if the object was deleted and includes <code>x-amz-delete-marker:
- * true</code> in the response.</p> <p>For more information about
- * versioning, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html">PutBucketVersioning</a>.
- * </p> <p> <b>Overriding Response Header Values</b> </p> <p>There are times when
- * you want to override certain response header values in a GET response. For
- * example, you might override the Content-Disposition response header value in
- * your GET request.</p> <p>You can override values for a set of response headers
- * using the following query parameters. These response header values are sent only
- * on a successful request, that is, when status code 200 OK is returned. The set
- * of headers you can override using these parameters is a subset of the headers
- * that Amazon S3 accepts when you create an object. The response headers that you
- * can override for the GET response are <code>Content-Type</code>,
- * <code>Content-Language</code>, <code>Expires</code>, <code>Cache-Control</code>,
- * <code>Content-Disposition</code>, and <code>Content-Encoding</code>. To override
- * these header values in the GET response, you use the following request
- * parameters.</p> <p>You must sign the request, either using an
- * Authorization header or a presigned URL, when using these parameters. They
- * cannot be used with an unsigned (anonymous) request.</p> <ul> <li> <p>
- * <code>response-content-type</code> </p> </li> <li> <p>
- * <code>response-content-language</code> </p> </li> <li> <p>
- * <code>response-expires</code> </p> </li> <li> <p>
- * <code>response-cache-control</code> </p> </li> <li> <p>
- * <code>response-content-disposition</code> </p> </li> <li> <p>
- * <code>response-content-encoding</code> </p> </li> </ul> <p> <b>Additional
- * Considerations about Request Headers</b> </p> <p>If both of the
- * <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present
- * in the request as follows: <code>If-Match</code> condition evaluates to
- * <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to
- * <code>false</code>; then, S3 returns 200 OK and the data requested. </p> <p>If
- * both of the <code>If-None-Match</code> and <code>If-Modified-Since</code>
- * headers are present in the request as follows:<code> If-None-Match</code>
- * condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code>
- * condition evaluates to <code>true</code>; then, S3 returns 304 Not Modified
- * response code.</p> <p>For more information about conditional requests, see <a
- * href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p> <p>The following
- * operations are related to <code>GetObject</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject">AWS API
- * Reference</a></p>
- */
- virtual Model::GetObjectOutcome GetObject(const Model::GetObjectRequest& request) const;
- /**
- * <p>Retrieves objects from Amazon S3. To use <code>GET</code>, you must have
- * <code>READ</code> access to the object. If you grant <code>READ</code> access to
- * the anonymous user, you can return the object without using an authorization
- * header.</p> <p>An Amazon S3 bucket has no directory hierarchy such as you would
- * find in a typical computer file system. You can, however, create a logical
- * hierarchy by using object key names that imply a folder structure. For example,
- * instead of naming an object <code>sample.jpg</code>, you can name it
- * <code>photos/2006/February/sample.jpg</code>.</p> <p>To get an object from such
- * a logical hierarchy, specify the full key name for the object in the
- * <code>GET</code> operation. For a virtual hosted-style request example, if you
- * have the object <code>photos/2006/February/sample.jpg</code>, specify the
- * resource as <code>/photos/2006/February/sample.jpg</code>. For a path-style
- * request example, if you have the object
- * <code>photos/2006/February/sample.jpg</code> in the bucket named
- * <code>examplebucket</code>, specify the resource as
- * <code>/examplebucket/photos/2006/February/sample.jpg</code>. For more
- * information about request types, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket">HTTP
- * Host Header Bucket Specification</a>.</p> <p>To distribute large files to many
- * people, you can save bandwidth costs by using BitTorrent. For more information,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Amazon S3
- * Torrent</a>. For more information about returning the ACL of an object, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>.</p>
- * <p>If the object you are retrieving is stored in the S3 Glacier or S3 Glacier
- * Deep Archive storage class, or S3 Intelligent-Tiering Archive or S3
- * Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you
- * must first restore a copy using <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>.
- * Otherwise, this action returns an <code>InvalidObjectStateError</code> error.
- * For information about restoring archived objects, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring
- * Archived Objects</a>.</p> <p>Encryption request headers, like
- * <code>x-amz-server-side-encryption</code>, should not be sent for GET requests
- * if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS)
- * or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If
- * your object does use these types of keys, you’ll get an HTTP 400 BadRequest
- * error.</p> <p>If you encrypt an object by using server-side encryption with
- * customer-provided encryption keys (SSE-C) when you store the object in Amazon
- * S3, then when you GET the object, you must use the following headers:</p> <ul>
- * <li> <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
- * information about SSE-C, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
- * Encryption (Using Customer-Provided Encryption Keys)</a>.</p> <p>Assuming you
- * have permission to read object tags (permission for the
- * <code>s3:GetObjectVersionTagging</code> action), the response also returns the
- * <code>x-amz-tagging-count</code> header that provides the count of number of
- * tags associated with the object. You can use <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
- * to retrieve the tag set associated with an object.</p> <p> <b>Permissions</b>
- * </p> <p>You need the <code>s3:GetObject</code> permission for this operation.
- * For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>. If the object you request does not exist, the error
- * Amazon S3 returns depends on whether you also have the
- * <code>s3:ListBucket</code> permission.</p> <ul> <li> <p>If you have the
- * <code>s3:ListBucket</code> permission on the bucket, Amazon S3 will return an
- * HTTP status code 404 ("no such key") error.</p> </li> <li> <p>If you don’t have
- * the <code>s3:ListBucket</code> permission, Amazon S3 will return an HTTP status
- * code 403 ("access denied") error.</p> </li> </ul> <p> <b>Versioning</b> </p>
- * <p>By default, the GET action returns the current version of an object. To
- * return a different version, use the <code>versionId</code> subresource.</p>
- * <p>If the current version of the object is a delete marker, Amazon S3
- * behaves as if the object was deleted and includes <code>x-amz-delete-marker:
- * true</code> in the response.</p> <p>For more information about
- * versioning, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html">PutBucketVersioning</a>.
- * </p> <p> <b>Overriding Response Header Values</b> </p> <p>There are times when
- * you want to override certain response header values in a GET response. For
- * example, you might override the Content-Disposition response header value in
- * your GET request.</p> <p>You can override values for a set of response headers
- * using the following query parameters. These response header values are sent only
- * on a successful request, that is, when status code 200 OK is returned. The set
- * of headers you can override using these parameters is a subset of the headers
- * that Amazon S3 accepts when you create an object. The response headers that you
- * can override for the GET response are <code>Content-Type</code>,
- * <code>Content-Language</code>, <code>Expires</code>, <code>Cache-Control</code>,
- * <code>Content-Disposition</code>, and <code>Content-Encoding</code>. To override
- * these header values in the GET response, you use the following request
- * parameters.</p> <p>You must sign the request, either using an
- * Authorization header or a presigned URL, when using these parameters. They
- * cannot be used with an unsigned (anonymous) request.</p> <ul> <li> <p>
- * <code>response-content-type</code> </p> </li> <li> <p>
- * <code>response-content-language</code> </p> </li> <li> <p>
- * <code>response-expires</code> </p> </li> <li> <p>
- * <code>response-cache-control</code> </p> </li> <li> <p>
- * <code>response-content-disposition</code> </p> </li> <li> <p>
- * <code>response-content-encoding</code> </p> </li> </ul> <p> <b>Additional
- * Considerations about Request Headers</b> </p> <p>If both of the
- * <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present
- * in the request as follows: <code>If-Match</code> condition evaluates to
- * <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to
- * <code>false</code>; then, S3 returns 200 OK and the data requested. </p> <p>If
- * both of the <code>If-None-Match</code> and <code>If-Modified-Since</code>
- * headers are present in the request as follows:<code> If-None-Match</code>
- * condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code>
- * condition evaluates to <code>true</code>; then, S3 returns 304 Not Modified
- * response code.</p> <p>For more information about conditional requests, see <a
- * href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p> <p>The following
- * operations are related to <code>GetObject</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetObjectOutcomeCallable GetObjectCallable(const Model::GetObjectRequest& request) const;
- /**
- * <p>Retrieves objects from Amazon S3. To use <code>GET</code>, you must have
- * <code>READ</code> access to the object. If you grant <code>READ</code> access to
- * the anonymous user, you can return the object without using an authorization
- * header.</p> <p>An Amazon S3 bucket has no directory hierarchy such as you would
- * find in a typical computer file system. You can, however, create a logical
- * hierarchy by using object key names that imply a folder structure. For example,
- * instead of naming an object <code>sample.jpg</code>, you can name it
- * <code>photos/2006/February/sample.jpg</code>.</p> <p>To get an object from such
- * a logical hierarchy, specify the full key name for the object in the
- * <code>GET</code> operation. For a virtual hosted-style request example, if you
- * have the object <code>photos/2006/February/sample.jpg</code>, specify the
- * resource as <code>/photos/2006/February/sample.jpg</code>. For a path-style
- * request example, if you have the object
- * <code>photos/2006/February/sample.jpg</code> in the bucket named
- * <code>examplebucket</code>, specify the resource as
- * <code>/examplebucket/photos/2006/February/sample.jpg</code>. For more
- * information about request types, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket">HTTP
- * Host Header Bucket Specification</a>.</p> <p>To distribute large files to many
- * people, you can save bandwidth costs by using BitTorrent. For more information,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Amazon S3
- * Torrent</a>. For more information about returning the ACL of an object, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>.</p>
- * <p>If the object you are retrieving is stored in the S3 Glacier or S3 Glacier
- * Deep Archive storage class, or S3 Intelligent-Tiering Archive or S3
- * Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you
- * must first restore a copy using <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html">RestoreObject</a>.
- * Otherwise, this action returns an <code>InvalidObjectStateError</code> error.
- * For information about restoring archived objects, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring
- * Archived Objects</a>.</p> <p>Encryption request headers, like
- * <code>x-amz-server-side-encryption</code>, should not be sent for GET requests
- * if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS)
- * or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If
- * your object does use these types of keys, you’ll get an HTTP 400 BadRequest
- * error.</p> <p>If you encrypt an object by using server-side encryption with
- * customer-provided encryption keys (SSE-C) when you store the object in Amazon
- * S3, then when you GET the object, you must use the following headers:</p> <ul>
- * <li> <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
- * information about SSE-C, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
- * Encryption (Using Customer-Provided Encryption Keys)</a>.</p> <p>Assuming you
- * have permission to read object tags (permission for the
- * <code>s3:GetObjectVersionTagging</code> action), the response also returns the
- * <code>x-amz-tagging-count</code> header that provides the count of number of
- * tags associated with the object. You can use <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
- * to retrieve the tag set associated with an object.</p> <p> <b>Permissions</b>
- * </p> <p>You need the <code>s3:GetObject</code> permission for this operation.
- * For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>. If the object you request does not exist, the error
- * Amazon S3 returns depends on whether you also have the
- * <code>s3:ListBucket</code> permission.</p> <ul> <li> <p>If you have the
- * <code>s3:ListBucket</code> permission on the bucket, Amazon S3 will return an
- * HTTP status code 404 ("no such key") error.</p> </li> <li> <p>If you don’t have
- * the <code>s3:ListBucket</code> permission, Amazon S3 will return an HTTP status
- * code 403 ("access denied") error.</p> </li> </ul> <p> <b>Versioning</b> </p>
- * <p>By default, the GET action returns the current version of an object. To
- * return a different version, use the <code>versionId</code> subresource.</p>
- * <p>If the current version of the object is a delete marker, Amazon S3
- * behaves as if the object was deleted and includes <code>x-amz-delete-marker:
- * true</code> in the response.</p> <p>For more information about
- * versioning, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html">PutBucketVersioning</a>.
- * </p> <p> <b>Overriding Response Header Values</b> </p> <p>There are times when
- * you want to override certain response header values in a GET response. For
- * example, you might override the Content-Disposition response header value in
- * your GET request.</p> <p>You can override values for a set of response headers
- * using the following query parameters. These response header values are sent only
- * on a successful request, that is, when status code 200 OK is returned. The set
- * of headers you can override using these parameters is a subset of the headers
- * that Amazon S3 accepts when you create an object. The response headers that you
- * can override for the GET response are <code>Content-Type</code>,
- * <code>Content-Language</code>, <code>Expires</code>, <code>Cache-Control</code>,
- * <code>Content-Disposition</code>, and <code>Content-Encoding</code>. To override
- * these header values in the GET response, you use the following request
- * parameters.</p> <p>You must sign the request, either using an
- * Authorization header or a presigned URL, when using these parameters. They
- * cannot be used with an unsigned (anonymous) request.</p> <ul> <li> <p>
- * <code>response-content-type</code> </p> </li> <li> <p>
- * <code>response-content-language</code> </p> </li> <li> <p>
- * <code>response-expires</code> </p> </li> <li> <p>
- * <code>response-cache-control</code> </p> </li> <li> <p>
- * <code>response-content-disposition</code> </p> </li> <li> <p>
- * <code>response-content-encoding</code> </p> </li> </ul> <p> <b>Additional
- * Considerations about Request Headers</b> </p> <p>If both of the
- * <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present
- * in the request as follows: <code>If-Match</code> condition evaluates to
- * <code>true</code>, and; <code>If-Unmodified-Since</code> condition evaluates to
- * <code>false</code>; then, S3 returns 200 OK and the data requested. </p> <p>If
- * both of the <code>If-None-Match</code> and <code>If-Modified-Since</code>
- * headers are present in the request as follows:<code> If-None-Match</code>
- * condition evaluates to <code>false</code>, and; <code>If-Modified-Since</code>
- * condition evaluates to <code>true</code>; then, S3 returns 304 Not Modified
- * response code.</p> <p>For more information about conditional requests, see <a
- * href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p> <p>The following
- * operations are related to <code>GetObject</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetObjectAsync(const Model::GetObjectRequest& request, const GetObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns the access control list (ACL) of an object. To use this operation,
- * you must have <code>READ_ACP</code> access to the object.</p> <p>This action is
- * not supported by Amazon S3 on Outposts.</p> <p> <b>Versioning</b> </p> <p>By
- * default, GET returns ACL information about the current version of an object. To
- * return ACL information about a different version, use the versionId
- * subresource.</p> <p>The following operations are related to
- * <code>GetObjectAcl</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAcl">AWS API
- * Reference</a></p>
- */
- virtual Model::GetObjectAclOutcome GetObjectAcl(const Model::GetObjectAclRequest& request) const;
- /**
- * <p>Returns the access control list (ACL) of an object. To use this operation,
- * you must have <code>READ_ACP</code> access to the object.</p> <p>This action is
- * not supported by Amazon S3 on Outposts.</p> <p> <b>Versioning</b> </p> <p>By
- * default, GET returns ACL information about the current version of an object. To
- * return ACL information about a different version, use the versionId
- * subresource.</p> <p>The following operations are related to
- * <code>GetObjectAcl</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAcl">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetObjectAclOutcomeCallable GetObjectAclCallable(const Model::GetObjectAclRequest& request) const;
- /**
- * <p>Returns the access control list (ACL) of an object. To use this operation,
- * you must have <code>READ_ACP</code> access to the object.</p> <p>This action is
- * not supported by Amazon S3 on Outposts.</p> <p> <b>Versioning</b> </p> <p>By
- * default, GET returns ACL information about the current version of an object. To
- * return ACL information about a different version, use the versionId
- * subresource.</p> <p>The following operations are related to
- * <code>GetObjectAcl</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAcl">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetObjectAclAsync(const Model::GetObjectAclRequest& request, const GetObjectAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Gets an object's current Legal Hold status. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
- * Outposts.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold">AWS
- * API Reference</a></p>
- */
- virtual Model::GetObjectLegalHoldOutcome GetObjectLegalHold(const Model::GetObjectLegalHoldRequest& request) const;
- /**
- * <p>Gets an object's current Legal Hold status. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
- * Outposts.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetObjectLegalHoldOutcomeCallable GetObjectLegalHoldCallable(const Model::GetObjectLegalHoldRequest& request) const;
- /**
- * <p>Gets an object's current Legal Hold status. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
- * Outposts.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetObjectLegalHoldAsync(const Model::GetObjectLegalHoldRequest& request, const GetObjectLegalHoldResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Gets the Object Lock configuration for a bucket. The rule specified in the
- * Object Lock configuration will be applied by default to every new object placed
- * in the specified bucket. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::GetObjectLockConfigurationOutcome GetObjectLockConfiguration(const Model::GetObjectLockConfigurationRequest& request) const;
- /**
- * <p>Gets the Object Lock configuration for a bucket. The rule specified in the
- * Object Lock configuration will be applied by default to every new object placed
- * in the specified bucket. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetObjectLockConfigurationOutcomeCallable GetObjectLockConfigurationCallable(const Model::GetObjectLockConfigurationRequest& request) const;
- /**
- * <p>Gets the Object Lock configuration for a bucket. The rule specified in the
- * Object Lock configuration will be applied by default to every new object placed
- * in the specified bucket. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetObjectLockConfigurationAsync(const Model::GetObjectLockConfigurationRequest& request, const GetObjectLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Retrieves an object's retention settings. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
- * Outposts.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention">AWS
- * API Reference</a></p>
- */
- virtual Model::GetObjectRetentionOutcome GetObjectRetention(const Model::GetObjectRetentionRequest& request) const;
- /**
- * <p>Retrieves an object's retention settings. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
- * Outposts.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetObjectRetentionOutcomeCallable GetObjectRetentionCallable(const Model::GetObjectRetentionRequest& request) const;
- /**
- * <p>Retrieves an object's retention settings. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
- * Outposts.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetObjectRetentionAsync(const Model::GetObjectRetentionRequest& request, const GetObjectRetentionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns the tag-set of an object. You send the GET request against the
- * tagging subresource associated with the object.</p> <p>To use this operation,
- * you must have permission to perform the <code>s3:GetObjectTagging</code> action.
- * By default, the GET action returns information about current version of an
- * object. For a versioned bucket, you can have multiple versions of an object in
- * your bucket. To retrieve tags of any other version, use the versionId query
- * parameter. You also need permission for the
- * <code>s3:GetObjectVersionTagging</code> action.</p> <p> By default, the bucket
- * owner has this permission and can grant this permission to others.</p> <p> For
- * information about the Amazon S3 object tagging feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
- * Tagging</a>.</p> <p>The following action is related to
- * <code>GetObjectTagging</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTagging">AWS
- * API Reference</a></p>
- */
- virtual Model::GetObjectTaggingOutcome GetObjectTagging(const Model::GetObjectTaggingRequest& request) const;
- /**
- * <p>Returns the tag-set of an object. You send the GET request against the
- * tagging subresource associated with the object.</p> <p>To use this operation,
- * you must have permission to perform the <code>s3:GetObjectTagging</code> action.
- * By default, the GET action returns information about current version of an
- * object. For a versioned bucket, you can have multiple versions of an object in
- * your bucket. To retrieve tags of any other version, use the versionId query
- * parameter. You also need permission for the
- * <code>s3:GetObjectVersionTagging</code> action.</p> <p> By default, the bucket
- * owner has this permission and can grant this permission to others.</p> <p> For
- * information about the Amazon S3 object tagging feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
- * Tagging</a>.</p> <p>The following action is related to
- * <code>GetObjectTagging</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTagging">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetObjectTaggingOutcomeCallable GetObjectTaggingCallable(const Model::GetObjectTaggingRequest& request) const;
- /**
- * <p>Returns the tag-set of an object. You send the GET request against the
- * tagging subresource associated with the object.</p> <p>To use this operation,
- * you must have permission to perform the <code>s3:GetObjectTagging</code> action.
- * By default, the GET action returns information about current version of an
- * object. For a versioned bucket, you can have multiple versions of an object in
- * your bucket. To retrieve tags of any other version, use the versionId query
- * parameter. You also need permission for the
- * <code>s3:GetObjectVersionTagging</code> action.</p> <p> By default, the bucket
- * owner has this permission and can grant this permission to others.</p> <p> For
- * information about the Amazon S3 object tagging feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
- * Tagging</a>.</p> <p>The following action is related to
- * <code>GetObjectTagging</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTagging">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetObjectTaggingAsync(const Model::GetObjectTaggingRequest& request, const GetObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns torrent files from a bucket. BitTorrent can save you bandwidth when
- * you're distributing large files. For more information about BitTorrent, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Using
- * BitTorrent with Amazon S3</a>.</p> <p>You can get torrent only for
- * objects that are less than 5 GB in size, and that are not encrypted using
- * server-side encryption with a customer-provided encryption key.</p>
- * <p>To use GET, you must have READ access to the object.</p> <p>This action is
- * not supported by Amazon S3 on Outposts.</p> <p>The following action is related
- * to <code>GetObjectTorrent</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTorrent">AWS
- * API Reference</a></p>
- */
- virtual Model::GetObjectTorrentOutcome GetObjectTorrent(const Model::GetObjectTorrentRequest& request) const;
- /**
- * <p>Returns torrent files from a bucket. BitTorrent can save you bandwidth when
- * you're distributing large files. For more information about BitTorrent, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Using
- * BitTorrent with Amazon S3</a>.</p> <p>You can get torrent only for
- * objects that are less than 5 GB in size, and that are not encrypted using
- * server-side encryption with a customer-provided encryption key.</p>
- * <p>To use GET, you must have READ access to the object.</p> <p>This action is
- * not supported by Amazon S3 on Outposts.</p> <p>The following action is related
- * to <code>GetObjectTorrent</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTorrent">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetObjectTorrentOutcomeCallable GetObjectTorrentCallable(const Model::GetObjectTorrentRequest& request) const;
- /**
- * <p>Returns torrent files from a bucket. BitTorrent can save you bandwidth when
- * you're distributing large files. For more information about BitTorrent, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html">Using
- * BitTorrent with Amazon S3</a>.</p> <p>You can get torrent only for
- * objects that are less than 5 GB in size, and that are not encrypted using
- * server-side encryption with a customer-provided encryption key.</p>
- * <p>To use GET, you must have READ access to the object.</p> <p>This action is
- * not supported by Amazon S3 on Outposts.</p> <p>The following action is related
- * to <code>GetObjectTorrent</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTorrent">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetObjectTorrentAsync(const Model::GetObjectTorrentRequest& request, const GetObjectTorrentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Retrieves the <code>PublicAccessBlock</code> configuration for an Amazon S3
- * bucket. To use this operation, you must have the
- * <code>s3:GetBucketPublicAccessBlock</code> permission. For more information
- * about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>.</p> <p>When Amazon S3 evaluates the
- * <code>PublicAccessBlock</code> configuration for a bucket or an object, it
- * checks the <code>PublicAccessBlock</code> configuration for both the bucket (or
- * the bucket that contains the object) and the bucket owner's account. If the
- * <code>PublicAccessBlock</code> settings are different between the bucket and the
- * account, Amazon S3 uses the most restrictive combination of the bucket-level and
- * account-level settings.</p> <p>For more information about when
- * Amazon S3 considers a bucket or an object public, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
- * Meaning of "Public"</a>.</p> <p>The following operations are related to
- * <code>GetPublicAccessBlock</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
- * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock">AWS
- * API Reference</a></p>
- */
- virtual Model::GetPublicAccessBlockOutcome GetPublicAccessBlock(const Model::GetPublicAccessBlockRequest& request) const;
- /**
- * <p>Retrieves the <code>PublicAccessBlock</code> configuration for an Amazon S3
- * bucket. To use this operation, you must have the
- * <code>s3:GetBucketPublicAccessBlock</code> permission. For more information
- * about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>.</p> <p>When Amazon S3 evaluates the
- * <code>PublicAccessBlock</code> configuration for a bucket or an object, it
- * checks the <code>PublicAccessBlock</code> configuration for both the bucket (or
- * the bucket that contains the object) and the bucket owner's account. If the
- * <code>PublicAccessBlock</code> settings are different between the bucket and the
- * account, Amazon S3 uses the most restrictive combination of the bucket-level and
- * account-level settings.</p> <p>For more information about when
- * Amazon S3 considers a bucket or an object public, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
- * Meaning of "Public"</a>.</p> <p>The following operations are related to
- * <code>GetPublicAccessBlock</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
- * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::GetPublicAccessBlockOutcomeCallable GetPublicAccessBlockCallable(const Model::GetPublicAccessBlockRequest& request) const;
- /**
- * <p>Retrieves the <code>PublicAccessBlock</code> configuration for an Amazon S3
- * bucket. To use this operation, you must have the
- * <code>s3:GetBucketPublicAccessBlock</code> permission. For more information
- * about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>.</p> <p>When Amazon S3 evaluates the
- * <code>PublicAccessBlock</code> configuration for a bucket or an object, it
- * checks the <code>PublicAccessBlock</code> configuration for both the bucket (or
- * the bucket that contains the object) and the bucket owner's account. If the
- * <code>PublicAccessBlock</code> settings are different between the bucket and the
- * account, Amazon S3 uses the most restrictive combination of the bucket-level and
- * account-level settings.</p> <p>For more information about when
- * Amazon S3 considers a bucket or an object public, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
- * Meaning of "Public"</a>.</p> <p>The following operations are related to
- * <code>GetPublicAccessBlock</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
- * Amazon S3 Block Public Access</a> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void GetPublicAccessBlockAsync(const Model::GetPublicAccessBlockRequest& request, const GetPublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>This action is useful to determine if a bucket exists and you have permission
- * to access it. The action returns a <code>200 OK</code> if the bucket exists and
- * you have permission to access it.</p> <p>If the bucket does not exist or you do
- * not have permission to access it, the <code>HEAD</code> request returns a
- * generic <code>404 Not Found</code> or <code>403 Forbidden</code> code. A message
- * body is not included, so you cannot determine the exception beyond these error
- * codes.</p> <p>To use this operation, you must have permissions to perform the
- * <code>s3:ListBucket</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p><p><h3>See Also:</h3>
- * <a href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucket">AWS
- * API Reference</a></p>
- */
- virtual Model::HeadBucketOutcome HeadBucket(const Model::HeadBucketRequest& request) const;
- /**
- * <p>This action is useful to determine if a bucket exists and you have permission
- * to access it. The action returns a <code>200 OK</code> if the bucket exists and
- * you have permission to access it.</p> <p>If the bucket does not exist or you do
- * not have permission to access it, the <code>HEAD</code> request returns a
- * generic <code>404 Not Found</code> or <code>403 Forbidden</code> code. A message
- * body is not included, so you cannot determine the exception beyond these error
- * codes.</p> <p>To use this operation, you must have permissions to perform the
- * <code>s3:ListBucket</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p><p><h3>See Also:</h3>
- * <a href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucket">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::HeadBucketOutcomeCallable HeadBucketCallable(const Model::HeadBucketRequest& request) const;
- /**
- * <p>This action is useful to determine if a bucket exists and you have permission
- * to access it. The action returns a <code>200 OK</code> if the bucket exists and
- * you have permission to access it.</p> <p>If the bucket does not exist or you do
- * not have permission to access it, the <code>HEAD</code> request returns a
- * generic <code>404 Not Found</code> or <code>403 Forbidden</code> code. A message
- * body is not included, so you cannot determine the exception beyond these error
- * codes.</p> <p>To use this operation, you must have permissions to perform the
- * <code>s3:ListBucket</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p><p><h3>See Also:</h3>
- * <a href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucket">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void HeadBucketAsync(const Model::HeadBucketRequest& request, const HeadBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>The HEAD action retrieves metadata from an object without returning the
- * object itself. This action is useful if you're only interested in an object's
- * metadata. To use HEAD, you must have READ access to the object.</p> <p>A
- * <code>HEAD</code> request has the same options as a <code>GET</code> action on
- * an object. The response is identical to the <code>GET</code> response except
- * that there is no response body. Because of this, if the <code>HEAD</code>
- * request generates an error, it returns a generic <code>404 Not Found</code> or
- * <code>403 Forbidden</code> code. It is not possible to retrieve the exact
- * exception beyond these error codes.</p> <p>If you encrypt an object by using
- * server-side encryption with customer-provided encryption keys (SSE-C) when you
- * store the object in Amazon S3, then when you retrieve the metadata from the
- * object, you must use the following headers:</p> <ul> <li>
- * <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
- * information about SSE-C, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
- * Encryption (Using Customer-Provided Encryption Keys)</a>.</p> <ul> <li>
- * <p>Encryption request headers, like <code>x-amz-server-side-encryption</code>,
- * should not be sent for GET requests if your object uses server-side encryption
- * with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon
- * S3–managed encryption keys (SSE-S3). If your object does use these types of
- * keys, you’ll get an HTTP 400 BadRequest error.</p> </li> <li> <p> The last
- * modified property in this case is the creation date of the object.</p> </li>
- * </ul> <p>Request headers are limited to 8 KB in size. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html">Common
- * Request Headers</a>.</p> <p>Consider the following when using request
- * headers:</p> <ul> <li> <p> Consideration 1 – If both of the
- * <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present
- * in the request as follows:</p> <ul> <li> <p> <code>If-Match</code> condition
- * evaluates to <code>true</code>, and;</p> </li> <li> <p>
- * <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>;</p>
- * </li> </ul> <p>Then Amazon S3 returns <code>200 OK</code> and the data
- * requested.</p> </li> <li> <p> Consideration 2 – If both of the
- * <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are
- * present in the request as follows:</p> <ul> <li> <p> <code>If-None-Match</code>
- * condition evaluates to <code>false</code>, and;</p> </li> <li> <p>
- * <code>If-Modified-Since</code> condition evaluates to <code>true</code>;</p>
- * </li> </ul> <p>Then Amazon S3 returns the <code>304 Not Modified</code> response
- * code.</p> </li> </ul> <p>For more information about conditional requests, see <a
- * href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p> <p>
- * <b>Permissions</b> </p> <p>You need the <code>s3:GetObject</code> permission for
- * this operation. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>. If the object you request does not exist, the error
- * Amazon S3 returns depends on whether you also have the s3:ListBucket
- * permission.</p> <ul> <li> <p>If you have the <code>s3:ListBucket</code>
- * permission on the bucket, Amazon S3 returns an HTTP status code 404 ("no such
- * key") error.</p> </li> <li> <p>If you don’t have the <code>s3:ListBucket</code>
- * permission, Amazon S3 returns an HTTP status code 403 ("access denied")
- * error.</p> </li> </ul> <p>The following action is related to
- * <code>HeadObject</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObject">AWS API
- * Reference</a></p>
- */
- virtual Model::HeadObjectOutcome HeadObject(const Model::HeadObjectRequest& request) const;
- /**
- * <p>The HEAD action retrieves metadata from an object without returning the
- * object itself. This action is useful if you're only interested in an object's
- * metadata. To use HEAD, you must have READ access to the object.</p> <p>A
- * <code>HEAD</code> request has the same options as a <code>GET</code> action on
- * an object. The response is identical to the <code>GET</code> response except
- * that there is no response body. Because of this, if the <code>HEAD</code>
- * request generates an error, it returns a generic <code>404 Not Found</code> or
- * <code>403 Forbidden</code> code. It is not possible to retrieve the exact
- * exception beyond these error codes.</p> <p>If you encrypt an object by using
- * server-side encryption with customer-provided encryption keys (SSE-C) when you
- * store the object in Amazon S3, then when you retrieve the metadata from the
- * object, you must use the following headers:</p> <ul> <li>
- * <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
- * information about SSE-C, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
- * Encryption (Using Customer-Provided Encryption Keys)</a>.</p> <ul> <li>
- * <p>Encryption request headers, like <code>x-amz-server-side-encryption</code>,
- * should not be sent for GET requests if your object uses server-side encryption
- * with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon
- * S3–managed encryption keys (SSE-S3). If your object does use these types of
- * keys, you’ll get an HTTP 400 BadRequest error.</p> </li> <li> <p> The last
- * modified property in this case is the creation date of the object.</p> </li>
- * </ul> <p>Request headers are limited to 8 KB in size. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html">Common
- * Request Headers</a>.</p> <p>Consider the following when using request
- * headers:</p> <ul> <li> <p> Consideration 1 – If both of the
- * <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present
- * in the request as follows:</p> <ul> <li> <p> <code>If-Match</code> condition
- * evaluates to <code>true</code>, and;</p> </li> <li> <p>
- * <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>;</p>
- * </li> </ul> <p>Then Amazon S3 returns <code>200 OK</code> and the data
- * requested.</p> </li> <li> <p> Consideration 2 – If both of the
- * <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are
- * present in the request as follows:</p> <ul> <li> <p> <code>If-None-Match</code>
- * condition evaluates to <code>false</code>, and;</p> </li> <li> <p>
- * <code>If-Modified-Since</code> condition evaluates to <code>true</code>;</p>
- * </li> </ul> <p>Then Amazon S3 returns the <code>304 Not Modified</code> response
- * code.</p> </li> </ul> <p>For more information about conditional requests, see <a
- * href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p> <p>
- * <b>Permissions</b> </p> <p>You need the <code>s3:GetObject</code> permission for
- * this operation. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>. If the object you request does not exist, the error
- * Amazon S3 returns depends on whether you also have the s3:ListBucket
- * permission.</p> <ul> <li> <p>If you have the <code>s3:ListBucket</code>
- * permission on the bucket, Amazon S3 returns an HTTP status code 404 ("no such
- * key") error.</p> </li> <li> <p>If you don’t have the <code>s3:ListBucket</code>
- * permission, Amazon S3 returns an HTTP status code 403 ("access denied")
- * error.</p> </li> </ul> <p>The following action is related to
- * <code>HeadObject</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObject">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::HeadObjectOutcomeCallable HeadObjectCallable(const Model::HeadObjectRequest& request) const;
- /**
- * <p>The HEAD action retrieves metadata from an object without returning the
- * object itself. This action is useful if you're only interested in an object's
- * metadata. To use HEAD, you must have READ access to the object.</p> <p>A
- * <code>HEAD</code> request has the same options as a <code>GET</code> action on
- * an object. The response is identical to the <code>GET</code> response except
- * that there is no response body. Because of this, if the <code>HEAD</code>
- * request generates an error, it returns a generic <code>404 Not Found</code> or
- * <code>403 Forbidden</code> code. It is not possible to retrieve the exact
- * exception beyond these error codes.</p> <p>If you encrypt an object by using
- * server-side encryption with customer-provided encryption keys (SSE-C) when you
- * store the object in Amazon S3, then when you retrieve the metadata from the
- * object, you must use the following headers:</p> <ul> <li>
- * <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p>For more
- * information about SSE-C, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
- * Encryption (Using Customer-Provided Encryption Keys)</a>.</p> <ul> <li>
- * <p>Encryption request headers, like <code>x-amz-server-side-encryption</code>,
- * should not be sent for GET requests if your object uses server-side encryption
- * with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon
- * S3–managed encryption keys (SSE-S3). If your object does use these types of
- * keys, you’ll get an HTTP 400 BadRequest error.</p> </li> <li> <p> The last
- * modified property in this case is the creation date of the object.</p> </li>
- * </ul> <p>Request headers are limited to 8 KB in size. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html">Common
- * Request Headers</a>.</p> <p>Consider the following when using request
- * headers:</p> <ul> <li> <p> Consideration 1 – If both of the
- * <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present
- * in the request as follows:</p> <ul> <li> <p> <code>If-Match</code> condition
- * evaluates to <code>true</code>, and;</p> </li> <li> <p>
- * <code>If-Unmodified-Since</code> condition evaluates to <code>false</code>;</p>
- * </li> </ul> <p>Then Amazon S3 returns <code>200 OK</code> and the data
- * requested.</p> </li> <li> <p> Consideration 2 – If both of the
- * <code>If-None-Match</code> and <code>If-Modified-Since</code> headers are
- * present in the request as follows:</p> <ul> <li> <p> <code>If-None-Match</code>
- * condition evaluates to <code>false</code>, and;</p> </li> <li> <p>
- * <code>If-Modified-Since</code> condition evaluates to <code>true</code>;</p>
- * </li> </ul> <p>Then Amazon S3 returns the <code>304 Not Modified</code> response
- * code.</p> </li> </ul> <p>For more information about conditional requests, see <a
- * href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p> <p>
- * <b>Permissions</b> </p> <p>You need the <code>s3:GetObject</code> permission for
- * this operation. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>. If the object you request does not exist, the error
- * Amazon S3 returns depends on whether you also have the s3:ListBucket
- * permission.</p> <ul> <li> <p>If you have the <code>s3:ListBucket</code>
- * permission on the bucket, Amazon S3 returns an HTTP status code 404 ("no such
- * key") error.</p> </li> <li> <p>If you don’t have the <code>s3:ListBucket</code>
- * permission, Amazon S3 returns an HTTP status code 403 ("access denied")
- * error.</p> </li> </ul> <p>The following action is related to
- * <code>HeadObject</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObject">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void HeadObjectAsync(const Model::HeadObjectRequest& request, const HeadObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Lists the analytics configurations for the bucket. You can have up to 1,000
- * analytics configurations per bucket.</p> <p>This action supports list pagination
- * and does not return more than 100 configurations at a time. You should always
- * check the <code>IsTruncated</code> element in the response. If there are no more
- * configurations to list, <code>IsTruncated</code> is set to false. If there are
- * more configurations to list, <code>IsTruncated</code> is set to true, and there
- * will be a value in <code>NextContinuationToken</code>. You use the
- * <code>NextContinuationToken</code> value to continue the pagination of the list
- * by passing the value in continuation-token in the request to <code>GET</code>
- * the next page.</p> <p>To use this operation, you must have permissions to
- * perform the <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner
- * has this permission by default. The bucket owner can grant this permission to
- * others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * Amazon S3 analytics feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
- * S3 Analytics – Storage Class Analysis</a>. </p> <p>The following operations are
- * related to <code>ListBucketAnalyticsConfigurations</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketAnalyticsConfigurations">AWS
- * API Reference</a></p>
- */
- virtual Model::ListBucketAnalyticsConfigurationsOutcome ListBucketAnalyticsConfigurations(const Model::ListBucketAnalyticsConfigurationsRequest& request) const;
- /**
- * <p>Lists the analytics configurations for the bucket. You can have up to 1,000
- * analytics configurations per bucket.</p> <p>This action supports list pagination
- * and does not return more than 100 configurations at a time. You should always
- * check the <code>IsTruncated</code> element in the response. If there are no more
- * configurations to list, <code>IsTruncated</code> is set to false. If there are
- * more configurations to list, <code>IsTruncated</code> is set to true, and there
- * will be a value in <code>NextContinuationToken</code>. You use the
- * <code>NextContinuationToken</code> value to continue the pagination of the list
- * by passing the value in continuation-token in the request to <code>GET</code>
- * the next page.</p> <p>To use this operation, you must have permissions to
- * perform the <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner
- * has this permission by default. The bucket owner can grant this permission to
- * others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * Amazon S3 analytics feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
- * S3 Analytics – Storage Class Analysis</a>. </p> <p>The following operations are
- * related to <code>ListBucketAnalyticsConfigurations</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketAnalyticsConfigurations">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::ListBucketAnalyticsConfigurationsOutcomeCallable ListBucketAnalyticsConfigurationsCallable(const Model::ListBucketAnalyticsConfigurationsRequest& request) const;
- /**
- * <p>Lists the analytics configurations for the bucket. You can have up to 1,000
- * analytics configurations per bucket.</p> <p>This action supports list pagination
- * and does not return more than 100 configurations at a time. You should always
- * check the <code>IsTruncated</code> element in the response. If there are no more
- * configurations to list, <code>IsTruncated</code> is set to false. If there are
- * more configurations to list, <code>IsTruncated</code> is set to true, and there
- * will be a value in <code>NextContinuationToken</code>. You use the
- * <code>NextContinuationToken</code> value to continue the pagination of the list
- * by passing the value in continuation-token in the request to <code>GET</code>
- * the next page.</p> <p>To use this operation, you must have permissions to
- * perform the <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner
- * has this permission by default. The bucket owner can grant this permission to
- * others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * Amazon S3 analytics feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
- * S3 Analytics – Storage Class Analysis</a>. </p> <p>The following operations are
- * related to <code>ListBucketAnalyticsConfigurations</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketAnalyticsConfigurations">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void ListBucketAnalyticsConfigurationsAsync(const Model::ListBucketAnalyticsConfigurationsRequest& request, const ListBucketAnalyticsConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Lists the S3 Intelligent-Tiering configuration from the specified bucket.</p>
- * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage
- * costs by automatically moving data to the most cost-effective storage access
- * tier, without additional operational overhead. S3 Intelligent-Tiering delivers
- * automatic cost savings by moving data between access tiers, when access patterns
- * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
- * larger than 128 KB that you plan to store for at least 30 days. If the size of
- * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
- * objects can be stored, but they are always charged at the frequent access tier
- * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
- * object before the end of the 30-day minimum storage duration period, you are
- * charged for 30 days. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
- * class for automatically optimizing frequently and infrequently accessed
- * objects</a>.</p> <p>Operations related to
- * <code>ListBucketIntelligentTieringConfigurations</code> include: </p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurations">AWS
- * API Reference</a></p>
- */
- virtual Model::ListBucketIntelligentTieringConfigurationsOutcome ListBucketIntelligentTieringConfigurations(const Model::ListBucketIntelligentTieringConfigurationsRequest& request) const;
- /**
- * <p>Lists the S3 Intelligent-Tiering configuration from the specified bucket.</p>
- * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage
- * costs by automatically moving data to the most cost-effective storage access
- * tier, without additional operational overhead. S3 Intelligent-Tiering delivers
- * automatic cost savings by moving data between access tiers, when access patterns
- * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
- * larger than 128 KB that you plan to store for at least 30 days. If the size of
- * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
- * objects can be stored, but they are always charged at the frequent access tier
- * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
- * object before the end of the 30-day minimum storage duration period, you are
- * charged for 30 days. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
- * class for automatically optimizing frequently and infrequently accessed
- * objects</a>.</p> <p>Operations related to
- * <code>ListBucketIntelligentTieringConfigurations</code> include: </p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurations">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::ListBucketIntelligentTieringConfigurationsOutcomeCallable ListBucketIntelligentTieringConfigurationsCallable(const Model::ListBucketIntelligentTieringConfigurationsRequest& request) const;
- /**
- * <p>Lists the S3 Intelligent-Tiering configuration from the specified bucket.</p>
- * <p>The S3 Intelligent-Tiering storage class is designed to optimize storage
- * costs by automatically moving data to the most cost-effective storage access
- * tier, without additional operational overhead. S3 Intelligent-Tiering delivers
- * automatic cost savings by moving data between access tiers, when access patterns
- * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
- * larger than 128 KB that you plan to store for at least 30 days. If the size of
- * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
- * objects can be stored, but they are always charged at the frequent access tier
- * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
- * object before the end of the 30-day minimum storage duration period, you are
- * charged for 30 days. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
- * class for automatically optimizing frequently and infrequently accessed
- * objects</a>.</p> <p>Operations related to
- * <code>ListBucketIntelligentTieringConfigurations</code> include: </p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurations">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void ListBucketIntelligentTieringConfigurationsAsync(const Model::ListBucketIntelligentTieringConfigurationsRequest& request, const ListBucketIntelligentTieringConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns a list of inventory configurations for the bucket. You can have up to
- * 1,000 analytics configurations per bucket.</p> <p>This action supports list
- * pagination and does not return more than 100 configurations at a time. Always
- * check the <code>IsTruncated</code> element in the response. If there are no more
- * configurations to list, <code>IsTruncated</code> is set to false. If there are
- * more configurations to list, <code>IsTruncated</code> is set to true, and there
- * is a value in <code>NextContinuationToken</code>. You use the
- * <code>NextContinuationToken</code> value to continue the pagination of the list
- * by passing the value in continuation-token in the request to <code>GET</code>
- * the next page.</p> <p> To use this operation, you must have permissions to
- * perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner
- * has this permission by default. The bucket owner can grant this permission to
- * others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * the Amazon S3 inventory feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
- * S3 Inventory</a> </p> <p>The following operations are related to
- * <code>ListBucketInventoryConfigurations</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketInventoryConfigurations">AWS
- * API Reference</a></p>
- */
- virtual Model::ListBucketInventoryConfigurationsOutcome ListBucketInventoryConfigurations(const Model::ListBucketInventoryConfigurationsRequest& request) const;
- /**
- * <p>Returns a list of inventory configurations for the bucket. You can have up to
- * 1,000 analytics configurations per bucket.</p> <p>This action supports list
- * pagination and does not return more than 100 configurations at a time. Always
- * check the <code>IsTruncated</code> element in the response. If there are no more
- * configurations to list, <code>IsTruncated</code> is set to false. If there are
- * more configurations to list, <code>IsTruncated</code> is set to true, and there
- * is a value in <code>NextContinuationToken</code>. You use the
- * <code>NextContinuationToken</code> value to continue the pagination of the list
- * by passing the value in continuation-token in the request to <code>GET</code>
- * the next page.</p> <p> To use this operation, you must have permissions to
- * perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner
- * has this permission by default. The bucket owner can grant this permission to
- * others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * the Amazon S3 inventory feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
- * S3 Inventory</a> </p> <p>The following operations are related to
- * <code>ListBucketInventoryConfigurations</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketInventoryConfigurations">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::ListBucketInventoryConfigurationsOutcomeCallable ListBucketInventoryConfigurationsCallable(const Model::ListBucketInventoryConfigurationsRequest& request) const;
- /**
- * <p>Returns a list of inventory configurations for the bucket. You can have up to
- * 1,000 analytics configurations per bucket.</p> <p>This action supports list
- * pagination and does not return more than 100 configurations at a time. Always
- * check the <code>IsTruncated</code> element in the response. If there are no more
- * configurations to list, <code>IsTruncated</code> is set to false. If there are
- * more configurations to list, <code>IsTruncated</code> is set to true, and there
- * is a value in <code>NextContinuationToken</code>. You use the
- * <code>NextContinuationToken</code> value to continue the pagination of the list
- * by passing the value in continuation-token in the request to <code>GET</code>
- * the next page.</p> <p> To use this operation, you must have permissions to
- * perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner
- * has this permission by default. The bucket owner can grant this permission to
- * others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * the Amazon S3 inventory feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
- * S3 Inventory</a> </p> <p>The following operations are related to
- * <code>ListBucketInventoryConfigurations</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketInventoryConfigurations">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void ListBucketInventoryConfigurationsAsync(const Model::ListBucketInventoryConfigurationsRequest& request, const ListBucketInventoryConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Lists the metrics configurations for the bucket. The metrics configurations
- * are only for the request metrics of the bucket and do not provide information on
- * daily storage metrics. You can have up to 1,000 configurations per bucket.</p>
- * <p>This action supports list pagination and does not return more than 100
- * configurations at a time. Always check the <code>IsTruncated</code> element in
- * the response. If there are no more configurations to list,
- * <code>IsTruncated</code> is set to false. If there are more configurations to
- * list, <code>IsTruncated</code> is set to true, and there is a value in
- * <code>NextContinuationToken</code>. You use the
- * <code>NextContinuationToken</code> value to continue the pagination of the list
- * by passing the value in <code>continuation-token</code> in the request to
- * <code>GET</code> the next page.</p> <p>To use this operation, you must have
- * permissions to perform the <code>s3:GetMetricsConfiguration</code> action. The
- * bucket owner has this permission by default. The bucket owner can grant this
- * permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For more information
- * about metrics configurations and CloudWatch request metrics, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
- * to <code>ListBucketMetricsConfigurations</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketMetricsConfigurations">AWS
- * API Reference</a></p>
- */
- virtual Model::ListBucketMetricsConfigurationsOutcome ListBucketMetricsConfigurations(const Model::ListBucketMetricsConfigurationsRequest& request) const;
- /**
- * <p>Lists the metrics configurations for the bucket. The metrics configurations
- * are only for the request metrics of the bucket and do not provide information on
- * daily storage metrics. You can have up to 1,000 configurations per bucket.</p>
- * <p>This action supports list pagination and does not return more than 100
- * configurations at a time. Always check the <code>IsTruncated</code> element in
- * the response. If there are no more configurations to list,
- * <code>IsTruncated</code> is set to false. If there are more configurations to
- * list, <code>IsTruncated</code> is set to true, and there is a value in
- * <code>NextContinuationToken</code>. You use the
- * <code>NextContinuationToken</code> value to continue the pagination of the list
- * by passing the value in <code>continuation-token</code> in the request to
- * <code>GET</code> the next page.</p> <p>To use this operation, you must have
- * permissions to perform the <code>s3:GetMetricsConfiguration</code> action. The
- * bucket owner has this permission by default. The bucket owner can grant this
- * permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For more information
- * about metrics configurations and CloudWatch request metrics, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
- * to <code>ListBucketMetricsConfigurations</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketMetricsConfigurations">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::ListBucketMetricsConfigurationsOutcomeCallable ListBucketMetricsConfigurationsCallable(const Model::ListBucketMetricsConfigurationsRequest& request) const;
- /**
- * <p>Lists the metrics configurations for the bucket. The metrics configurations
- * are only for the request metrics of the bucket and do not provide information on
- * daily storage metrics. You can have up to 1,000 configurations per bucket.</p>
- * <p>This action supports list pagination and does not return more than 100
- * configurations at a time. Always check the <code>IsTruncated</code> element in
- * the response. If there are no more configurations to list,
- * <code>IsTruncated</code> is set to false. If there are more configurations to
- * list, <code>IsTruncated</code> is set to true, and there is a value in
- * <code>NextContinuationToken</code>. You use the
- * <code>NextContinuationToken</code> value to continue the pagination of the list
- * by passing the value in <code>continuation-token</code> in the request to
- * <code>GET</code> the next page.</p> <p>To use this operation, you must have
- * permissions to perform the <code>s3:GetMetricsConfiguration</code> action. The
- * bucket owner has this permission by default. The bucket owner can grant this
- * permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For more information
- * about metrics configurations and CloudWatch request metrics, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
- * to <code>ListBucketMetricsConfigurations</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketMetricsConfigurations">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void ListBucketMetricsConfigurationsAsync(const Model::ListBucketMetricsConfigurationsRequest& request, const ListBucketMetricsConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns a list of all buckets owned by the authenticated sender of the
- * request.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBuckets">AWS API
- * Reference</a></p>
- */
- virtual Model::ListBucketsOutcome ListBuckets() const;
- /**
- * <p>Returns a list of all buckets owned by the authenticated sender of the
- * request.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBuckets">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::ListBucketsOutcomeCallable ListBucketsCallable() const;
- /**
- * <p>Returns a list of all buckets owned by the authenticated sender of the
- * request.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBuckets">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void ListBucketsAsync(const ListBucketsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>This action lists in-progress multipart uploads. An in-progress multipart
- * upload is a multipart upload that has been initiated using the Initiate
- * Multipart Upload request, but has not yet been completed or aborted.</p> <p>This
- * action returns at most 1,000 multipart uploads in the response. 1,000 multipart
- * uploads is the maximum number of uploads a response can include, which is also
- * the default value. You can further limit the number of uploads in a response by
- * specifying the <code>max-uploads</code> parameter in the response. If additional
- * multipart uploads satisfy the list criteria, the response will contain an
- * <code>IsTruncated</code> element with the value true. To list the additional
- * multipart uploads, use the <code>key-marker</code> and
- * <code>upload-id-marker</code> request parameters.</p> <p>In the response, the
- * uploads are sorted by key. If your application has initiated more than one
- * multipart upload using the same object key, then uploads in the response are
- * first sorted by key. Additionally, uploads are sorted in ascending order within
- * each key by the upload initiation time.</p> <p>For more information on multipart
- * uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
- * Objects Using Multipart Upload</a>.</p> <p>For information on permissions
- * required to use the multipart upload API, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p>The following operations are related to
- * <code>ListMultipartUploads</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploads">AWS
- * API Reference</a></p>
- */
- virtual Model::ListMultipartUploadsOutcome ListMultipartUploads(const Model::ListMultipartUploadsRequest& request) const;
- /**
- * <p>This action lists in-progress multipart uploads. An in-progress multipart
- * upload is a multipart upload that has been initiated using the Initiate
- * Multipart Upload request, but has not yet been completed or aborted.</p> <p>This
- * action returns at most 1,000 multipart uploads in the response. 1,000 multipart
- * uploads is the maximum number of uploads a response can include, which is also
- * the default value. You can further limit the number of uploads in a response by
- * specifying the <code>max-uploads</code> parameter in the response. If additional
- * multipart uploads satisfy the list criteria, the response will contain an
- * <code>IsTruncated</code> element with the value true. To list the additional
- * multipart uploads, use the <code>key-marker</code> and
- * <code>upload-id-marker</code> request parameters.</p> <p>In the response, the
- * uploads are sorted by key. If your application has initiated more than one
- * multipart upload using the same object key, then uploads in the response are
- * first sorted by key. Additionally, uploads are sorted in ascending order within
- * each key by the upload initiation time.</p> <p>For more information on multipart
- * uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
- * Objects Using Multipart Upload</a>.</p> <p>For information on permissions
- * required to use the multipart upload API, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p>The following operations are related to
- * <code>ListMultipartUploads</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploads">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::ListMultipartUploadsOutcomeCallable ListMultipartUploadsCallable(const Model::ListMultipartUploadsRequest& request) const;
- /**
- * <p>This action lists in-progress multipart uploads. An in-progress multipart
- * upload is a multipart upload that has been initiated using the Initiate
- * Multipart Upload request, but has not yet been completed or aborted.</p> <p>This
- * action returns at most 1,000 multipart uploads in the response. 1,000 multipart
- * uploads is the maximum number of uploads a response can include, which is also
- * the default value. You can further limit the number of uploads in a response by
- * specifying the <code>max-uploads</code> parameter in the response. If additional
- * multipart uploads satisfy the list criteria, the response will contain an
- * <code>IsTruncated</code> element with the value true. To list the additional
- * multipart uploads, use the <code>key-marker</code> and
- * <code>upload-id-marker</code> request parameters.</p> <p>In the response, the
- * uploads are sorted by key. If your application has initiated more than one
- * multipart upload using the same object key, then uploads in the response are
- * first sorted by key. Additionally, uploads are sorted in ascending order within
- * each key by the upload initiation time.</p> <p>For more information on multipart
- * uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
- * Objects Using Multipart Upload</a>.</p> <p>For information on permissions
- * required to use the multipart upload API, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p>The following operations are related to
- * <code>ListMultipartUploads</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploads">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void ListMultipartUploadsAsync(const Model::ListMultipartUploadsRequest& request, const ListMultipartUploadsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns metadata about all versions of the objects in a bucket. You can also
- * use request parameters as selection criteria to return metadata about a subset
- * of all the object versions.</p> <p> To use this operation, you must
- * have permissions to perform the <code>s3:ListBucketVersions</code> action. Be
- * aware of the name difference. </p> <p> A 200 OK response can
- * contain valid or invalid XML. Make sure to design your application to parse the
- * contents of the response and handle it appropriately.</p> <p>To use this
- * operation, you must have READ access to the bucket.</p> <p>This action is not
- * supported by Amazon S3 on Outposts.</p> <p>The following operations are related
- * to <code>ListObjectVersions</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectVersions">AWS
- * API Reference</a></p>
- */
- virtual Model::ListObjectVersionsOutcome ListObjectVersions(const Model::ListObjectVersionsRequest& request) const;
- /**
- * <p>Returns metadata about all versions of the objects in a bucket. You can also
- * use request parameters as selection criteria to return metadata about a subset
- * of all the object versions.</p> <p> To use this operation, you must
- * have permissions to perform the <code>s3:ListBucketVersions</code> action. Be
- * aware of the name difference. </p> <p> A 200 OK response can
- * contain valid or invalid XML. Make sure to design your application to parse the
- * contents of the response and handle it appropriately.</p> <p>To use this
- * operation, you must have READ access to the bucket.</p> <p>This action is not
- * supported by Amazon S3 on Outposts.</p> <p>The following operations are related
- * to <code>ListObjectVersions</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectVersions">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::ListObjectVersionsOutcomeCallable ListObjectVersionsCallable(const Model::ListObjectVersionsRequest& request) const;
- /**
- * <p>Returns metadata about all versions of the objects in a bucket. You can also
- * use request parameters as selection criteria to return metadata about a subset
- * of all the object versions.</p> <p> To use this operation, you must
- * have permissions to perform the <code>s3:ListBucketVersions</code> action. Be
- * aware of the name difference. </p> <p> A 200 OK response can
- * contain valid or invalid XML. Make sure to design your application to parse the
- * contents of the response and handle it appropriately.</p> <p>To use this
- * operation, you must have READ access to the bucket.</p> <p>This action is not
- * supported by Amazon S3 on Outposts.</p> <p>The following operations are related
- * to <code>ListObjectVersions</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectVersions">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void ListObjectVersionsAsync(const Model::ListObjectVersionsRequest& request, const ListObjectVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns some or all (up to 1,000) of the objects in a bucket. You can use the
- * request parameters as selection criteria to return a subset of the objects in a
- * bucket. A 200 OK response can contain valid or invalid XML. Be sure to design
- * your application to parse the contents of the response and handle it
- * appropriately.</p> <p>This action has been revised. We recommend
- * that you use the newer version, <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>,
- * when developing applications. For backward compatibility, Amazon S3 continues to
- * support <code>ListObjects</code>.</p> <p>The following operations
- * are related to <code>ListObjects</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjects">AWS API
- * Reference</a></p>
- */
- virtual Model::ListObjectsOutcome ListObjects(const Model::ListObjectsRequest& request) const;
- /**
- * <p>Returns some or all (up to 1,000) of the objects in a bucket. You can use the
- * request parameters as selection criteria to return a subset of the objects in a
- * bucket. A 200 OK response can contain valid or invalid XML. Be sure to design
- * your application to parse the contents of the response and handle it
- * appropriately.</p> <p>This action has been revised. We recommend
- * that you use the newer version, <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>,
- * when developing applications. For backward compatibility, Amazon S3 continues to
- * support <code>ListObjects</code>.</p> <p>The following operations
- * are related to <code>ListObjects</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjects">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::ListObjectsOutcomeCallable ListObjectsCallable(const Model::ListObjectsRequest& request) const;
- /**
- * <p>Returns some or all (up to 1,000) of the objects in a bucket. You can use the
- * request parameters as selection criteria to return a subset of the objects in a
- * bucket. A 200 OK response can contain valid or invalid XML. Be sure to design
- * your application to parse the contents of the response and handle it
- * appropriately.</p> <p>This action has been revised. We recommend
- * that you use the newer version, <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>,
- * when developing applications. For backward compatibility, Amazon S3 continues to
- * support <code>ListObjects</code>.</p> <p>The following operations
- * are related to <code>ListObjects</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjects">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void ListObjectsAsync(const Model::ListObjectsRequest& request, const ListObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Returns some or all (up to 1,000) of the objects in a bucket. You can use the
- * request parameters as selection criteria to return a subset of the objects in a
- * bucket. A <code>200 OK</code> response can contain valid or invalid XML. Make
- * sure to design your application to parse the contents of the response and handle
- * it appropriately. Objects are returned sorted in an ascending order of the
- * respective key names in the list.</p> <p>To use this operation, you must have
- * READ access to the bucket.</p> <p>To use this action in an AWS Identity and
- * Access Management (IAM) policy, you must have permissions to perform the
- * <code>s3:ListBucket</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>This
- * section describes the latest revision of this action. We recommend that you use
- * this revised API for application development. For backward compatibility, Amazon
- * S3 continues to support the prior version of this API, <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>.</p>
- * <p>To get a list of your buckets, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>.</p>
- * <p>The following operations are related to <code>ListObjectsV2</code>:</p> <ul>
- * <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsV2">AWS
- * API Reference</a></p>
- */
- virtual Model::ListObjectsV2Outcome ListObjectsV2(const Model::ListObjectsV2Request& request) const;
- /**
- * <p>Returns some or all (up to 1,000) of the objects in a bucket. You can use the
- * request parameters as selection criteria to return a subset of the objects in a
- * bucket. A <code>200 OK</code> response can contain valid or invalid XML. Make
- * sure to design your application to parse the contents of the response and handle
- * it appropriately. Objects are returned sorted in an ascending order of the
- * respective key names in the list.</p> <p>To use this operation, you must have
- * READ access to the bucket.</p> <p>To use this action in an AWS Identity and
- * Access Management (IAM) policy, you must have permissions to perform the
- * <code>s3:ListBucket</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>This
- * section describes the latest revision of this action. We recommend that you use
- * this revised API for application development. For backward compatibility, Amazon
- * S3 continues to support the prior version of this API, <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>.</p>
- * <p>To get a list of your buckets, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>.</p>
- * <p>The following operations are related to <code>ListObjectsV2</code>:</p> <ul>
- * <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsV2">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::ListObjectsV2OutcomeCallable ListObjectsV2Callable(const Model::ListObjectsV2Request& request) const;
- /**
- * <p>Returns some or all (up to 1,000) of the objects in a bucket. You can use the
- * request parameters as selection criteria to return a subset of the objects in a
- * bucket. A <code>200 OK</code> response can contain valid or invalid XML. Make
- * sure to design your application to parse the contents of the response and handle
- * it appropriately. Objects are returned sorted in an ascending order of the
- * respective key names in the list.</p> <p>To use this operation, you must have
- * READ access to the bucket.</p> <p>To use this action in an AWS Identity and
- * Access Management (IAM) policy, you must have permissions to perform the
- * <code>s3:ListBucket</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>This
- * section describes the latest revision of this action. We recommend that you use
- * this revised API for application development. For backward compatibility, Amazon
- * S3 continues to support the prior version of this API, <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>.</p>
- * <p>To get a list of your buckets, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a>.</p>
- * <p>The following operations are related to <code>ListObjectsV2</code>:</p> <ul>
- * <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsV2">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void ListObjectsV2Async(const Model::ListObjectsV2Request& request, const ListObjectsV2ResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Lists the parts that have been uploaded for a specific multipart upload. This
- * operation must include the upload ID, which you obtain by sending the initiate
- * multipart upload request (see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>).
- * This request returns a maximum of 1,000 uploaded parts. The default number of
- * parts returned is 1,000 parts. You can restrict the number of parts returned by
- * specifying the <code>max-parts</code> request parameter. If your multipart
- * upload consists of more than 1,000 parts, the response returns an
- * <code>IsTruncated</code> field with the value of true, and a
- * <code>NextPartNumberMarker</code> element. In subsequent <code>ListParts</code>
- * requests you can include the part-number-marker query string parameter and set
- * its value to the <code>NextPartNumberMarker</code> field value from the previous
- * response.</p> <p>For more information on multipart uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
- * Objects Using Multipart Upload</a>.</p> <p>For information on permissions
- * required to use the multipart upload API, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p>The following operations are related to
- * <code>ListParts</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListParts">AWS API
- * Reference</a></p>
- */
- virtual Model::ListPartsOutcome ListParts(const Model::ListPartsRequest& request) const;
- /**
- * <p>Lists the parts that have been uploaded for a specific multipart upload. This
- * operation must include the upload ID, which you obtain by sending the initiate
- * multipart upload request (see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>).
- * This request returns a maximum of 1,000 uploaded parts. The default number of
- * parts returned is 1,000 parts. You can restrict the number of parts returned by
- * specifying the <code>max-parts</code> request parameter. If your multipart
- * upload consists of more than 1,000 parts, the response returns an
- * <code>IsTruncated</code> field with the value of true, and a
- * <code>NextPartNumberMarker</code> element. In subsequent <code>ListParts</code>
- * requests you can include the part-number-marker query string parameter and set
- * its value to the <code>NextPartNumberMarker</code> field value from the previous
- * response.</p> <p>For more information on multipart uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
- * Objects Using Multipart Upload</a>.</p> <p>For information on permissions
- * required to use the multipart upload API, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p>The following operations are related to
- * <code>ListParts</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListParts">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::ListPartsOutcomeCallable ListPartsCallable(const Model::ListPartsRequest& request) const;
- /**
- * <p>Lists the parts that have been uploaded for a specific multipart upload. This
- * operation must include the upload ID, which you obtain by sending the initiate
- * multipart upload request (see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>).
- * This request returns a maximum of 1,000 uploaded parts. The default number of
- * parts returned is 1,000 parts. You can restrict the number of parts returned by
- * specifying the <code>max-parts</code> request parameter. If your multipart
- * upload consists of more than 1,000 parts, the response returns an
- * <code>IsTruncated</code> field with the value of true, and a
- * <code>NextPartNumberMarker</code> element. In subsequent <code>ListParts</code>
- * requests you can include the part-number-marker query string parameter and set
- * its value to the <code>NextPartNumberMarker</code> field value from the previous
- * response.</p> <p>For more information on multipart uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
- * Objects Using Multipart Upload</a>.</p> <p>For information on permissions
- * required to use the multipart upload API, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a>.</p> <p>The following operations are related to
- * <code>ListParts</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListParts">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void ListPartsAsync(const Model::ListPartsRequest& request, const ListPartsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer
- * Acceleration is a bucket-level feature that enables you to perform faster data
- * transfers to Amazon S3.</p> <p> To use this operation, you must have permission
- * to perform the s3:PutAccelerateConfiguration action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> The Transfer
- * Acceleration state of a bucket can be set to one of the following two
- * values:</p> <ul> <li> <p> Enabled – Enables accelerated data transfers to the
- * bucket.</p> </li> <li> <p> Suspended – Disables accelerated data transfers to
- * the bucket.</p> </li> </ul> <p>The <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a>
- * action returns the transfer acceleration state of a bucket.</p> <p>After setting
- * the Transfer Acceleration state of a bucket to Enabled, it might take up to
- * thirty minutes before the data transfer rates to the bucket increase.</p> <p>
- * The name of the bucket used for Transfer Acceleration must be DNS-compliant and
- * must not contain periods (".").</p> <p> For more information about transfer
- * acceleration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
- * Acceleration</a>.</p> <p>The following operations are related to
- * <code>PutBucketAccelerateConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAccelerateConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketAccelerateConfigurationOutcome PutBucketAccelerateConfiguration(const Model::PutBucketAccelerateConfigurationRequest& request) const;
- /**
- * <p>Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer
- * Acceleration is a bucket-level feature that enables you to perform faster data
- * transfers to Amazon S3.</p> <p> To use this operation, you must have permission
- * to perform the s3:PutAccelerateConfiguration action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> The Transfer
- * Acceleration state of a bucket can be set to one of the following two
- * values:</p> <ul> <li> <p> Enabled – Enables accelerated data transfers to the
- * bucket.</p> </li> <li> <p> Suspended – Disables accelerated data transfers to
- * the bucket.</p> </li> </ul> <p>The <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a>
- * action returns the transfer acceleration state of a bucket.</p> <p>After setting
- * the Transfer Acceleration state of a bucket to Enabled, it might take up to
- * thirty minutes before the data transfer rates to the bucket increase.</p> <p>
- * The name of the bucket used for Transfer Acceleration must be DNS-compliant and
- * must not contain periods (".").</p> <p> For more information about transfer
- * acceleration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
- * Acceleration</a>.</p> <p>The following operations are related to
- * <code>PutBucketAccelerateConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAccelerateConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketAccelerateConfigurationOutcomeCallable PutBucketAccelerateConfigurationCallable(const Model::PutBucketAccelerateConfigurationRequest& request) const;
- /**
- * <p>Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer
- * Acceleration is a bucket-level feature that enables you to perform faster data
- * transfers to Amazon S3.</p> <p> To use this operation, you must have permission
- * to perform the s3:PutAccelerateConfiguration action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> The Transfer
- * Acceleration state of a bucket can be set to one of the following two
- * values:</p> <ul> <li> <p> Enabled – Enables accelerated data transfers to the
- * bucket.</p> </li> <li> <p> Suspended – Disables accelerated data transfers to
- * the bucket.</p> </li> </ul> <p>The <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a>
- * action returns the transfer acceleration state of a bucket.</p> <p>After setting
- * the Transfer Acceleration state of a bucket to Enabled, it might take up to
- * thirty minutes before the data transfer rates to the bucket increase.</p> <p>
- * The name of the bucket used for Transfer Acceleration must be DNS-compliant and
- * must not contain periods (".").</p> <p> For more information about transfer
- * acceleration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer
- * Acceleration</a>.</p> <p>The following operations are related to
- * <code>PutBucketAccelerateConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAccelerateConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketAccelerateConfigurationAsync(const Model::PutBucketAccelerateConfigurationRequest& request, const PutBucketAccelerateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Sets the permissions on an existing bucket using access control lists (ACL).
- * For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
- * ACLs</a>. To set the ACL of a bucket, you must have <code>WRITE_ACP</code>
- * permission.</p> <p>You can use one of the following two ways to set a bucket's
- * permissions:</p> <ul> <li> <p>Specify the ACL in the request body</p> </li> <li>
- * <p>Specify permissions using request headers</p> </li> </ul> <p>You
- * cannot specify access permission using both the body and the request
- * headers.</p> <p>Depending on your application needs, you may choose to
- * set the ACL on a bucket using either the request body or the headers. For
- * example, if you have an existing application that updates a bucket ACL using the
- * request body, then you can continue to use that approach.</p> <p> <b>Access
- * Permissions</b> </p> <p>You can set access permissions using one of the
- * following methods:</p> <ul> <li> <p>Specify a canned ACL with the
- * <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined
- * ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of
- * grantees and permissions. Specify the canned ACL name as the value of
- * <code>x-amz-acl</code>. If you use this header, you cannot use other access
- * control-specific headers in your request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
- * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
- * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
- * headers. When using these headers, you specify explicit access permissions and
- * grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If
- * you use these ACL-specific headers, you cannot use the <code>x-amz-acl</code>
- * header to set a canned ACL. These parameters map to the set of permissions that
- * Amazon S3 supports in an ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a>.</p> <p>You specify each grantee as a type=value
- * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
- * – if the value specified is the canonical user ID of an AWS account</p> </li>
- * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
- * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
- * the email address of an AWS account</p> <p>Using email addresses to
- * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
- * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
- * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
- * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
- * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
- * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
- * example, the following <code>x-amz-grant-write</code> header grants create,
- * overwrite, and delete objects permission to LogDelivery group predefined by
- * Amazon S3 and two AWS accounts identified by their email addresses.</p> <p>
- * <code>x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery",
- * id="111122223333", id="555566667777" </code> </p> </li> </ul> <p>You can use
- * either a canned ACL or specify access permissions explicitly. You cannot do
- * both.</p> <p> <b>Grantee Values</b> </p> <p>You can specify the person (grantee)
- * to whom you're assigning access rights (using request elements) in the following
- * ways:</p> <ul> <li> <p>By the person's ID:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName>
- * </Grantee></code> </p> <p>DisplayName is optional and ignored in the
- * request</p> </li> <li> <p>By URI:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee></code>
- * </p> </li> <li> <p>By Email address:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee></code>
- * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
- * Object acl request, appears as the CanonicalUser. </p> <p>Using email
- * addresses to specify a grantee is only supported in the following AWS Regions:
- * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
- * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
- * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
- * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
- * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
- * Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p
- * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAcl">AWS API
- * Reference</a></p>
- */
- virtual Model::PutBucketAclOutcome PutBucketAcl(const Model::PutBucketAclRequest& request) const;
- /**
- * <p>Sets the permissions on an existing bucket using access control lists (ACL).
- * For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
- * ACLs</a>. To set the ACL of a bucket, you must have <code>WRITE_ACP</code>
- * permission.</p> <p>You can use one of the following two ways to set a bucket's
- * permissions:</p> <ul> <li> <p>Specify the ACL in the request body</p> </li> <li>
- * <p>Specify permissions using request headers</p> </li> </ul> <p>You
- * cannot specify access permission using both the body and the request
- * headers.</p> <p>Depending on your application needs, you may choose to
- * set the ACL on a bucket using either the request body or the headers. For
- * example, if you have an existing application that updates a bucket ACL using the
- * request body, then you can continue to use that approach.</p> <p> <b>Access
- * Permissions</b> </p> <p>You can set access permissions using one of the
- * following methods:</p> <ul> <li> <p>Specify a canned ACL with the
- * <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined
- * ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of
- * grantees and permissions. Specify the canned ACL name as the value of
- * <code>x-amz-acl</code>. If you use this header, you cannot use other access
- * control-specific headers in your request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
- * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
- * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
- * headers. When using these headers, you specify explicit access permissions and
- * grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If
- * you use these ACL-specific headers, you cannot use the <code>x-amz-acl</code>
- * header to set a canned ACL. These parameters map to the set of permissions that
- * Amazon S3 supports in an ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a>.</p> <p>You specify each grantee as a type=value
- * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
- * – if the value specified is the canonical user ID of an AWS account</p> </li>
- * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
- * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
- * the email address of an AWS account</p> <p>Using email addresses to
- * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
- * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
- * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
- * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
- * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
- * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
- * example, the following <code>x-amz-grant-write</code> header grants create,
- * overwrite, and delete objects permission to LogDelivery group predefined by
- * Amazon S3 and two AWS accounts identified by their email addresses.</p> <p>
- * <code>x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery",
- * id="111122223333", id="555566667777" </code> </p> </li> </ul> <p>You can use
- * either a canned ACL or specify access permissions explicitly. You cannot do
- * both.</p> <p> <b>Grantee Values</b> </p> <p>You can specify the person (grantee)
- * to whom you're assigning access rights (using request elements) in the following
- * ways:</p> <ul> <li> <p>By the person's ID:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName>
- * </Grantee></code> </p> <p>DisplayName is optional and ignored in the
- * request</p> </li> <li> <p>By URI:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee></code>
- * </p> </li> <li> <p>By Email address:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee></code>
- * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
- * Object acl request, appears as the CanonicalUser. </p> <p>Using email
- * addresses to specify a grantee is only supported in the following AWS Regions:
- * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
- * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
- * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
- * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
- * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
- * Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p
- * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAcl">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketAclOutcomeCallable PutBucketAclCallable(const Model::PutBucketAclRequest& request) const;
- /**
- * <p>Sets the permissions on an existing bucket using access control lists (ACL).
- * For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
- * ACLs</a>. To set the ACL of a bucket, you must have <code>WRITE_ACP</code>
- * permission.</p> <p>You can use one of the following two ways to set a bucket's
- * permissions:</p> <ul> <li> <p>Specify the ACL in the request body</p> </li> <li>
- * <p>Specify permissions using request headers</p> </li> </ul> <p>You
- * cannot specify access permission using both the body and the request
- * headers.</p> <p>Depending on your application needs, you may choose to
- * set the ACL on a bucket using either the request body or the headers. For
- * example, if you have an existing application that updates a bucket ACL using the
- * request body, then you can continue to use that approach.</p> <p> <b>Access
- * Permissions</b> </p> <p>You can set access permissions using one of the
- * following methods:</p> <ul> <li> <p>Specify a canned ACL with the
- * <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined
- * ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined set of
- * grantees and permissions. Specify the canned ACL name as the value of
- * <code>x-amz-acl</code>. If you use this header, you cannot use other access
- * control-specific headers in your request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
- * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
- * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
- * headers. When using these headers, you specify explicit access permissions and
- * grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If
- * you use these ACL-specific headers, you cannot use the <code>x-amz-acl</code>
- * header to set a canned ACL. These parameters map to the set of permissions that
- * Amazon S3 supports in an ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a>.</p> <p>You specify each grantee as a type=value
- * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
- * – if the value specified is the canonical user ID of an AWS account</p> </li>
- * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
- * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
- * the email address of an AWS account</p> <p>Using email addresses to
- * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
- * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
- * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
- * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
- * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
- * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
- * example, the following <code>x-amz-grant-write</code> header grants create,
- * overwrite, and delete objects permission to LogDelivery group predefined by
- * Amazon S3 and two AWS accounts identified by their email addresses.</p> <p>
- * <code>x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery",
- * id="111122223333", id="555566667777" </code> </p> </li> </ul> <p>You can use
- * either a canned ACL or specify access permissions explicitly. You cannot do
- * both.</p> <p> <b>Grantee Values</b> </p> <p>You can specify the person (grantee)
- * to whom you're assigning access rights (using request elements) in the following
- * ways:</p> <ul> <li> <p>By the person's ID:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName>
- * </Grantee></code> </p> <p>DisplayName is optional and ignored in the
- * request</p> </li> <li> <p>By URI:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee></code>
- * </p> </li> <li> <p>By Email address:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee></code>
- * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
- * Object acl request, appears as the CanonicalUser. </p> <p>Using email
- * addresses to specify a grantee is only supported in the following AWS Regions:
- * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
- * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
- * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
- * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
- * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
- * Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p
- * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAcl">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketAclAsync(const Model::PutBucketAclRequest& request, const PutBucketAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Sets an analytics configuration for the bucket (specified by the analytics
- * configuration ID). You can have up to 1,000 analytics configurations per
- * bucket.</p> <p>You can choose to have storage class analysis export analysis
- * reports sent to a comma-separated values (CSV) flat file. See the
- * <code>DataExport</code> request element. Reports are updated daily and are based
- * on the object filters that you configure. When selecting data export, you
- * specify a destination bucket and an optional destination prefix where the file
- * is written. You can export the data to a destination bucket in a different
- * account. However, the destination bucket must be in the same Region as the
- * bucket that you are making the PUT analytics configuration to. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
- * S3 Analytics – Storage Class Analysis</a>. </p> <p>You must create a
- * bucket policy on the destination bucket where the exported file is written to
- * grant permissions to Amazon S3 to write objects to the bucket. For an example
- * policy, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9">Granting
- * Permissions for Amazon S3 Inventory and Storage Class Analysis</a>.</p>
- * <p>To use this operation, you must have permissions to perform the
- * <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p class="title">
- * <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>HTTP Error: HTTP 400 Bad
- * Request</i> </p> </li> <li> <p> <i>Code: InvalidArgument</i> </p> </li> <li> <p>
- * <i>Cause: Invalid argument.</i> </p> </li> </ul> </li> <li> <ul> <li> <p>
- * <i>HTTP Error: HTTP 400 Bad Request</i> </p> </li> <li> <p> <i>Code:
- * TooManyConfigurations</i> </p> </li> <li> <p> <i>Cause: You are attempting to
- * create a new configuration but have already reached the 1,000-configuration
- * limit.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>HTTP Error: HTTP 403
- * Forbidden</i> </p> </li> <li> <p> <i>Code: AccessDenied</i> </p> </li> <li> <p>
- * <i>Cause: You are not the owner of the specified bucket, or you do not have the
- * s3:PutAnalyticsConfiguration bucket permission to set the configuration on the
- * bucket.</i> </p> </li> </ul> </li> </ul> <p class="title"> <b>Related
- * Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAnalyticsConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketAnalyticsConfigurationOutcome PutBucketAnalyticsConfiguration(const Model::PutBucketAnalyticsConfigurationRequest& request) const;
- /**
- * <p>Sets an analytics configuration for the bucket (specified by the analytics
- * configuration ID). You can have up to 1,000 analytics configurations per
- * bucket.</p> <p>You can choose to have storage class analysis export analysis
- * reports sent to a comma-separated values (CSV) flat file. See the
- * <code>DataExport</code> request element. Reports are updated daily and are based
- * on the object filters that you configure. When selecting data export, you
- * specify a destination bucket and an optional destination prefix where the file
- * is written. You can export the data to a destination bucket in a different
- * account. However, the destination bucket must be in the same Region as the
- * bucket that you are making the PUT analytics configuration to. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
- * S3 Analytics – Storage Class Analysis</a>. </p> <p>You must create a
- * bucket policy on the destination bucket where the exported file is written to
- * grant permissions to Amazon S3 to write objects to the bucket. For an example
- * policy, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9">Granting
- * Permissions for Amazon S3 Inventory and Storage Class Analysis</a>.</p>
- * <p>To use this operation, you must have permissions to perform the
- * <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p class="title">
- * <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>HTTP Error: HTTP 400 Bad
- * Request</i> </p> </li> <li> <p> <i>Code: InvalidArgument</i> </p> </li> <li> <p>
- * <i>Cause: Invalid argument.</i> </p> </li> </ul> </li> <li> <ul> <li> <p>
- * <i>HTTP Error: HTTP 400 Bad Request</i> </p> </li> <li> <p> <i>Code:
- * TooManyConfigurations</i> </p> </li> <li> <p> <i>Cause: You are attempting to
- * create a new configuration but have already reached the 1,000-configuration
- * limit.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>HTTP Error: HTTP 403
- * Forbidden</i> </p> </li> <li> <p> <i>Code: AccessDenied</i> </p> </li> <li> <p>
- * <i>Cause: You are not the owner of the specified bucket, or you do not have the
- * s3:PutAnalyticsConfiguration bucket permission to set the configuration on the
- * bucket.</i> </p> </li> </ul> </li> </ul> <p class="title"> <b>Related
- * Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAnalyticsConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketAnalyticsConfigurationOutcomeCallable PutBucketAnalyticsConfigurationCallable(const Model::PutBucketAnalyticsConfigurationRequest& request) const;
- /**
- * <p>Sets an analytics configuration for the bucket (specified by the analytics
- * configuration ID). You can have up to 1,000 analytics configurations per
- * bucket.</p> <p>You can choose to have storage class analysis export analysis
- * reports sent to a comma-separated values (CSV) flat file. See the
- * <code>DataExport</code> request element. Reports are updated daily and are based
- * on the object filters that you configure. When selecting data export, you
- * specify a destination bucket and an optional destination prefix where the file
- * is written. You can export the data to a destination bucket in a different
- * account. However, the destination bucket must be in the same Region as the
- * bucket that you are making the PUT analytics configuration to. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon
- * S3 Analytics – Storage Class Analysis</a>. </p> <p>You must create a
- * bucket policy on the destination bucket where the exported file is written to
- * grant permissions to Amazon S3 to write objects to the bucket. For an example
- * policy, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9">Granting
- * Permissions for Amazon S3 Inventory and Storage Class Analysis</a>.</p>
- * <p>To use this operation, you must have permissions to perform the
- * <code>s3:PutAnalyticsConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p class="title">
- * <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>HTTP Error: HTTP 400 Bad
- * Request</i> </p> </li> <li> <p> <i>Code: InvalidArgument</i> </p> </li> <li> <p>
- * <i>Cause: Invalid argument.</i> </p> </li> </ul> </li> <li> <ul> <li> <p>
- * <i>HTTP Error: HTTP 400 Bad Request</i> </p> </li> <li> <p> <i>Code:
- * TooManyConfigurations</i> </p> </li> <li> <p> <i>Cause: You are attempting to
- * create a new configuration but have already reached the 1,000-configuration
- * limit.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>HTTP Error: HTTP 403
- * Forbidden</i> </p> </li> <li> <p> <i>Code: AccessDenied</i> </p> </li> <li> <p>
- * <i>Cause: You are not the owner of the specified bucket, or you do not have the
- * s3:PutAnalyticsConfiguration bucket permission to set the configuration on the
- * bucket.</i> </p> </li> </ul> </li> </ul> <p class="title"> <b>Related
- * Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAnalyticsConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketAnalyticsConfigurationAsync(const Model::PutBucketAnalyticsConfigurationRequest& request, const PutBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Sets the <code>cors</code> configuration for your bucket. If the
- * configuration exists, Amazon S3 replaces it.</p> <p>To use this operation, you
- * must be allowed to perform the <code>s3:PutBucketCORS</code> action. By default,
- * the bucket owner has this permission and can grant it to others.</p> <p>You set
- * this configuration on a bucket so that the bucket can service cross-origin
- * requests. For example, you might want to enable a request whose origin is
- * <code>http://www.example.com</code> to access your Amazon S3 bucket at
- * <code>my.example.bucket.com</code> by using the browser's
- * <code>XMLHttpRequest</code> capability.</p> <p>To enable cross-origin resource
- * sharing (CORS) on a bucket, you add the <code>cors</code> subresource to the
- * bucket. The <code>cors</code> subresource is an XML document in which you
- * configure rules that identify origins and the HTTP methods that can be executed
- * on your bucket. The document is limited to 64 KB in size. </p> <p>When Amazon S3
- * receives a cross-origin request (or a pre-flight OPTIONS request) against a
- * bucket, it evaluates the <code>cors</code> configuration on the bucket and uses
- * the first <code>CORSRule</code> rule that matches the incoming browser request
- * to enable a cross-origin request. For a rule to match, the following conditions
- * must be met:</p> <ul> <li> <p>The request's <code>Origin</code> header must
- * match <code>AllowedOrigin</code> elements.</p> </li> <li> <p>The request method
- * (for example, GET, PUT, HEAD, and so on) or the
- * <code>Access-Control-Request-Method</code> header in case of a pre-flight
- * <code>OPTIONS</code> request must be one of the <code>AllowedMethod</code>
- * elements. </p> </li> <li> <p>Every header specified in the
- * <code>Access-Control-Request-Headers</code> request header of a pre-flight
- * request must match an <code>AllowedHeader</code> element. </p> </li> </ul> <p>
- * For more information about CORS, go to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling
- * Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.</p> <p
- * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html">GetBucketCors</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketCors">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketCorsOutcome PutBucketCors(const Model::PutBucketCorsRequest& request) const;
- /**
- * <p>Sets the <code>cors</code> configuration for your bucket. If the
- * configuration exists, Amazon S3 replaces it.</p> <p>To use this operation, you
- * must be allowed to perform the <code>s3:PutBucketCORS</code> action. By default,
- * the bucket owner has this permission and can grant it to others.</p> <p>You set
- * this configuration on a bucket so that the bucket can service cross-origin
- * requests. For example, you might want to enable a request whose origin is
- * <code>http://www.example.com</code> to access your Amazon S3 bucket at
- * <code>my.example.bucket.com</code> by using the browser's
- * <code>XMLHttpRequest</code> capability.</p> <p>To enable cross-origin resource
- * sharing (CORS) on a bucket, you add the <code>cors</code> subresource to the
- * bucket. The <code>cors</code> subresource is an XML document in which you
- * configure rules that identify origins and the HTTP methods that can be executed
- * on your bucket. The document is limited to 64 KB in size. </p> <p>When Amazon S3
- * receives a cross-origin request (or a pre-flight OPTIONS request) against a
- * bucket, it evaluates the <code>cors</code> configuration on the bucket and uses
- * the first <code>CORSRule</code> rule that matches the incoming browser request
- * to enable a cross-origin request. For a rule to match, the following conditions
- * must be met:</p> <ul> <li> <p>The request's <code>Origin</code> header must
- * match <code>AllowedOrigin</code> elements.</p> </li> <li> <p>The request method
- * (for example, GET, PUT, HEAD, and so on) or the
- * <code>Access-Control-Request-Method</code> header in case of a pre-flight
- * <code>OPTIONS</code> request must be one of the <code>AllowedMethod</code>
- * elements. </p> </li> <li> <p>Every header specified in the
- * <code>Access-Control-Request-Headers</code> request header of a pre-flight
- * request must match an <code>AllowedHeader</code> element. </p> </li> </ul> <p>
- * For more information about CORS, go to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling
- * Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.</p> <p
- * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html">GetBucketCors</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketCors">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketCorsOutcomeCallable PutBucketCorsCallable(const Model::PutBucketCorsRequest& request) const;
- /**
- * <p>Sets the <code>cors</code> configuration for your bucket. If the
- * configuration exists, Amazon S3 replaces it.</p> <p>To use this operation, you
- * must be allowed to perform the <code>s3:PutBucketCORS</code> action. By default,
- * the bucket owner has this permission and can grant it to others.</p> <p>You set
- * this configuration on a bucket so that the bucket can service cross-origin
- * requests. For example, you might want to enable a request whose origin is
- * <code>http://www.example.com</code> to access your Amazon S3 bucket at
- * <code>my.example.bucket.com</code> by using the browser's
- * <code>XMLHttpRequest</code> capability.</p> <p>To enable cross-origin resource
- * sharing (CORS) on a bucket, you add the <code>cors</code> subresource to the
- * bucket. The <code>cors</code> subresource is an XML document in which you
- * configure rules that identify origins and the HTTP methods that can be executed
- * on your bucket. The document is limited to 64 KB in size. </p> <p>When Amazon S3
- * receives a cross-origin request (or a pre-flight OPTIONS request) against a
- * bucket, it evaluates the <code>cors</code> configuration on the bucket and uses
- * the first <code>CORSRule</code> rule that matches the incoming browser request
- * to enable a cross-origin request. For a rule to match, the following conditions
- * must be met:</p> <ul> <li> <p>The request's <code>Origin</code> header must
- * match <code>AllowedOrigin</code> elements.</p> </li> <li> <p>The request method
- * (for example, GET, PUT, HEAD, and so on) or the
- * <code>Access-Control-Request-Method</code> header in case of a pre-flight
- * <code>OPTIONS</code> request must be one of the <code>AllowedMethod</code>
- * elements. </p> </li> <li> <p>Every header specified in the
- * <code>Access-Control-Request-Headers</code> request header of a pre-flight
- * request must match an <code>AllowedHeader</code> element. </p> </li> </ul> <p>
- * For more information about CORS, go to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling
- * Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.</p> <p
- * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html">GetBucketCors</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketCors">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketCorsAsync(const Model::PutBucketCorsRequest& request, const PutBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>This action uses the <code>encryption</code> subresource to configure default
- * encryption and Amazon S3 Bucket Key for an existing bucket.</p> <p>Default
- * encryption for a bucket can use server-side encryption with Amazon S3-managed
- * keys (SSE-S3) or AWS KMS customer master keys (SSE-KMS). If you specify default
- * encryption using SSE-KMS, you can also configure Amazon S3 Bucket Key. For
- * information about default encryption, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
- * S3 default bucket encryption</a> in the <i>Amazon S3 User Guide</i>. For more
- * information about S3 Bucket Keys, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
- * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p>This
- * action requires AWS Signature Version 4. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">
- * Authenticating Requests (AWS Signature Version 4)</a>. </p> <p>To
- * use this operation, you must have permissions to perform the
- * <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User Guide.
- * </p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketEncryption">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketEncryptionOutcome PutBucketEncryption(const Model::PutBucketEncryptionRequest& request) const;
- /**
- * <p>This action uses the <code>encryption</code> subresource to configure default
- * encryption and Amazon S3 Bucket Key for an existing bucket.</p> <p>Default
- * encryption for a bucket can use server-side encryption with Amazon S3-managed
- * keys (SSE-S3) or AWS KMS customer master keys (SSE-KMS). If you specify default
- * encryption using SSE-KMS, you can also configure Amazon S3 Bucket Key. For
- * information about default encryption, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
- * S3 default bucket encryption</a> in the <i>Amazon S3 User Guide</i>. For more
- * information about S3 Bucket Keys, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
- * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p>This
- * action requires AWS Signature Version 4. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">
- * Authenticating Requests (AWS Signature Version 4)</a>. </p> <p>To
- * use this operation, you must have permissions to perform the
- * <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User Guide.
- * </p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketEncryption">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketEncryptionOutcomeCallable PutBucketEncryptionCallable(const Model::PutBucketEncryptionRequest& request) const;
- /**
- * <p>This action uses the <code>encryption</code> subresource to configure default
- * encryption and Amazon S3 Bucket Key for an existing bucket.</p> <p>Default
- * encryption for a bucket can use server-side encryption with Amazon S3-managed
- * keys (SSE-S3) or AWS KMS customer master keys (SSE-KMS). If you specify default
- * encryption using SSE-KMS, you can also configure Amazon S3 Bucket Key. For
- * information about default encryption, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon
- * S3 default bucket encryption</a> in the <i>Amazon S3 User Guide</i>. For more
- * information about S3 Bucket Keys, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
- * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p>This
- * action requires AWS Signature Version 4. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">
- * Authenticating Requests (AWS Signature Version 4)</a>. </p> <p>To
- * use this operation, you must have permissions to perform the
- * <code>s3:PutEncryptionConfiguration</code> action. The bucket owner has this
- * permission by default. The bucket owner can grant this permission to others. For
- * more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User Guide.
- * </p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketEncryption">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketEncryptionAsync(const Model::PutBucketEncryptionRequest& request, const PutBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can
- * have up to 1,000 S3 Intelligent-Tiering configurations per bucket.</p> <p>The S3
- * Intelligent-Tiering storage class is designed to optimize storage costs by
- * automatically moving data to the most cost-effective storage access tier,
- * without additional operational overhead. S3 Intelligent-Tiering delivers
- * automatic cost savings by moving data between access tiers, when access patterns
- * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
- * larger than 128 KB that you plan to store for at least 30 days. If the size of
- * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
- * objects can be stored, but they are always charged at the frequent access tier
- * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
- * object before the end of the 30-day minimum storage duration period, you are
- * charged for 30 days. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
- * class for automatically optimizing frequently and infrequently accessed
- * objects</a>.</p> <p>Operations related to
- * <code>PutBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
- * </p> </li> </ul> <p>You only need S3 Intelligent-Tiering enabled on a
- * bucket if you want to automatically move objects stored in the S3
- * Intelligent-Tiering storage class to the Archive Access or Deep Archive Access
- * tier.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <p
- * class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul> <li> <p> <i>Code:</i>
- * InvalidArgument</p> </li> <li> <p> <i>Cause:</i> Invalid Argument</p> </li>
- * </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul>
- * <li> <p> <i>Code:</i> TooManyConfigurations</p> </li> <li> <p> <i>Cause:</i> You
- * are attempting to create a new configuration but have already reached the
- * 1,000-configuration limit. </p> </li> </ul> </li> <li> <p class="title"> <b>HTTP
- * 403 Forbidden Error</b> </p> <ul> <li> <p> <i>Code:</i> AccessDenied</p> </li>
- * <li> <p> <i>Cause:</i> You are not the owner of the specified bucket, or you do
- * not have the <code>s3:PutIntelligentTieringConfiguration</code> bucket
- * permission to set the configuration on the bucket. </p> </li> </ul> </li>
- * </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketIntelligentTieringConfigurationOutcome PutBucketIntelligentTieringConfiguration(const Model::PutBucketIntelligentTieringConfigurationRequest& request) const;
- /**
- * <p>Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can
- * have up to 1,000 S3 Intelligent-Tiering configurations per bucket.</p> <p>The S3
- * Intelligent-Tiering storage class is designed to optimize storage costs by
- * automatically moving data to the most cost-effective storage access tier,
- * without additional operational overhead. S3 Intelligent-Tiering delivers
- * automatic cost savings by moving data between access tiers, when access patterns
- * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
- * larger than 128 KB that you plan to store for at least 30 days. If the size of
- * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
- * objects can be stored, but they are always charged at the frequent access tier
- * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
- * object before the end of the 30-day minimum storage duration period, you are
- * charged for 30 days. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
- * class for automatically optimizing frequently and infrequently accessed
- * objects</a>.</p> <p>Operations related to
- * <code>PutBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
- * </p> </li> </ul> <p>You only need S3 Intelligent-Tiering enabled on a
- * bucket if you want to automatically move objects stored in the S3
- * Intelligent-Tiering storage class to the Archive Access or Deep Archive Access
- * tier.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <p
- * class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul> <li> <p> <i>Code:</i>
- * InvalidArgument</p> </li> <li> <p> <i>Cause:</i> Invalid Argument</p> </li>
- * </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul>
- * <li> <p> <i>Code:</i> TooManyConfigurations</p> </li> <li> <p> <i>Cause:</i> You
- * are attempting to create a new configuration but have already reached the
- * 1,000-configuration limit. </p> </li> </ul> </li> <li> <p class="title"> <b>HTTP
- * 403 Forbidden Error</b> </p> <ul> <li> <p> <i>Code:</i> AccessDenied</p> </li>
- * <li> <p> <i>Cause:</i> You are not the owner of the specified bucket, or you do
- * not have the <code>s3:PutIntelligentTieringConfiguration</code> bucket
- * permission to set the configuration on the bucket. </p> </li> </ul> </li>
- * </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketIntelligentTieringConfigurationOutcomeCallable PutBucketIntelligentTieringConfigurationCallable(const Model::PutBucketIntelligentTieringConfigurationRequest& request) const;
- /**
- * <p>Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can
- * have up to 1,000 S3 Intelligent-Tiering configurations per bucket.</p> <p>The S3
- * Intelligent-Tiering storage class is designed to optimize storage costs by
- * automatically moving data to the most cost-effective storage access tier,
- * without additional operational overhead. S3 Intelligent-Tiering delivers
- * automatic cost savings by moving data between access tiers, when access patterns
- * change.</p> <p>The S3 Intelligent-Tiering storage class is suitable for objects
- * larger than 128 KB that you plan to store for at least 30 days. If the size of
- * an object is less than 128 KB, it is not eligible for auto-tiering. Smaller
- * objects can be stored, but they are always charged at the frequent access tier
- * rates in the S3 Intelligent-Tiering storage class. </p> <p>If you delete an
- * object before the end of the 30-day minimum storage duration period, you are
- * charged for 30 days. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage
- * class for automatically optimizing frequently and infrequently accessed
- * objects</a>.</p> <p>Operations related to
- * <code>PutBucketIntelligentTieringConfiguration</code> include: </p> <ul> <li>
- * <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html">ListBucketIntelligentTieringConfigurations</a>
- * </p> </li> </ul> <p>You only need S3 Intelligent-Tiering enabled on a
- * bucket if you want to automatically move objects stored in the S3
- * Intelligent-Tiering storage class to the Archive Access or Deep Archive Access
- * tier.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <p
- * class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul> <li> <p> <i>Code:</i>
- * InvalidArgument</p> </li> <li> <p> <i>Cause:</i> Invalid Argument</p> </li>
- * </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul>
- * <li> <p> <i>Code:</i> TooManyConfigurations</p> </li> <li> <p> <i>Cause:</i> You
- * are attempting to create a new configuration but have already reached the
- * 1,000-configuration limit. </p> </li> </ul> </li> <li> <p class="title"> <b>HTTP
- * 403 Forbidden Error</b> </p> <ul> <li> <p> <i>Code:</i> AccessDenied</p> </li>
- * <li> <p> <i>Cause:</i> You are not the owner of the specified bucket, or you do
- * not have the <code>s3:PutIntelligentTieringConfiguration</code> bucket
- * permission to set the configuration on the bucket. </p> </li> </ul> </li>
- * </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketIntelligentTieringConfigurationAsync(const Model::PutBucketIntelligentTieringConfigurationRequest& request, const PutBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>This implementation of the <code>PUT</code> action adds an inventory
- * configuration (identified by the inventory ID) to the bucket. You can have up to
- * 1,000 inventory configurations per bucket. </p> <p>Amazon S3 inventory generates
- * inventories of the objects in the bucket on a daily or weekly basis, and the
- * results are published to a flat file. The bucket that is inventoried is called
- * the <i>source</i> bucket, and the bucket where the inventory flat file is stored
- * is called the <i>destination</i> bucket. The <i>destination</i> bucket must be
- * in the same AWS Region as the <i>source</i> bucket. </p> <p>When you configure
- * an inventory for a <i>source</i> bucket, you specify the <i>destination</i>
- * bucket where you want the inventory to be stored, and whether to generate the
- * inventory daily or weekly. You can also configure what object metadata to
- * include and whether to inventory all object versions or only current versions.
- * For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
- * S3 Inventory</a> in the Amazon S3 User Guide.</p> <p>You must create
- * a bucket policy on the <i>destination</i> bucket to grant permissions to Amazon
- * S3 to write objects to the bucket in the defined location. For an example
- * policy, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9">
- * Granting Permissions for Amazon S3 Inventory and Storage Class Analysis</a>.</p>
- * <p>To use this operation, you must have permissions to perform the
- * <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this
- * permission by default and can grant this permission to others. For more
- * information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User
- * Guide.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <p
- * class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul> <li> <p> <i>Code:</i>
- * InvalidArgument</p> </li> <li> <p> <i>Cause:</i> Invalid Argument</p> </li>
- * </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul>
- * <li> <p> <i>Code:</i> TooManyConfigurations</p> </li> <li> <p> <i>Cause:</i> You
- * are attempting to create a new configuration but have already reached the
- * 1,000-configuration limit. </p> </li> </ul> </li> <li> <p class="title"> <b>HTTP
- * 403 Forbidden Error</b> </p> <ul> <li> <p> <i>Code:</i> AccessDenied</p> </li>
- * <li> <p> <i>Cause:</i> You are not the owner of the specified bucket, or you do
- * not have the <code>s3:PutInventoryConfiguration</code> bucket permission to set
- * the configuration on the bucket. </p> </li> </ul> </li> </ul> <p class="title">
- * <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketInventoryConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketInventoryConfigurationOutcome PutBucketInventoryConfiguration(const Model::PutBucketInventoryConfigurationRequest& request) const;
- /**
- * <p>This implementation of the <code>PUT</code> action adds an inventory
- * configuration (identified by the inventory ID) to the bucket. You can have up to
- * 1,000 inventory configurations per bucket. </p> <p>Amazon S3 inventory generates
- * inventories of the objects in the bucket on a daily or weekly basis, and the
- * results are published to a flat file. The bucket that is inventoried is called
- * the <i>source</i> bucket, and the bucket where the inventory flat file is stored
- * is called the <i>destination</i> bucket. The <i>destination</i> bucket must be
- * in the same AWS Region as the <i>source</i> bucket. </p> <p>When you configure
- * an inventory for a <i>source</i> bucket, you specify the <i>destination</i>
- * bucket where you want the inventory to be stored, and whether to generate the
- * inventory daily or weekly. You can also configure what object metadata to
- * include and whether to inventory all object versions or only current versions.
- * For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
- * S3 Inventory</a> in the Amazon S3 User Guide.</p> <p>You must create
- * a bucket policy on the <i>destination</i> bucket to grant permissions to Amazon
- * S3 to write objects to the bucket in the defined location. For an example
- * policy, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9">
- * Granting Permissions for Amazon S3 Inventory and Storage Class Analysis</a>.</p>
- * <p>To use this operation, you must have permissions to perform the
- * <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this
- * permission by default and can grant this permission to others. For more
- * information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User
- * Guide.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <p
- * class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul> <li> <p> <i>Code:</i>
- * InvalidArgument</p> </li> <li> <p> <i>Cause:</i> Invalid Argument</p> </li>
- * </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul>
- * <li> <p> <i>Code:</i> TooManyConfigurations</p> </li> <li> <p> <i>Cause:</i> You
- * are attempting to create a new configuration but have already reached the
- * 1,000-configuration limit. </p> </li> </ul> </li> <li> <p class="title"> <b>HTTP
- * 403 Forbidden Error</b> </p> <ul> <li> <p> <i>Code:</i> AccessDenied</p> </li>
- * <li> <p> <i>Cause:</i> You are not the owner of the specified bucket, or you do
- * not have the <code>s3:PutInventoryConfiguration</code> bucket permission to set
- * the configuration on the bucket. </p> </li> </ul> </li> </ul> <p class="title">
- * <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketInventoryConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketInventoryConfigurationOutcomeCallable PutBucketInventoryConfigurationCallable(const Model::PutBucketInventoryConfigurationRequest& request) const;
- /**
- * <p>This implementation of the <code>PUT</code> action adds an inventory
- * configuration (identified by the inventory ID) to the bucket. You can have up to
- * 1,000 inventory configurations per bucket. </p> <p>Amazon S3 inventory generates
- * inventories of the objects in the bucket on a daily or weekly basis, and the
- * results are published to a flat file. The bucket that is inventoried is called
- * the <i>source</i> bucket, and the bucket where the inventory flat file is stored
- * is called the <i>destination</i> bucket. The <i>destination</i> bucket must be
- * in the same AWS Region as the <i>source</i> bucket. </p> <p>When you configure
- * an inventory for a <i>source</i> bucket, you specify the <i>destination</i>
- * bucket where you want the inventory to be stored, and whether to generate the
- * inventory daily or weekly. You can also configure what object metadata to
- * include and whether to inventory all object versions or only current versions.
- * For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon
- * S3 Inventory</a> in the Amazon S3 User Guide.</p> <p>You must create
- * a bucket policy on the <i>destination</i> bucket to grant permissions to Amazon
- * S3 to write objects to the bucket in the defined location. For an example
- * policy, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9">
- * Granting Permissions for Amazon S3 Inventory and Storage Class Analysis</a>.</p>
- * <p>To use this operation, you must have permissions to perform the
- * <code>s3:PutInventoryConfiguration</code> action. The bucket owner has this
- * permission by default and can grant this permission to others. For more
- * information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a> in the Amazon S3 User
- * Guide.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <p
- * class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul> <li> <p> <i>Code:</i>
- * InvalidArgument</p> </li> <li> <p> <i>Cause:</i> Invalid Argument</p> </li>
- * </ul> </li> <li> <p class="title"> <b>HTTP 400 Bad Request Error</b> </p> <ul>
- * <li> <p> <i>Code:</i> TooManyConfigurations</p> </li> <li> <p> <i>Cause:</i> You
- * are attempting to create a new configuration but have already reached the
- * 1,000-configuration limit. </p> </li> </ul> </li> <li> <p class="title"> <b>HTTP
- * 403 Forbidden Error</b> </p> <ul> <li> <p> <i>Code:</i> AccessDenied</p> </li>
- * <li> <p> <i>Cause:</i> You are not the owner of the specified bucket, or you do
- * not have the <code>s3:PutInventoryConfiguration</code> bucket permission to set
- * the configuration on the bucket. </p> </li> </ul> </li> </ul> <p class="title">
- * <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketInventoryConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketInventoryConfigurationAsync(const Model::PutBucketInventoryConfigurationRequest& request, const PutBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Creates a new lifecycle configuration for the bucket or replaces an existing
- * lifecycle configuration. For information about lifecycle configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>Bucket
- * lifecycle configuration now supports specifying a lifecycle rule using an object
- * key name prefix, one or more object tags, or a combination of both. Accordingly,
- * this section describes the latest API. The previous version of the API supported
- * filtering based only on an object key name prefix, which is supported for
- * backward compatibility. For the related API description, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>.</p>
- * <p> <b>Rules</b> </p> <p>You specify the lifecycle configuration in your
- * request body. The lifecycle configuration is specified as XML consisting of one
- * or more rules. Each rule consists of the following:</p> <ul> <li> <p>Filter
- * identifying a subset of objects to which the rule applies. The filter can be
- * based on a key name prefix, object tags, or a combination of both.</p> </li>
- * <li> <p>Status whether the rule is in effect.</p> </li> <li> <p>One or more
- * lifecycle transition and expiration actions that you want Amazon S3 to perform
- * on the objects identified by the filter. If the state of your bucket is
- * versioning-enabled or versioning-suspended, you can have many versions of the
- * same object (one current version and zero or more noncurrent versions). Amazon
- * S3 provides predefined actions that you can specify for current and noncurrent
- * object versions.</p> </li> </ul> <p>For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
- * Lifecycle Management</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html">Lifecycle
- * Configuration Elements</a>.</p> <p> <b>Permissions</b> </p> <p>By default, all
- * Amazon S3 resources are private, including buckets, objects, and related
- * subresources (for example, lifecycle configuration and website configuration).
- * Only the resource owner (that is, the AWS account that created it) can access
- * the resource. The resource owner can optionally grant access permissions to
- * others by writing an access policy. For this operation, a user must get the
- * s3:PutLifecycleConfiguration permission.</p> <p>You can also explicitly deny
- * permissions. Explicit deny also supersedes any other permissions. If you want to
- * block users or accounts from removing or deleting objects from your bucket, you
- * must deny them permissions for the following actions:</p> <ul> <li>
- * <p>s3:DeleteObject</p> </li> <li> <p>s3:DeleteObjectVersion</p> </li> <li>
- * <p>s3:PutLifecycleConfiguration</p> </li> </ul> <p>For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following are
- * related to <code>PutBucketLifecycleConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html">Examples
- * of Lifecycle Configuration</a> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketLifecycleConfigurationOutcome PutBucketLifecycleConfiguration(const Model::PutBucketLifecycleConfigurationRequest& request) const;
- /**
- * <p>Creates a new lifecycle configuration for the bucket or replaces an existing
- * lifecycle configuration. For information about lifecycle configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>Bucket
- * lifecycle configuration now supports specifying a lifecycle rule using an object
- * key name prefix, one or more object tags, or a combination of both. Accordingly,
- * this section describes the latest API. The previous version of the API supported
- * filtering based only on an object key name prefix, which is supported for
- * backward compatibility. For the related API description, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>.</p>
- * <p> <b>Rules</b> </p> <p>You specify the lifecycle configuration in your
- * request body. The lifecycle configuration is specified as XML consisting of one
- * or more rules. Each rule consists of the following:</p> <ul> <li> <p>Filter
- * identifying a subset of objects to which the rule applies. The filter can be
- * based on a key name prefix, object tags, or a combination of both.</p> </li>
- * <li> <p>Status whether the rule is in effect.</p> </li> <li> <p>One or more
- * lifecycle transition and expiration actions that you want Amazon S3 to perform
- * on the objects identified by the filter. If the state of your bucket is
- * versioning-enabled or versioning-suspended, you can have many versions of the
- * same object (one current version and zero or more noncurrent versions). Amazon
- * S3 provides predefined actions that you can specify for current and noncurrent
- * object versions.</p> </li> </ul> <p>For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
- * Lifecycle Management</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html">Lifecycle
- * Configuration Elements</a>.</p> <p> <b>Permissions</b> </p> <p>By default, all
- * Amazon S3 resources are private, including buckets, objects, and related
- * subresources (for example, lifecycle configuration and website configuration).
- * Only the resource owner (that is, the AWS account that created it) can access
- * the resource. The resource owner can optionally grant access permissions to
- * others by writing an access policy. For this operation, a user must get the
- * s3:PutLifecycleConfiguration permission.</p> <p>You can also explicitly deny
- * permissions. Explicit deny also supersedes any other permissions. If you want to
- * block users or accounts from removing or deleting objects from your bucket, you
- * must deny them permissions for the following actions:</p> <ul> <li>
- * <p>s3:DeleteObject</p> </li> <li> <p>s3:DeleteObjectVersion</p> </li> <li>
- * <p>s3:PutLifecycleConfiguration</p> </li> </ul> <p>For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following are
- * related to <code>PutBucketLifecycleConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html">Examples
- * of Lifecycle Configuration</a> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketLifecycleConfigurationOutcomeCallable PutBucketLifecycleConfigurationCallable(const Model::PutBucketLifecycleConfigurationRequest& request) const;
- /**
- * <p>Creates a new lifecycle configuration for the bucket or replaces an existing
- * lifecycle configuration. For information about lifecycle configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>Bucket
- * lifecycle configuration now supports specifying a lifecycle rule using an object
- * key name prefix, one or more object tags, or a combination of both. Accordingly,
- * this section describes the latest API. The previous version of the API supported
- * filtering based only on an object key name prefix, which is supported for
- * backward compatibility. For the related API description, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html">PutBucketLifecycle</a>.</p>
- * <p> <b>Rules</b> </p> <p>You specify the lifecycle configuration in your
- * request body. The lifecycle configuration is specified as XML consisting of one
- * or more rules. Each rule consists of the following:</p> <ul> <li> <p>Filter
- * identifying a subset of objects to which the rule applies. The filter can be
- * based on a key name prefix, object tags, or a combination of both.</p> </li>
- * <li> <p>Status whether the rule is in effect.</p> </li> <li> <p>One or more
- * lifecycle transition and expiration actions that you want Amazon S3 to perform
- * on the objects identified by the filter. If the state of your bucket is
- * versioning-enabled or versioning-suspended, you can have many versions of the
- * same object (one current version and zero or more noncurrent versions). Amazon
- * S3 provides predefined actions that you can specify for current and noncurrent
- * object versions.</p> </li> </ul> <p>For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
- * Lifecycle Management</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html">Lifecycle
- * Configuration Elements</a>.</p> <p> <b>Permissions</b> </p> <p>By default, all
- * Amazon S3 resources are private, including buckets, objects, and related
- * subresources (for example, lifecycle configuration and website configuration).
- * Only the resource owner (that is, the AWS account that created it) can access
- * the resource. The resource owner can optionally grant access permissions to
- * others by writing an access policy. For this operation, a user must get the
- * s3:PutLifecycleConfiguration permission.</p> <p>You can also explicitly deny
- * permissions. Explicit deny also supersedes any other permissions. If you want to
- * block users or accounts from removing or deleting objects from your bucket, you
- * must deny them permissions for the following actions:</p> <ul> <li>
- * <p>s3:DeleteObject</p> </li> <li> <p>s3:DeleteObjectVersion</p> </li> <li>
- * <p>s3:PutLifecycleConfiguration</p> </li> </ul> <p>For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>The following are
- * related to <code>PutBucketLifecycleConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html">Examples
- * of Lifecycle Configuration</a> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketLifecycleConfigurationAsync(const Model::PutBucketLifecycleConfigurationRequest& request, const PutBucketLifecycleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Set the logging parameters for a bucket and to specify permissions for who
- * can view and modify the logging parameters. All logs are saved to buckets in the
- * same AWS Region as the source bucket. To set the logging status of a bucket, you
- * must be the bucket owner.</p> <p>The bucket owner is automatically granted
- * FULL_CONTROL to all logs. You use the <code>Grantee</code> request element to
- * grant access to other people. The <code>Permissions</code> request element
- * specifies the kind of access the grantee has to the logs.</p> <p> <b>Grantee
- * Values</b> </p> <p>You can specify the person (grantee) to whom you're assigning
- * access rights (using request elements) in the following ways:</p> <ul> <li>
- * <p>By the person's ID:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName>
- * </Grantee></code> </p> <p>DisplayName is optional and ignored in the
- * request.</p> </li> <li> <p>By Email address:</p> <p> <code> <Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress></Grantee></code>
- * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
- * Object acl request, appears as the CanonicalUser.</p> </li> <li> <p>By URI:</p>
- * <p> <code><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee></code>
- * </p> </li> </ul> <p>To enable logging, you use LoggingEnabled and its children
- * request elements. To disable logging, you use an empty BucketLoggingStatus
- * request element:</p> <p> <code><BucketLoggingStatus
- * xmlns="http://doc.s3.amazonaws.com/2006-03-01" /></code> </p> <p>For more
- * information about server access logging, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html">Server
- * Access Logging</a>. </p> <p>For more information about creating a bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>.
- * For more information about returning the logging status of a bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>.</p>
- * <p>The following operations are related to <code>PutBucketLogging</code>:</p>
- * <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLogging">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketLoggingOutcome PutBucketLogging(const Model::PutBucketLoggingRequest& request) const;
- /**
- * <p>Set the logging parameters for a bucket and to specify permissions for who
- * can view and modify the logging parameters. All logs are saved to buckets in the
- * same AWS Region as the source bucket. To set the logging status of a bucket, you
- * must be the bucket owner.</p> <p>The bucket owner is automatically granted
- * FULL_CONTROL to all logs. You use the <code>Grantee</code> request element to
- * grant access to other people. The <code>Permissions</code> request element
- * specifies the kind of access the grantee has to the logs.</p> <p> <b>Grantee
- * Values</b> </p> <p>You can specify the person (grantee) to whom you're assigning
- * access rights (using request elements) in the following ways:</p> <ul> <li>
- * <p>By the person's ID:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName>
- * </Grantee></code> </p> <p>DisplayName is optional and ignored in the
- * request.</p> </li> <li> <p>By Email address:</p> <p> <code> <Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress></Grantee></code>
- * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
- * Object acl request, appears as the CanonicalUser.</p> </li> <li> <p>By URI:</p>
- * <p> <code><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee></code>
- * </p> </li> </ul> <p>To enable logging, you use LoggingEnabled and its children
- * request elements. To disable logging, you use an empty BucketLoggingStatus
- * request element:</p> <p> <code><BucketLoggingStatus
- * xmlns="http://doc.s3.amazonaws.com/2006-03-01" /></code> </p> <p>For more
- * information about server access logging, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html">Server
- * Access Logging</a>. </p> <p>For more information about creating a bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>.
- * For more information about returning the logging status of a bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>.</p>
- * <p>The following operations are related to <code>PutBucketLogging</code>:</p>
- * <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLogging">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketLoggingOutcomeCallable PutBucketLoggingCallable(const Model::PutBucketLoggingRequest& request) const;
- /**
- * <p>Set the logging parameters for a bucket and to specify permissions for who
- * can view and modify the logging parameters. All logs are saved to buckets in the
- * same AWS Region as the source bucket. To set the logging status of a bucket, you
- * must be the bucket owner.</p> <p>The bucket owner is automatically granted
- * FULL_CONTROL to all logs. You use the <code>Grantee</code> request element to
- * grant access to other people. The <code>Permissions</code> request element
- * specifies the kind of access the grantee has to the logs.</p> <p> <b>Grantee
- * Values</b> </p> <p>You can specify the person (grantee) to whom you're assigning
- * access rights (using request elements) in the following ways:</p> <ul> <li>
- * <p>By the person's ID:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName>
- * </Grantee></code> </p> <p>DisplayName is optional and ignored in the
- * request.</p> </li> <li> <p>By Email address:</p> <p> <code> <Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress></Grantee></code>
- * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
- * Object acl request, appears as the CanonicalUser.</p> </li> <li> <p>By URI:</p>
- * <p> <code><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee></code>
- * </p> </li> </ul> <p>To enable logging, you use LoggingEnabled and its children
- * request elements. To disable logging, you use an empty BucketLoggingStatus
- * request element:</p> <p> <code><BucketLoggingStatus
- * xmlns="http://doc.s3.amazonaws.com/2006-03-01" /></code> </p> <p>For more
- * information about server access logging, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html">Server
- * Access Logging</a>. </p> <p>For more information about creating a bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>.
- * For more information about returning the logging status of a bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>.</p>
- * <p>The following operations are related to <code>PutBucketLogging</code>:</p>
- * <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLogging">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketLoggingAsync(const Model::PutBucketLoggingRequest& request, const PutBucketLoggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Sets a metrics configuration (specified by the metrics configuration ID) for
- * the bucket. You can have up to 1,000 metrics configurations per bucket. If
- * you're updating an existing metrics configuration, note that this is a full
- * replacement of the existing metrics configuration. If you don't include the
- * elements you want to keep, they are erased.</p> <p>To use this operation, you
- * must have permissions to perform the <code>s3:PutMetricsConfiguration</code>
- * action. The bucket owner has this permission by default. The bucket owner can
- * grant this permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * CloudWatch request metrics for Amazon S3, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
- * to <code>PutBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
- * </p> </li> </ul> <p> <code>GetBucketLifecycle</code> has the following special
- * error:</p> <ul> <li> <p>Error code: <code>TooManyConfigurations</code> </p> <ul>
- * <li> <p>Description: You are attempting to create a new configuration but have
- * already reached the 1,000-configuration limit.</p> </li> <li> <p>HTTP Status
- * Code: HTTP 400 Bad Request</p> </li> </ul> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketMetricsConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketMetricsConfigurationOutcome PutBucketMetricsConfiguration(const Model::PutBucketMetricsConfigurationRequest& request) const;
- /**
- * <p>Sets a metrics configuration (specified by the metrics configuration ID) for
- * the bucket. You can have up to 1,000 metrics configurations per bucket. If
- * you're updating an existing metrics configuration, note that this is a full
- * replacement of the existing metrics configuration. If you don't include the
- * elements you want to keep, they are erased.</p> <p>To use this operation, you
- * must have permissions to perform the <code>s3:PutMetricsConfiguration</code>
- * action. The bucket owner has this permission by default. The bucket owner can
- * grant this permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * CloudWatch request metrics for Amazon S3, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
- * to <code>PutBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
- * </p> </li> </ul> <p> <code>GetBucketLifecycle</code> has the following special
- * error:</p> <ul> <li> <p>Error code: <code>TooManyConfigurations</code> </p> <ul>
- * <li> <p>Description: You are attempting to create a new configuration but have
- * already reached the 1,000-configuration limit.</p> </li> <li> <p>HTTP Status
- * Code: HTTP 400 Bad Request</p> </li> </ul> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketMetricsConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketMetricsConfigurationOutcomeCallable PutBucketMetricsConfigurationCallable(const Model::PutBucketMetricsConfigurationRequest& request) const;
- /**
- * <p>Sets a metrics configuration (specified by the metrics configuration ID) for
- * the bucket. You can have up to 1,000 metrics configurations per bucket. If
- * you're updating an existing metrics configuration, note that this is a full
- * replacement of the existing metrics configuration. If you don't include the
- * elements you want to keep, they are erased.</p> <p>To use this operation, you
- * must have permissions to perform the <code>s3:PutMetricsConfiguration</code>
- * action. The bucket owner has this permission by default. The bucket owner can
- * grant this permission to others. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>For information about
- * CloudWatch request metrics for Amazon S3, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring
- * Metrics with Amazon CloudWatch</a>.</p> <p>The following operations are related
- * to <code>PutBucketMetricsConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html">ListBucketMetricsConfigurations</a>
- * </p> </li> </ul> <p> <code>GetBucketLifecycle</code> has the following special
- * error:</p> <ul> <li> <p>Error code: <code>TooManyConfigurations</code> </p> <ul>
- * <li> <p>Description: You are attempting to create a new configuration but have
- * already reached the 1,000-configuration limit.</p> </li> <li> <p>HTTP Status
- * Code: HTTP 400 Bad Request</p> </li> </ul> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketMetricsConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketMetricsConfigurationAsync(const Model::PutBucketMetricsConfigurationRequest& request, const PutBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Enables notifications of specified events for a bucket. For more information
- * about event notifications, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
- * Event Notifications</a>.</p> <p>Using this API, you can replace an existing
- * notification configuration. The configuration is an XML file that defines the
- * event types that you want Amazon S3 to publish and the destination where you
- * want Amazon S3 to publish an event notification when it detects an event of the
- * specified type.</p> <p>By default, your bucket has no event notifications
- * configured. That is, the notification configuration will be an empty
- * <code>NotificationConfiguration</code>.</p> <p>
- * <code><NotificationConfiguration></code> </p> <p>
- * <code></NotificationConfiguration></code> </p> <p>This action replaces the
- * existing notification configuration with the configuration you include in the
- * request body.</p> <p>After Amazon S3 receives this request, it first verifies
- * that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue
- * Service (Amazon SQS) destination exists, and that the bucket owner has
- * permission to publish to it by sending a test notification. In the case of AWS
- * Lambda destinations, Amazon S3 verifies that the Lambda function permissions
- * grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For
- * more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
- * Notifications for Amazon S3 Events</a>.</p> <p>You can disable notifications by
- * adding the empty NotificationConfiguration element.</p> <p>By default, only the
- * bucket owner can configure notifications on a bucket. However, bucket owners can
- * use a bucket policy to grant permission to other users to set this configuration
- * with <code>s3:PutBucketNotification</code> permission.</p> <p>The PUT
- * notification is an atomic operation. For example, suppose your notification
- * configuration includes SNS topic, SQS queue, and Lambda function configurations.
- * When you send a PUT request with this configuration, Amazon S3 sends test
- * messages to your SNS topic. If the message fails, the entire PUT action will
- * fail, and Amazon S3 will not add the configuration to your bucket.</p>
- * <p> <b>Responses</b> </p> <p>If the configuration in the request body includes
- * only one <code>TopicConfiguration</code> specifying only the
- * <code>s3:ReducedRedundancyLostObject</code> event type, the response will also
- * include the <code>x-amz-sns-test-message-id</code> header containing the message
- * ID of the test notification sent to the topic.</p> <p>The following action is
- * related to <code>PutBucketNotificationConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketNotificationConfigurationOutcome PutBucketNotificationConfiguration(const Model::PutBucketNotificationConfigurationRequest& request) const;
- /**
- * <p>Enables notifications of specified events for a bucket. For more information
- * about event notifications, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
- * Event Notifications</a>.</p> <p>Using this API, you can replace an existing
- * notification configuration. The configuration is an XML file that defines the
- * event types that you want Amazon S3 to publish and the destination where you
- * want Amazon S3 to publish an event notification when it detects an event of the
- * specified type.</p> <p>By default, your bucket has no event notifications
- * configured. That is, the notification configuration will be an empty
- * <code>NotificationConfiguration</code>.</p> <p>
- * <code><NotificationConfiguration></code> </p> <p>
- * <code></NotificationConfiguration></code> </p> <p>This action replaces the
- * existing notification configuration with the configuration you include in the
- * request body.</p> <p>After Amazon S3 receives this request, it first verifies
- * that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue
- * Service (Amazon SQS) destination exists, and that the bucket owner has
- * permission to publish to it by sending a test notification. In the case of AWS
- * Lambda destinations, Amazon S3 verifies that the Lambda function permissions
- * grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For
- * more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
- * Notifications for Amazon S3 Events</a>.</p> <p>You can disable notifications by
- * adding the empty NotificationConfiguration element.</p> <p>By default, only the
- * bucket owner can configure notifications on a bucket. However, bucket owners can
- * use a bucket policy to grant permission to other users to set this configuration
- * with <code>s3:PutBucketNotification</code> permission.</p> <p>The PUT
- * notification is an atomic operation. For example, suppose your notification
- * configuration includes SNS topic, SQS queue, and Lambda function configurations.
- * When you send a PUT request with this configuration, Amazon S3 sends test
- * messages to your SNS topic. If the message fails, the entire PUT action will
- * fail, and Amazon S3 will not add the configuration to your bucket.</p>
- * <p> <b>Responses</b> </p> <p>If the configuration in the request body includes
- * only one <code>TopicConfiguration</code> specifying only the
- * <code>s3:ReducedRedundancyLostObject</code> event type, the response will also
- * include the <code>x-amz-sns-test-message-id</code> header containing the message
- * ID of the test notification sent to the topic.</p> <p>The following action is
- * related to <code>PutBucketNotificationConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketNotificationConfigurationOutcomeCallable PutBucketNotificationConfigurationCallable(const Model::PutBucketNotificationConfigurationRequest& request) const;
- /**
- * <p>Enables notifications of specified events for a bucket. For more information
- * about event notifications, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
- * Event Notifications</a>.</p> <p>Using this API, you can replace an existing
- * notification configuration. The configuration is an XML file that defines the
- * event types that you want Amazon S3 to publish and the destination where you
- * want Amazon S3 to publish an event notification when it detects an event of the
- * specified type.</p> <p>By default, your bucket has no event notifications
- * configured. That is, the notification configuration will be an empty
- * <code>NotificationConfiguration</code>.</p> <p>
- * <code><NotificationConfiguration></code> </p> <p>
- * <code></NotificationConfiguration></code> </p> <p>This action replaces the
- * existing notification configuration with the configuration you include in the
- * request body.</p> <p>After Amazon S3 receives this request, it first verifies
- * that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue
- * Service (Amazon SQS) destination exists, and that the bucket owner has
- * permission to publish to it by sending a test notification. In the case of AWS
- * Lambda destinations, Amazon S3 verifies that the Lambda function permissions
- * grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For
- * more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
- * Notifications for Amazon S3 Events</a>.</p> <p>You can disable notifications by
- * adding the empty NotificationConfiguration element.</p> <p>By default, only the
- * bucket owner can configure notifications on a bucket. However, bucket owners can
- * use a bucket policy to grant permission to other users to set this configuration
- * with <code>s3:PutBucketNotification</code> permission.</p> <p>The PUT
- * notification is an atomic operation. For example, suppose your notification
- * configuration includes SNS topic, SQS queue, and Lambda function configurations.
- * When you send a PUT request with this configuration, Amazon S3 sends test
- * messages to your SNS topic. If the message fails, the entire PUT action will
- * fail, and Amazon S3 will not add the configuration to your bucket.</p>
- * <p> <b>Responses</b> </p> <p>If the configuration in the request body includes
- * only one <code>TopicConfiguration</code> specifying only the
- * <code>s3:ReducedRedundancyLostObject</code> event type, the response will also
- * include the <code>x-amz-sns-test-message-id</code> header containing the message
- * ID of the test notification sent to the topic.</p> <p>The following action is
- * related to <code>PutBucketNotificationConfiguration</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketNotificationConfigurationAsync(const Model::PutBucketNotificationConfigurationRequest& request, const PutBucketNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Creates or modifies <code>OwnershipControls</code> for an Amazon S3 bucket.
- * To use this operation, you must have the
- * <code>s3:PutBucketOwnershipControls</code> permission. For more information
- * about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>. </p> <p>For information about Amazon S3 Object
- * Ownership, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
- * Object Ownership</a>. </p> <p>The following operations are related to
- * <code>PutBucketOwnershipControls</code>:</p> <ul> <li> <p>
- * <a>GetBucketOwnershipControls</a> </p> </li> <li> <p>
- * <a>DeleteBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControls">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketOwnershipControlsOutcome PutBucketOwnershipControls(const Model::PutBucketOwnershipControlsRequest& request) const;
- /**
- * <p>Creates or modifies <code>OwnershipControls</code> for an Amazon S3 bucket.
- * To use this operation, you must have the
- * <code>s3:PutBucketOwnershipControls</code> permission. For more information
- * about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>. </p> <p>For information about Amazon S3 Object
- * Ownership, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
- * Object Ownership</a>. </p> <p>The following operations are related to
- * <code>PutBucketOwnershipControls</code>:</p> <ul> <li> <p>
- * <a>GetBucketOwnershipControls</a> </p> </li> <li> <p>
- * <a>DeleteBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControls">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketOwnershipControlsOutcomeCallable PutBucketOwnershipControlsCallable(const Model::PutBucketOwnershipControlsRequest& request) const;
- /**
- * <p>Creates or modifies <code>OwnershipControls</code> for an Amazon S3 bucket.
- * To use this operation, you must have the
- * <code>s3:PutBucketOwnershipControls</code> permission. For more information
- * about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>. </p> <p>For information about Amazon S3 Object
- * Ownership, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html">Using
- * Object Ownership</a>. </p> <p>The following operations are related to
- * <code>PutBucketOwnershipControls</code>:</p> <ul> <li> <p>
- * <a>GetBucketOwnershipControls</a> </p> </li> <li> <p>
- * <a>DeleteBucketOwnershipControls</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControls">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketOwnershipControlsAsync(const Model::PutBucketOwnershipControlsRequest& request, const PutBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using
- * an identity other than the root user of the AWS account that owns the bucket,
- * the calling identity must have the <code>PutBucketPolicy</code> permissions on
- * the specified bucket and belong to the bucket owner's account in order to use
- * this operation.</p> <p>If you don't have <code>PutBucketPolicy</code>
- * permissions, Amazon S3 returns a <code>403 Access Denied</code> error. If you
- * have the correct permissions, but you're not using an identity that belongs to
- * the bucket owner's account, Amazon S3 returns a <code>405 Method Not
- * Allowed</code> error.</p> <p> As a security precaution, the root
- * user of the AWS account that owns a bucket can always use this operation, even
- * if the policy explicitly denies the root user the ability to perform this
- * action. </p> <p>For more information about bucket policies, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies and User Policies</a>.</p> <p>The following operations are
- * related to <code>PutBucketPolicy</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketPolicy">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketPolicyOutcome PutBucketPolicy(const Model::PutBucketPolicyRequest& request) const;
- /**
- * <p>Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using
- * an identity other than the root user of the AWS account that owns the bucket,
- * the calling identity must have the <code>PutBucketPolicy</code> permissions on
- * the specified bucket and belong to the bucket owner's account in order to use
- * this operation.</p> <p>If you don't have <code>PutBucketPolicy</code>
- * permissions, Amazon S3 returns a <code>403 Access Denied</code> error. If you
- * have the correct permissions, but you're not using an identity that belongs to
- * the bucket owner's account, Amazon S3 returns a <code>405 Method Not
- * Allowed</code> error.</p> <p> As a security precaution, the root
- * user of the AWS account that owns a bucket can always use this operation, even
- * if the policy explicitly denies the root user the ability to perform this
- * action. </p> <p>For more information about bucket policies, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies and User Policies</a>.</p> <p>The following operations are
- * related to <code>PutBucketPolicy</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketPolicy">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketPolicyOutcomeCallable PutBucketPolicyCallable(const Model::PutBucketPolicyRequest& request) const;
- /**
- * <p>Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using
- * an identity other than the root user of the AWS account that owns the bucket,
- * the calling identity must have the <code>PutBucketPolicy</code> permissions on
- * the specified bucket and belong to the bucket owner's account in order to use
- * this operation.</p> <p>If you don't have <code>PutBucketPolicy</code>
- * permissions, Amazon S3 returns a <code>403 Access Denied</code> error. If you
- * have the correct permissions, but you're not using an identity that belongs to
- * the bucket owner's account, Amazon S3 returns a <code>405 Method Not
- * Allowed</code> error.</p> <p> As a security precaution, the root
- * user of the AWS account that owns a bucket can always use this operation, even
- * if the policy explicitly denies the root user the ability to perform this
- * action. </p> <p>For more information about bucket policies, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html">Using
- * Bucket Policies and User Policies</a>.</p> <p>The following operations are
- * related to <code>PutBucketPolicy</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketPolicy">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketPolicyAsync(const Model::PutBucketPolicyRequest& request, const PutBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p> Creates a replication configuration or replaces an existing one. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
- * in the <i>Amazon S3 Developer Guide</i>. </p> <p>To perform this
- * operation, the user or role performing the action must have the <a
- * href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html">iam:PassRole</a>
- * permission.</p> <p>Specify the replication configuration in the request
- * body. In the replication configuration, you provide the name of the destination
- * bucket or buckets where you want Amazon S3 to replicate objects, the IAM role
- * that Amazon S3 can assume to replicate objects on your behalf, and other
- * relevant information.</p> <p>A replication configuration must include at least
- * one rule, and can contain a maximum of 1,000. Each rule identifies a subset of
- * objects to replicate by filtering the objects in the source bucket. To choose
- * additional subsets of objects to replicate, add a rule for each subset.</p>
- * <p>To specify a subset of the objects in the source bucket to apply a
- * replication rule to, add the Filter element as a child of the Rule element. You
- * can filter objects based on an object key prefix, one or more object tags, or
- * both. When you add the Filter element in the configuration, you must also add
- * the following elements: <code>DeleteMarkerReplication</code>,
- * <code>Status</code>, and <code>Priority</code>.</p> <p>If you are using
- * an earlier version of the replication configuration, Amazon S3 handles
- * replication of delete markers differently. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations">Backward
- * Compatibility</a>.</p> <p>For information about enabling versioning on a
- * bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html">Using
- * Versioning</a>.</p> <p>By default, a resource owner, in this case the AWS
- * account that created the bucket, can perform this operation. The resource owner
- * can also grant others permissions to perform the operation. For more information
- * about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> <b>Handling
- * Replication of Encrypted Objects</b> </p> <p>By default, Amazon S3 doesn't
- * replicate objects that are stored at rest using server-side encryption with CMKs
- * stored in AWS KMS. To replicate AWS KMS-encrypted objects, add the following:
- * <code>SourceSelectionCriteria</code>, <code>SseKmsEncryptedObjects</code>,
- * <code>Status</code>, <code>EncryptionConfiguration</code>, and
- * <code>ReplicaKmsKeyID</code>. For information about replication configuration,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html">Replicating
- * Objects Created with SSE Using CMKs stored in AWS KMS</a>.</p> <p>For
- * information on <code>PutBucketReplication</code> errors, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List
- * of replication-related error codes</a> </p> <p>The following operations are
- * related to <code>PutBucketReplication</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplication">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketReplicationOutcome PutBucketReplication(const Model::PutBucketReplicationRequest& request) const;
- /**
- * <p> Creates a replication configuration or replaces an existing one. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
- * in the <i>Amazon S3 Developer Guide</i>. </p> <p>To perform this
- * operation, the user or role performing the action must have the <a
- * href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html">iam:PassRole</a>
- * permission.</p> <p>Specify the replication configuration in the request
- * body. In the replication configuration, you provide the name of the destination
- * bucket or buckets where you want Amazon S3 to replicate objects, the IAM role
- * that Amazon S3 can assume to replicate objects on your behalf, and other
- * relevant information.</p> <p>A replication configuration must include at least
- * one rule, and can contain a maximum of 1,000. Each rule identifies a subset of
- * objects to replicate by filtering the objects in the source bucket. To choose
- * additional subsets of objects to replicate, add a rule for each subset.</p>
- * <p>To specify a subset of the objects in the source bucket to apply a
- * replication rule to, add the Filter element as a child of the Rule element. You
- * can filter objects based on an object key prefix, one or more object tags, or
- * both. When you add the Filter element in the configuration, you must also add
- * the following elements: <code>DeleteMarkerReplication</code>,
- * <code>Status</code>, and <code>Priority</code>.</p> <p>If you are using
- * an earlier version of the replication configuration, Amazon S3 handles
- * replication of delete markers differently. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations">Backward
- * Compatibility</a>.</p> <p>For information about enabling versioning on a
- * bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html">Using
- * Versioning</a>.</p> <p>By default, a resource owner, in this case the AWS
- * account that created the bucket, can perform this operation. The resource owner
- * can also grant others permissions to perform the operation. For more information
- * about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> <b>Handling
- * Replication of Encrypted Objects</b> </p> <p>By default, Amazon S3 doesn't
- * replicate objects that are stored at rest using server-side encryption with CMKs
- * stored in AWS KMS. To replicate AWS KMS-encrypted objects, add the following:
- * <code>SourceSelectionCriteria</code>, <code>SseKmsEncryptedObjects</code>,
- * <code>Status</code>, <code>EncryptionConfiguration</code>, and
- * <code>ReplicaKmsKeyID</code>. For information about replication configuration,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html">Replicating
- * Objects Created with SSE Using CMKs stored in AWS KMS</a>.</p> <p>For
- * information on <code>PutBucketReplication</code> errors, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List
- * of replication-related error codes</a> </p> <p>The following operations are
- * related to <code>PutBucketReplication</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplication">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketReplicationOutcomeCallable PutBucketReplicationCallable(const Model::PutBucketReplicationRequest& request) const;
- /**
- * <p> Creates a replication configuration or replaces an existing one. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a>
- * in the <i>Amazon S3 Developer Guide</i>. </p> <p>To perform this
- * operation, the user or role performing the action must have the <a
- * href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html">iam:PassRole</a>
- * permission.</p> <p>Specify the replication configuration in the request
- * body. In the replication configuration, you provide the name of the destination
- * bucket or buckets where you want Amazon S3 to replicate objects, the IAM role
- * that Amazon S3 can assume to replicate objects on your behalf, and other
- * relevant information.</p> <p>A replication configuration must include at least
- * one rule, and can contain a maximum of 1,000. Each rule identifies a subset of
- * objects to replicate by filtering the objects in the source bucket. To choose
- * additional subsets of objects to replicate, add a rule for each subset.</p>
- * <p>To specify a subset of the objects in the source bucket to apply a
- * replication rule to, add the Filter element as a child of the Rule element. You
- * can filter objects based on an object key prefix, one or more object tags, or
- * both. When you add the Filter element in the configuration, you must also add
- * the following elements: <code>DeleteMarkerReplication</code>,
- * <code>Status</code>, and <code>Priority</code>.</p> <p>If you are using
- * an earlier version of the replication configuration, Amazon S3 handles
- * replication of delete markers differently. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations">Backward
- * Compatibility</a>.</p> <p>For information about enabling versioning on a
- * bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html">Using
- * Versioning</a>.</p> <p>By default, a resource owner, in this case the AWS
- * account that created the bucket, can perform this operation. The resource owner
- * can also grant others permissions to perform the operation. For more information
- * about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p> <b>Handling
- * Replication of Encrypted Objects</b> </p> <p>By default, Amazon S3 doesn't
- * replicate objects that are stored at rest using server-side encryption with CMKs
- * stored in AWS KMS. To replicate AWS KMS-encrypted objects, add the following:
- * <code>SourceSelectionCriteria</code>, <code>SseKmsEncryptedObjects</code>,
- * <code>Status</code>, <code>EncryptionConfiguration</code>, and
- * <code>ReplicaKmsKeyID</code>. For information about replication configuration,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html">Replicating
- * Objects Created with SSE Using CMKs stored in AWS KMS</a>.</p> <p>For
- * information on <code>PutBucketReplication</code> errors, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList">List
- * of replication-related error codes</a> </p> <p>The following operations are
- * related to <code>PutBucketReplication</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplication">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketReplicationAsync(const Model::PutBucketReplicationRequest& request, const PutBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Sets the request payment configuration for a bucket. By default, the bucket
- * owner pays for downloads from the bucket. This configuration parameter enables
- * the bucket owner (only) to specify that the person requesting the download will
- * be charged for the download. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester
- * Pays Buckets</a>.</p> <p>The following operations are related to
- * <code>PutBucketRequestPayment</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html">GetBucketRequestPayment</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketRequestPayment">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketRequestPaymentOutcome PutBucketRequestPayment(const Model::PutBucketRequestPaymentRequest& request) const;
- /**
- * <p>Sets the request payment configuration for a bucket. By default, the bucket
- * owner pays for downloads from the bucket. This configuration parameter enables
- * the bucket owner (only) to specify that the person requesting the download will
- * be charged for the download. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester
- * Pays Buckets</a>.</p> <p>The following operations are related to
- * <code>PutBucketRequestPayment</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html">GetBucketRequestPayment</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketRequestPayment">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketRequestPaymentOutcomeCallable PutBucketRequestPaymentCallable(const Model::PutBucketRequestPaymentRequest& request) const;
- /**
- * <p>Sets the request payment configuration for a bucket. By default, the bucket
- * owner pays for downloads from the bucket. This configuration parameter enables
- * the bucket owner (only) to specify that the person requesting the download will
- * be charged for the download. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester
- * Pays Buckets</a>.</p> <p>The following operations are related to
- * <code>PutBucketRequestPayment</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html">GetBucketRequestPayment</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketRequestPayment">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketRequestPaymentAsync(const Model::PutBucketRequestPaymentRequest& request, const PutBucketRequestPaymentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Sets the tags for a bucket.</p> <p>Use tags to organize your AWS bill to
- * reflect your own cost structure. To do this, sign up to get your AWS account
- * bill with tag key values included. Then, to see the cost of combined resources,
- * organize your billing information according to resources with the same tag key
- * values. For example, you can tag several resources with a specific application
- * name, and then organize your billing information to see the total cost of that
- * application across several services. For more information, see <a
- * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Cost
- * Allocation and Tagging</a>.</p> <p>Within a bucket, if you add a tag that
- * has the same key as an existing tag, the new value overwrites the old value. For
- * more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html">Using
- * Cost Allocation in Amazon S3 Bucket Tags</a>.</p> <p>To use this
- * operation, you must have permissions to perform the
- * <code>s3:PutBucketTagging</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>
- * <code>PutBucketTagging</code> has the following special errors:</p> <ul> <li>
- * <p>Error code: <code>InvalidTagError</code> </p> <ul> <li> <p>Description: The
- * tag provided was not a valid tag. This error can occur if the tag did not pass
- * input validation. For information about tag restrictions, see <a
- * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">User-Defined
- * Tag Restrictions</a> and <a
- * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html">AWS-Generated
- * Cost Allocation Tag Restrictions</a>.</p> </li> </ul> </li> <li> <p>Error code:
- * <code>MalformedXMLError</code> </p> <ul> <li> <p>Description: The XML provided
- * does not match the schema.</p> </li> </ul> </li> <li> <p>Error code:
- * <code>OperationAbortedError </code> </p> <ul> <li> <p>Description: A conflicting
- * conditional action is currently in progress against this resource. Please try
- * again.</p> </li> </ul> </li> <li> <p>Error code: <code>InternalError</code> </p>
- * <ul> <li> <p>Description: The service was unable to apply the provided tag to
- * the bucket.</p> </li> </ul> </li> </ul> <p>The following operations are related
- * to <code>PutBucketTagging</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketTagging">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketTaggingOutcome PutBucketTagging(const Model::PutBucketTaggingRequest& request) const;
- /**
- * <p>Sets the tags for a bucket.</p> <p>Use tags to organize your AWS bill to
- * reflect your own cost structure. To do this, sign up to get your AWS account
- * bill with tag key values included. Then, to see the cost of combined resources,
- * organize your billing information according to resources with the same tag key
- * values. For example, you can tag several resources with a specific application
- * name, and then organize your billing information to see the total cost of that
- * application across several services. For more information, see <a
- * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Cost
- * Allocation and Tagging</a>.</p> <p>Within a bucket, if you add a tag that
- * has the same key as an existing tag, the new value overwrites the old value. For
- * more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html">Using
- * Cost Allocation in Amazon S3 Bucket Tags</a>.</p> <p>To use this
- * operation, you must have permissions to perform the
- * <code>s3:PutBucketTagging</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>
- * <code>PutBucketTagging</code> has the following special errors:</p> <ul> <li>
- * <p>Error code: <code>InvalidTagError</code> </p> <ul> <li> <p>Description: The
- * tag provided was not a valid tag. This error can occur if the tag did not pass
- * input validation. For information about tag restrictions, see <a
- * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">User-Defined
- * Tag Restrictions</a> and <a
- * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html">AWS-Generated
- * Cost Allocation Tag Restrictions</a>.</p> </li> </ul> </li> <li> <p>Error code:
- * <code>MalformedXMLError</code> </p> <ul> <li> <p>Description: The XML provided
- * does not match the schema.</p> </li> </ul> </li> <li> <p>Error code:
- * <code>OperationAbortedError </code> </p> <ul> <li> <p>Description: A conflicting
- * conditional action is currently in progress against this resource. Please try
- * again.</p> </li> </ul> </li> <li> <p>Error code: <code>InternalError</code> </p>
- * <ul> <li> <p>Description: The service was unable to apply the provided tag to
- * the bucket.</p> </li> </ul> </li> </ul> <p>The following operations are related
- * to <code>PutBucketTagging</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketTagging">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketTaggingOutcomeCallable PutBucketTaggingCallable(const Model::PutBucketTaggingRequest& request) const;
- /**
- * <p>Sets the tags for a bucket.</p> <p>Use tags to organize your AWS bill to
- * reflect your own cost structure. To do this, sign up to get your AWS account
- * bill with tag key values included. Then, to see the cost of combined resources,
- * organize your billing information according to resources with the same tag key
- * values. For example, you can tag several resources with a specific application
- * name, and then organize your billing information to see the total cost of that
- * application across several services. For more information, see <a
- * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Cost
- * Allocation and Tagging</a>.</p> <p>Within a bucket, if you add a tag that
- * has the same key as an existing tag, the new value overwrites the old value. For
- * more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html">Using
- * Cost Allocation in Amazon S3 Bucket Tags</a>.</p> <p>To use this
- * operation, you must have permissions to perform the
- * <code>s3:PutBucketTagging</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a>.</p> <p>
- * <code>PutBucketTagging</code> has the following special errors:</p> <ul> <li>
- * <p>Error code: <code>InvalidTagError</code> </p> <ul> <li> <p>Description: The
- * tag provided was not a valid tag. This error can occur if the tag did not pass
- * input validation. For information about tag restrictions, see <a
- * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">User-Defined
- * Tag Restrictions</a> and <a
- * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html">AWS-Generated
- * Cost Allocation Tag Restrictions</a>.</p> </li> </ul> </li> <li> <p>Error code:
- * <code>MalformedXMLError</code> </p> <ul> <li> <p>Description: The XML provided
- * does not match the schema.</p> </li> </ul> </li> <li> <p>Error code:
- * <code>OperationAbortedError </code> </p> <ul> <li> <p>Description: A conflicting
- * conditional action is currently in progress against this resource. Please try
- * again.</p> </li> </ul> </li> <li> <p>Error code: <code>InternalError</code> </p>
- * <ul> <li> <p>Description: The service was unable to apply the provided tag to
- * the bucket.</p> </li> </ul> </li> </ul> <p>The following operations are related
- * to <code>PutBucketTagging</code>:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketTagging">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketTaggingAsync(const Model::PutBucketTaggingRequest& request, const PutBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Sets the versioning state of an existing bucket. To set the versioning state,
- * you must be the bucket owner.</p> <p>You can set the versioning state with one
- * of the following values:</p> <p> <b>Enabled</b>—Enables versioning for the
- * objects in the bucket. All objects added to the bucket receive a unique version
- * ID.</p> <p> <b>Suspended</b>—Disables versioning for the objects in the bucket.
- * All objects added to the bucket receive the version ID null.</p> <p>If the
- * versioning state has never been set on a bucket, it has no versioning state; a
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>
- * request does not return a versioning state value.</p> <p>If the bucket owner
- * enables MFA Delete in the bucket versioning configuration, the bucket owner must
- * include the <code>x-amz-mfa request</code> header and the <code>Status</code>
- * and the <code>MfaDelete</code> request elements in a request to set the
- * versioning state of the bucket.</p> <p>If you have an object
- * expiration lifecycle policy in your non-versioned bucket and you want to
- * maintain the same permanent delete behavior when you enable versioning, you must
- * add a noncurrent expiration policy. The noncurrent expiration lifecycle policy
- * will manage the deletes of the noncurrent object versions in the version-enabled
- * bucket. (A version-enabled bucket maintains one current and zero or more
- * noncurrent object versions.) For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config">Lifecycle
- * and Versioning</a>.</p> <p class="title"> <b>Related Resources</b>
- * </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketVersioning">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketVersioningOutcome PutBucketVersioning(const Model::PutBucketVersioningRequest& request) const;
- /**
- * <p>Sets the versioning state of an existing bucket. To set the versioning state,
- * you must be the bucket owner.</p> <p>You can set the versioning state with one
- * of the following values:</p> <p> <b>Enabled</b>—Enables versioning for the
- * objects in the bucket. All objects added to the bucket receive a unique version
- * ID.</p> <p> <b>Suspended</b>—Disables versioning for the objects in the bucket.
- * All objects added to the bucket receive the version ID null.</p> <p>If the
- * versioning state has never been set on a bucket, it has no versioning state; a
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>
- * request does not return a versioning state value.</p> <p>If the bucket owner
- * enables MFA Delete in the bucket versioning configuration, the bucket owner must
- * include the <code>x-amz-mfa request</code> header and the <code>Status</code>
- * and the <code>MfaDelete</code> request elements in a request to set the
- * versioning state of the bucket.</p> <p>If you have an object
- * expiration lifecycle policy in your non-versioned bucket and you want to
- * maintain the same permanent delete behavior when you enable versioning, you must
- * add a noncurrent expiration policy. The noncurrent expiration lifecycle policy
- * will manage the deletes of the noncurrent object versions in the version-enabled
- * bucket. (A version-enabled bucket maintains one current and zero or more
- * noncurrent object versions.) For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config">Lifecycle
- * and Versioning</a>.</p> <p class="title"> <b>Related Resources</b>
- * </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketVersioning">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketVersioningOutcomeCallable PutBucketVersioningCallable(const Model::PutBucketVersioningRequest& request) const;
- /**
- * <p>Sets the versioning state of an existing bucket. To set the versioning state,
- * you must be the bucket owner.</p> <p>You can set the versioning state with one
- * of the following values:</p> <p> <b>Enabled</b>—Enables versioning for the
- * objects in the bucket. All objects added to the bucket receive a unique version
- * ID.</p> <p> <b>Suspended</b>—Disables versioning for the objects in the bucket.
- * All objects added to the bucket receive the version ID null.</p> <p>If the
- * versioning state has never been set on a bucket, it has no versioning state; a
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>
- * request does not return a versioning state value.</p> <p>If the bucket owner
- * enables MFA Delete in the bucket versioning configuration, the bucket owner must
- * include the <code>x-amz-mfa request</code> header and the <code>Status</code>
- * and the <code>MfaDelete</code> request elements in a request to set the
- * versioning state of the bucket.</p> <p>If you have an object
- * expiration lifecycle policy in your non-versioned bucket and you want to
- * maintain the same permanent delete behavior when you enable versioning, you must
- * add a noncurrent expiration policy. The noncurrent expiration lifecycle policy
- * will manage the deletes of the noncurrent object versions in the version-enabled
- * bucket. (A version-enabled bucket maintains one current and zero or more
- * noncurrent object versions.) For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config">Lifecycle
- * and Versioning</a>.</p> <p class="title"> <b>Related Resources</b>
- * </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketVersioning">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketVersioningAsync(const Model::PutBucketVersioningRequest& request, const PutBucketVersioningResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Sets the configuration of the website that is specified in the
- * <code>website</code> subresource. To configure a bucket as a website, you can
- * add this subresource on the bucket with website configuration information such
- * as the file name of the index document and any redirect rules. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
- * Websites on Amazon S3</a>.</p> <p>This PUT action requires the
- * <code>S3:PutBucketWebsite</code> permission. By default, only the bucket owner
- * can configure the website attached to a bucket; however, bucket owners can allow
- * other users to set the website configuration by writing a bucket policy that
- * grants them the <code>S3:PutBucketWebsite</code> permission.</p> <p>To redirect
- * all website requests sent to the bucket's website endpoint, you add a website
- * configuration with the following elements. Because all requests are sent to
- * another website, you don't need to provide index document name for the
- * bucket.</p> <ul> <li> <p> <code>WebsiteConfiguration</code> </p> </li> <li> <p>
- * <code>RedirectAllRequestsTo</code> </p> </li> <li> <p> <code>HostName</code>
- * </p> </li> <li> <p> <code>Protocol</code> </p> </li> </ul> <p>If you want
- * granular control over redirects, you can use the following elements to add
- * routing rules that describe conditions for redirecting requests and information
- * about the redirect destination. In this case, the website configuration must
- * provide an index document for the bucket, because some requests might not be
- * redirected. </p> <ul> <li> <p> <code>WebsiteConfiguration</code> </p> </li> <li>
- * <p> <code>IndexDocument</code> </p> </li> <li> <p> <code>Suffix</code> </p>
- * </li> <li> <p> <code>ErrorDocument</code> </p> </li> <li> <p> <code>Key</code>
- * </p> </li> <li> <p> <code>RoutingRules</code> </p> </li> <li> <p>
- * <code>RoutingRule</code> </p> </li> <li> <p> <code>Condition</code> </p> </li>
- * <li> <p> <code>HttpErrorCodeReturnedEquals</code> </p> </li> <li> <p>
- * <code>KeyPrefixEquals</code> </p> </li> <li> <p> <code>Redirect</code> </p>
- * </li> <li> <p> <code>Protocol</code> </p> </li> <li> <p> <code>HostName</code>
- * </p> </li> <li> <p> <code>ReplaceKeyPrefixWith</code> </p> </li> <li> <p>
- * <code>ReplaceKeyWith</code> </p> </li> <li> <p> <code>HttpRedirectCode</code>
- * </p> </li> </ul> <p>Amazon S3 has a limitation of 50 routing rules per website
- * configuration. If you require more than 50 routing rules, you can use object
- * redirect. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html">Configuring
- * an Object Redirect</a> in the <i>Amazon S3 User Guide</i>.</p><p><h3>See
- * Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketWebsite">AWS
- * API Reference</a></p>
- */
- virtual Model::PutBucketWebsiteOutcome PutBucketWebsite(const Model::PutBucketWebsiteRequest& request) const;
- /**
- * <p>Sets the configuration of the website that is specified in the
- * <code>website</code> subresource. To configure a bucket as a website, you can
- * add this subresource on the bucket with website configuration information such
- * as the file name of the index document and any redirect rules. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
- * Websites on Amazon S3</a>.</p> <p>This PUT action requires the
- * <code>S3:PutBucketWebsite</code> permission. By default, only the bucket owner
- * can configure the website attached to a bucket; however, bucket owners can allow
- * other users to set the website configuration by writing a bucket policy that
- * grants them the <code>S3:PutBucketWebsite</code> permission.</p> <p>To redirect
- * all website requests sent to the bucket's website endpoint, you add a website
- * configuration with the following elements. Because all requests are sent to
- * another website, you don't need to provide index document name for the
- * bucket.</p> <ul> <li> <p> <code>WebsiteConfiguration</code> </p> </li> <li> <p>
- * <code>RedirectAllRequestsTo</code> </p> </li> <li> <p> <code>HostName</code>
- * </p> </li> <li> <p> <code>Protocol</code> </p> </li> </ul> <p>If you want
- * granular control over redirects, you can use the following elements to add
- * routing rules that describe conditions for redirecting requests and information
- * about the redirect destination. In this case, the website configuration must
- * provide an index document for the bucket, because some requests might not be
- * redirected. </p> <ul> <li> <p> <code>WebsiteConfiguration</code> </p> </li> <li>
- * <p> <code>IndexDocument</code> </p> </li> <li> <p> <code>Suffix</code> </p>
- * </li> <li> <p> <code>ErrorDocument</code> </p> </li> <li> <p> <code>Key</code>
- * </p> </li> <li> <p> <code>RoutingRules</code> </p> </li> <li> <p>
- * <code>RoutingRule</code> </p> </li> <li> <p> <code>Condition</code> </p> </li>
- * <li> <p> <code>HttpErrorCodeReturnedEquals</code> </p> </li> <li> <p>
- * <code>KeyPrefixEquals</code> </p> </li> <li> <p> <code>Redirect</code> </p>
- * </li> <li> <p> <code>Protocol</code> </p> </li> <li> <p> <code>HostName</code>
- * </p> </li> <li> <p> <code>ReplaceKeyPrefixWith</code> </p> </li> <li> <p>
- * <code>ReplaceKeyWith</code> </p> </li> <li> <p> <code>HttpRedirectCode</code>
- * </p> </li> </ul> <p>Amazon S3 has a limitation of 50 routing rules per website
- * configuration. If you require more than 50 routing rules, you can use object
- * redirect. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html">Configuring
- * an Object Redirect</a> in the <i>Amazon S3 User Guide</i>.</p><p><h3>See
- * Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketWebsite">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutBucketWebsiteOutcomeCallable PutBucketWebsiteCallable(const Model::PutBucketWebsiteRequest& request) const;
- /**
- * <p>Sets the configuration of the website that is specified in the
- * <code>website</code> subresource. To configure a bucket as a website, you can
- * add this subresource on the bucket with website configuration information such
- * as the file name of the index document and any redirect rules. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting
- * Websites on Amazon S3</a>.</p> <p>This PUT action requires the
- * <code>S3:PutBucketWebsite</code> permission. By default, only the bucket owner
- * can configure the website attached to a bucket; however, bucket owners can allow
- * other users to set the website configuration by writing a bucket policy that
- * grants them the <code>S3:PutBucketWebsite</code> permission.</p> <p>To redirect
- * all website requests sent to the bucket's website endpoint, you add a website
- * configuration with the following elements. Because all requests are sent to
- * another website, you don't need to provide index document name for the
- * bucket.</p> <ul> <li> <p> <code>WebsiteConfiguration</code> </p> </li> <li> <p>
- * <code>RedirectAllRequestsTo</code> </p> </li> <li> <p> <code>HostName</code>
- * </p> </li> <li> <p> <code>Protocol</code> </p> </li> </ul> <p>If you want
- * granular control over redirects, you can use the following elements to add
- * routing rules that describe conditions for redirecting requests and information
- * about the redirect destination. In this case, the website configuration must
- * provide an index document for the bucket, because some requests might not be
- * redirected. </p> <ul> <li> <p> <code>WebsiteConfiguration</code> </p> </li> <li>
- * <p> <code>IndexDocument</code> </p> </li> <li> <p> <code>Suffix</code> </p>
- * </li> <li> <p> <code>ErrorDocument</code> </p> </li> <li> <p> <code>Key</code>
- * </p> </li> <li> <p> <code>RoutingRules</code> </p> </li> <li> <p>
- * <code>RoutingRule</code> </p> </li> <li> <p> <code>Condition</code> </p> </li>
- * <li> <p> <code>HttpErrorCodeReturnedEquals</code> </p> </li> <li> <p>
- * <code>KeyPrefixEquals</code> </p> </li> <li> <p> <code>Redirect</code> </p>
- * </li> <li> <p> <code>Protocol</code> </p> </li> <li> <p> <code>HostName</code>
- * </p> </li> <li> <p> <code>ReplaceKeyPrefixWith</code> </p> </li> <li> <p>
- * <code>ReplaceKeyWith</code> </p> </li> <li> <p> <code>HttpRedirectCode</code>
- * </p> </li> </ul> <p>Amazon S3 has a limitation of 50 routing rules per website
- * configuration. If you require more than 50 routing rules, you can use object
- * redirect. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html">Configuring
- * an Object Redirect</a> in the <i>Amazon S3 User Guide</i>.</p><p><h3>See
- * Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketWebsite">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutBucketWebsiteAsync(const Model::PutBucketWebsiteRequest& request, const PutBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Adds an object to a bucket. You must have WRITE permissions on a bucket to
- * add an object to it.</p> <p>Amazon S3 never adds partial objects; if you receive
- * a success response, Amazon S3 added the entire object to the bucket.</p>
- * <p>Amazon S3 is a distributed system. If it receives multiple write requests for
- * the same object simultaneously, it overwrites all but the last object written.
- * Amazon S3 does not provide object locking; if you need this, make sure to build
- * it into your application layer or use versioning instead.</p> <p>To ensure that
- * data is not corrupted traversing the network, use the <code>Content-MD5</code>
- * header. When you use this header, Amazon S3 checks the object against the
- * provided MD5 value and, if they do not match, returns an error. Additionally,
- * you can calculate the MD5 while putting an object to Amazon S3 and compare the
- * returned ETag to the calculated MD5 value.</p> <p> The
- * <code>Content-MD5</code> header is required for any request to upload an object
- * with a retention period configured using Amazon S3 Object Lock. For more
- * information about Amazon S3 Object Lock, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html">Amazon
- * S3 Object Lock Overview</a> in the <i>Amazon S3 User Guide</i>. </p> <p>
- * <b>Server-side Encryption</b> </p> <p>You can optionally request server-side
- * encryption. With server-side encryption, Amazon S3 encrypts your data as it
- * writes it to disks in its data centers and decrypts the data when you access it.
- * You have the option to provide your own encryption key or use AWS managed
- * encryption keys (SSE-S3 or SSE-KMS). For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using
- * Server-Side Encryption</a>.</p> <p>If you request server-side encryption using
- * AWS Key Management Service (SSE-KMS), you can enable an S3 Bucket Key at the
- * object-level. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
- * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p> <b>Access Control
- * List (ACL)-Specific Request Headers</b> </p> <p>You can use headers to grant
- * ACL- based permissions. By default, all objects are private. Only the owner has
- * full access control. When adding a new object, you can grant permissions to
- * individual AWS accounts or to predefined groups defined by Amazon S3. These
- * permissions are then added to the ACL on the object. For more information, see
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing
- * ACLs Using the REST API</a>. </p> <p> <b>Storage Class Options</b> </p> <p>By
- * default, Amazon S3 uses the STANDARD Storage Class to store newly created
- * objects. The STANDARD storage class provides high durability and high
- * availability. Depending on performance needs, you can specify a different
- * Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For
- * more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage
- * Classes</a> in the <i>Amazon S3 Service Developer Guide</i>.</p> <p>
- * <b>Versioning</b> </p> <p>If you enable versioning for a bucket, Amazon S3
- * automatically generates a unique version ID for the object being stored. Amazon
- * S3 returns this ID in the response. When you enable versioning for a bucket, if
- * Amazon S3 receives multiple write requests for the same object simultaneously,
- * it stores all of the objects.</p> <p>For more information about versioning, see
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html">Adding
- * Objects to Versioning Enabled Buckets</a>. For information about returning the
- * versioning state of a bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>.
- * </p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObject">AWS API
- * Reference</a></p>
- */
- virtual Model::PutObjectOutcome PutObject(const Model::PutObjectRequest& request) const;
- /**
- * <p>Adds an object to a bucket. You must have WRITE permissions on a bucket to
- * add an object to it.</p> <p>Amazon S3 never adds partial objects; if you receive
- * a success response, Amazon S3 added the entire object to the bucket.</p>
- * <p>Amazon S3 is a distributed system. If it receives multiple write requests for
- * the same object simultaneously, it overwrites all but the last object written.
- * Amazon S3 does not provide object locking; if you need this, make sure to build
- * it into your application layer or use versioning instead.</p> <p>To ensure that
- * data is not corrupted traversing the network, use the <code>Content-MD5</code>
- * header. When you use this header, Amazon S3 checks the object against the
- * provided MD5 value and, if they do not match, returns an error. Additionally,
- * you can calculate the MD5 while putting an object to Amazon S3 and compare the
- * returned ETag to the calculated MD5 value.</p> <p> The
- * <code>Content-MD5</code> header is required for any request to upload an object
- * with a retention period configured using Amazon S3 Object Lock. For more
- * information about Amazon S3 Object Lock, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html">Amazon
- * S3 Object Lock Overview</a> in the <i>Amazon S3 User Guide</i>. </p> <p>
- * <b>Server-side Encryption</b> </p> <p>You can optionally request server-side
- * encryption. With server-side encryption, Amazon S3 encrypts your data as it
- * writes it to disks in its data centers and decrypts the data when you access it.
- * You have the option to provide your own encryption key or use AWS managed
- * encryption keys (SSE-S3 or SSE-KMS). For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using
- * Server-Side Encryption</a>.</p> <p>If you request server-side encryption using
- * AWS Key Management Service (SSE-KMS), you can enable an S3 Bucket Key at the
- * object-level. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
- * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p> <b>Access Control
- * List (ACL)-Specific Request Headers</b> </p> <p>You can use headers to grant
- * ACL- based permissions. By default, all objects are private. Only the owner has
- * full access control. When adding a new object, you can grant permissions to
- * individual AWS accounts or to predefined groups defined by Amazon S3. These
- * permissions are then added to the ACL on the object. For more information, see
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing
- * ACLs Using the REST API</a>. </p> <p> <b>Storage Class Options</b> </p> <p>By
- * default, Amazon S3 uses the STANDARD Storage Class to store newly created
- * objects. The STANDARD storage class provides high durability and high
- * availability. Depending on performance needs, you can specify a different
- * Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For
- * more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage
- * Classes</a> in the <i>Amazon S3 Service Developer Guide</i>.</p> <p>
- * <b>Versioning</b> </p> <p>If you enable versioning for a bucket, Amazon S3
- * automatically generates a unique version ID for the object being stored. Amazon
- * S3 returns this ID in the response. When you enable versioning for a bucket, if
- * Amazon S3 receives multiple write requests for the same object simultaneously,
- * it stores all of the objects.</p> <p>For more information about versioning, see
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html">Adding
- * Objects to Versioning Enabled Buckets</a>. For information about returning the
- * versioning state of a bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>.
- * </p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObject">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutObjectOutcomeCallable PutObjectCallable(const Model::PutObjectRequest& request) const;
- /**
- * <p>Adds an object to a bucket. You must have WRITE permissions on a bucket to
- * add an object to it.</p> <p>Amazon S3 never adds partial objects; if you receive
- * a success response, Amazon S3 added the entire object to the bucket.</p>
- * <p>Amazon S3 is a distributed system. If it receives multiple write requests for
- * the same object simultaneously, it overwrites all but the last object written.
- * Amazon S3 does not provide object locking; if you need this, make sure to build
- * it into your application layer or use versioning instead.</p> <p>To ensure that
- * data is not corrupted traversing the network, use the <code>Content-MD5</code>
- * header. When you use this header, Amazon S3 checks the object against the
- * provided MD5 value and, if they do not match, returns an error. Additionally,
- * you can calculate the MD5 while putting an object to Amazon S3 and compare the
- * returned ETag to the calculated MD5 value.</p> <p> The
- * <code>Content-MD5</code> header is required for any request to upload an object
- * with a retention period configured using Amazon S3 Object Lock. For more
- * information about Amazon S3 Object Lock, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html">Amazon
- * S3 Object Lock Overview</a> in the <i>Amazon S3 User Guide</i>. </p> <p>
- * <b>Server-side Encryption</b> </p> <p>You can optionally request server-side
- * encryption. With server-side encryption, Amazon S3 encrypts your data as it
- * writes it to disks in its data centers and decrypts the data when you access it.
- * You have the option to provide your own encryption key or use AWS managed
- * encryption keys (SSE-S3 or SSE-KMS). For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using
- * Server-Side Encryption</a>.</p> <p>If you request server-side encryption using
- * AWS Key Management Service (SSE-KMS), you can enable an S3 Bucket Key at the
- * object-level. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3
- * Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p> <p> <b>Access Control
- * List (ACL)-Specific Request Headers</b> </p> <p>You can use headers to grant
- * ACL- based permissions. By default, all objects are private. Only the owner has
- * full access control. When adding a new object, you can grant permissions to
- * individual AWS accounts or to predefined groups defined by Amazon S3. These
- * permissions are then added to the ACL on the object. For more information, see
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html">Managing
- * ACLs Using the REST API</a>. </p> <p> <b>Storage Class Options</b> </p> <p>By
- * default, Amazon S3 uses the STANDARD Storage Class to store newly created
- * objects. The STANDARD storage class provides high durability and high
- * availability. Depending on performance needs, you can specify a different
- * Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For
- * more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage
- * Classes</a> in the <i>Amazon S3 Service Developer Guide</i>.</p> <p>
- * <b>Versioning</b> </p> <p>If you enable versioning for a bucket, Amazon S3
- * automatically generates a unique version ID for the object being stored. Amazon
- * S3 returns this ID in the response. When you enable versioning for a bucket, if
- * Amazon S3 receives multiple write requests for the same object simultaneously,
- * it stores all of the objects.</p> <p>For more information about versioning, see
- * <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html">Adding
- * Objects to Versioning Enabled Buckets</a>. For information about returning the
- * versioning state of a bucket, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>.
- * </p> <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObject">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutObjectAsync(const Model::PutObjectRequest& request, const PutObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Uses the <code>acl</code> subresource to set the access control list (ACL)
- * permissions for a new or existing object in an S3 bucket. You must have
- * <code>WRITE_ACP</code> permission to set the ACL of an object. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions">What
- * permissions can I grant?</a> in the <i>Amazon S3 User Guide</i>.</p> <p>This
- * action is not supported by Amazon S3 on Outposts.</p> <p>Depending on your
- * application needs, you can choose to set the ACL on an object using either the
- * request body or the headers. For example, if you have an existing application
- * that updates a bucket ACL using the request body, you can continue to use that
- * approach. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a> in the <i>Amazon S3 Developer Guide</i>.</p> <p>
- * <b>Access Permissions</b> </p> <p>You can set access permissions using one of
- * the following methods:</p> <ul> <li> <p>Specify a canned ACL with the
- * <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined
- * ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and
- * permissions. Specify the canned ACL name as the value of <code>x-amz-ac</code>l.
- * If you use this header, you cannot use other access control-specific headers in
- * your request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
- * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
- * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
- * headers. When using these headers, you specify explicit access permissions and
- * grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If
- * you use these ACL-specific headers, you cannot use <code>x-amz-acl</code> header
- * to set a canned ACL. These parameters map to the set of permissions that Amazon
- * S3 supports in an ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a>.</p> <p>You specify each grantee as a type=value
- * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
- * – if the value specified is the canonical user ID of an AWS account</p> </li>
- * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
- * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
- * the email address of an AWS account</p> <p>Using email addresses to
- * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
- * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
- * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
- * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
- * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
- * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
- * example, the following <code>x-amz-grant-read</code> header grants list objects
- * permission to the two AWS accounts identified by their email addresses.</p> <p>
- * <code>x-amz-grant-read: emailAddress="xyz@amazon.com",
- * emailAddress="abc@amazon.com" </code> </p> </li> </ul> <p>You can use either a
- * canned ACL or specify access permissions explicitly. You cannot do both.</p> <p>
- * <b>Grantee Values</b> </p> <p>You can specify the person (grantee) to whom
- * you're assigning access rights (using request elements) in the following
- * ways:</p> <ul> <li> <p>By the person's ID:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName>
- * </Grantee></code> </p> <p>DisplayName is optional and ignored in the
- * request.</p> </li> <li> <p>By URI:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee></code>
- * </p> </li> <li> <p>By Email address:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee></code>
- * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
- * Object acl request, appears as the CanonicalUser.</p> <p>Using email
- * addresses to specify a grantee is only supported in the following AWS Regions:
- * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
- * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
- * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
- * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
- * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
- * Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>
- * <b>Versioning</b> </p> <p>The ACL of an object is set at the object version
- * level. By default, PUT sets the ACL of the current version of an object. To set
- * the ACL of a different version, use the <code>versionId</code> subresource.</p>
- * <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAcl">AWS API
- * Reference</a></p>
- */
- virtual Model::PutObjectAclOutcome PutObjectAcl(const Model::PutObjectAclRequest& request) const;
- /**
- * <p>Uses the <code>acl</code> subresource to set the access control list (ACL)
- * permissions for a new or existing object in an S3 bucket. You must have
- * <code>WRITE_ACP</code> permission to set the ACL of an object. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions">What
- * permissions can I grant?</a> in the <i>Amazon S3 User Guide</i>.</p> <p>This
- * action is not supported by Amazon S3 on Outposts.</p> <p>Depending on your
- * application needs, you can choose to set the ACL on an object using either the
- * request body or the headers. For example, if you have an existing application
- * that updates a bucket ACL using the request body, you can continue to use that
- * approach. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a> in the <i>Amazon S3 Developer Guide</i>.</p> <p>
- * <b>Access Permissions</b> </p> <p>You can set access permissions using one of
- * the following methods:</p> <ul> <li> <p>Specify a canned ACL with the
- * <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined
- * ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and
- * permissions. Specify the canned ACL name as the value of <code>x-amz-ac</code>l.
- * If you use this header, you cannot use other access control-specific headers in
- * your request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
- * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
- * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
- * headers. When using these headers, you specify explicit access permissions and
- * grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If
- * you use these ACL-specific headers, you cannot use <code>x-amz-acl</code> header
- * to set a canned ACL. These parameters map to the set of permissions that Amazon
- * S3 supports in an ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a>.</p> <p>You specify each grantee as a type=value
- * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
- * – if the value specified is the canonical user ID of an AWS account</p> </li>
- * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
- * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
- * the email address of an AWS account</p> <p>Using email addresses to
- * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
- * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
- * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
- * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
- * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
- * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
- * example, the following <code>x-amz-grant-read</code> header grants list objects
- * permission to the two AWS accounts identified by their email addresses.</p> <p>
- * <code>x-amz-grant-read: emailAddress="xyz@amazon.com",
- * emailAddress="abc@amazon.com" </code> </p> </li> </ul> <p>You can use either a
- * canned ACL or specify access permissions explicitly. You cannot do both.</p> <p>
- * <b>Grantee Values</b> </p> <p>You can specify the person (grantee) to whom
- * you're assigning access rights (using request elements) in the following
- * ways:</p> <ul> <li> <p>By the person's ID:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName>
- * </Grantee></code> </p> <p>DisplayName is optional and ignored in the
- * request.</p> </li> <li> <p>By URI:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee></code>
- * </p> </li> <li> <p>By Email address:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee></code>
- * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
- * Object acl request, appears as the CanonicalUser.</p> <p>Using email
- * addresses to specify a grantee is only supported in the following AWS Regions:
- * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
- * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
- * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
- * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
- * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
- * Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>
- * <b>Versioning</b> </p> <p>The ACL of an object is set at the object version
- * level. By default, PUT sets the ACL of the current version of an object. To set
- * the ACL of a different version, use the <code>versionId</code> subresource.</p>
- * <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAcl">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutObjectAclOutcomeCallable PutObjectAclCallable(const Model::PutObjectAclRequest& request) const;
- /**
- * <p>Uses the <code>acl</code> subresource to set the access control list (ACL)
- * permissions for a new or existing object in an S3 bucket. You must have
- * <code>WRITE_ACP</code> permission to set the ACL of an object. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions">What
- * permissions can I grant?</a> in the <i>Amazon S3 User Guide</i>.</p> <p>This
- * action is not supported by Amazon S3 on Outposts.</p> <p>Depending on your
- * application needs, you can choose to set the ACL on an object using either the
- * request body or the headers. For example, if you have an existing application
- * that updates a bucket ACL using the request body, you can continue to use that
- * approach. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a> in the <i>Amazon S3 Developer Guide</i>.</p> <p>
- * <b>Access Permissions</b> </p> <p>You can set access permissions using one of
- * the following methods:</p> <ul> <li> <p>Specify a canned ACL with the
- * <code>x-amz-acl</code> request header. Amazon S3 supports a set of predefined
- * ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and
- * permissions. Specify the canned ACL name as the value of <code>x-amz-ac</code>l.
- * If you use this header, you cannot use other access control-specific headers in
- * your request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
- * ACL</a>.</p> </li> <li> <p>Specify access permissions explicitly with the
- * <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,
- * <code>x-amz-grant-write-acp</code>, and <code>x-amz-grant-full-control</code>
- * headers. When using these headers, you specify explicit access permissions and
- * grantees (AWS accounts or Amazon S3 groups) who will receive the permission. If
- * you use these ACL-specific headers, you cannot use <code>x-amz-acl</code> header
- * to set a canned ACL. These parameters map to the set of permissions that Amazon
- * S3 supports in an ACL. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
- * Control List (ACL) Overview</a>.</p> <p>You specify each grantee as a type=value
- * pair, where the type is one of the following:</p> <ul> <li> <p> <code>id</code>
- * – if the value specified is the canonical user ID of an AWS account</p> </li>
- * <li> <p> <code>uri</code> – if you are granting permissions to a predefined
- * group</p> </li> <li> <p> <code>emailAddress</code> – if the value specified is
- * the email address of an AWS account</p> <p>Using email addresses to
- * specify a grantee is only supported in the following AWS Regions: </p> <ul> <li>
- * <p>US East (N. Virginia)</p> </li> <li> <p>US West (N. California)</p> </li>
- * <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific (Singapore)</p> </li>
- * <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia Pacific (Tokyo)</p> </li>
- * <li> <p>Europe (Ireland)</p> </li> <li> <p>South America (São Paulo)</p> </li>
- * </ul> <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>For
- * example, the following <code>x-amz-grant-read</code> header grants list objects
- * permission to the two AWS accounts identified by their email addresses.</p> <p>
- * <code>x-amz-grant-read: emailAddress="xyz@amazon.com",
- * emailAddress="abc@amazon.com" </code> </p> </li> </ul> <p>You can use either a
- * canned ACL or specify access permissions explicitly. You cannot do both.</p> <p>
- * <b>Grantee Values</b> </p> <p>You can specify the person (grantee) to whom
- * you're assigning access rights (using request elements) in the following
- * ways:</p> <ul> <li> <p>By the person's ID:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName>
- * </Grantee></code> </p> <p>DisplayName is optional and ignored in the
- * request.</p> </li> <li> <p>By URI:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee></code>
- * </p> </li> <li> <p>By Email address:</p> <p> <code><Grantee
- * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- * xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee></code>
- * </p> <p>The grantee is resolved to the CanonicalUser and, in a response to a GET
- * Object acl request, appears as the CanonicalUser.</p> <p>Using email
- * addresses to specify a grantee is only supported in the following AWS Regions:
- * </p> <ul> <li> <p>US East (N. Virginia)</p> </li> <li> <p>US West (N.
- * California)</p> </li> <li> <p> US West (Oregon)</p> </li> <li> <p> Asia Pacific
- * (Singapore)</p> </li> <li> <p>Asia Pacific (Sydney)</p> </li> <li> <p>Asia
- * Pacific (Tokyo)</p> </li> <li> <p>Europe (Ireland)</p> </li> <li> <p>South
- * America (São Paulo)</p> </li> </ul> <p>For a list of all the Amazon S3 supported
- * Regions and endpoints, see <a
- * href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
- * and Endpoints</a> in the AWS General Reference.</p> </li> </ul> <p>
- * <b>Versioning</b> </p> <p>The ACL of an object is set at the object version
- * level. By default, PUT sets the ACL of the current version of an object. To set
- * the ACL of a different version, use the <code>versionId</code> subresource.</p>
- * <p class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAcl">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutObjectAclAsync(const Model::PutObjectAclRequest& request, const PutObjectAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Applies a Legal Hold configuration to the specified object. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
- * Outposts.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold">AWS
- * API Reference</a></p>
- */
- virtual Model::PutObjectLegalHoldOutcome PutObjectLegalHold(const Model::PutObjectLegalHoldRequest& request) const;
- /**
- * <p>Applies a Legal Hold configuration to the specified object. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
- * Outposts.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutObjectLegalHoldOutcomeCallable PutObjectLegalHoldCallable(const Model::PutObjectLegalHoldRequest& request) const;
- /**
- * <p>Applies a Legal Hold configuration to the specified object. For more
- * information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>.</p> <p>This action is not supported by Amazon S3 on
- * Outposts.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutObjectLegalHoldAsync(const Model::PutObjectLegalHoldRequest& request, const PutObjectLegalHoldResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Places an Object Lock configuration on the specified bucket. The rule
- * specified in the Object Lock configuration will be applied by default to every
- * new object placed in the specified bucket. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>. </p> <ul> <li> <p>The <code>DefaultRetention</code> settings
- * require both a mode and a period.</p> </li> <li> <p>The
- * <code>DefaultRetention</code> period can be either <code>Days</code> or
- * <code>Years</code> but you must select one. You cannot specify <code>Days</code>
- * and <code>Years</code> at the same time.</p> </li> <li> <p>You can only enable
- * Object Lock for new buckets. If you want to turn on Object Lock for an existing
- * bucket, contact AWS Support.</p> </li> </ul> <p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration">AWS
- * API Reference</a></p>
- */
- virtual Model::PutObjectLockConfigurationOutcome PutObjectLockConfiguration(const Model::PutObjectLockConfigurationRequest& request) const;
- /**
- * <p>Places an Object Lock configuration on the specified bucket. The rule
- * specified in the Object Lock configuration will be applied by default to every
- * new object placed in the specified bucket. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>. </p> <ul> <li> <p>The <code>DefaultRetention</code> settings
- * require both a mode and a period.</p> </li> <li> <p>The
- * <code>DefaultRetention</code> period can be either <code>Days</code> or
- * <code>Years</code> but you must select one. You cannot specify <code>Days</code>
- * and <code>Years</code> at the same time.</p> </li> <li> <p>You can only enable
- * Object Lock for new buckets. If you want to turn on Object Lock for an existing
- * bucket, contact AWS Support.</p> </li> </ul> <p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutObjectLockConfigurationOutcomeCallable PutObjectLockConfigurationCallable(const Model::PutObjectLockConfigurationRequest& request) const;
- /**
- * <p>Places an Object Lock configuration on the specified bucket. The rule
- * specified in the Object Lock configuration will be applied by default to every
- * new object placed in the specified bucket. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>. </p> <ul> <li> <p>The <code>DefaultRetention</code> settings
- * require both a mode and a period.</p> </li> <li> <p>The
- * <code>DefaultRetention</code> period can be either <code>Days</code> or
- * <code>Years</code> but you must select one. You cannot specify <code>Days</code>
- * and <code>Years</code> at the same time.</p> </li> <li> <p>You can only enable
- * Object Lock for new buckets. If you want to turn on Object Lock for an existing
- * bucket, contact AWS Support.</p> </li> </ul> <p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutObjectLockConfigurationAsync(const Model::PutObjectLockConfigurationRequest& request, const PutObjectLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Places an Object Retention configuration on an object. For more information,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>. </p> <p>This action is not supported by Amazon S3 on
- * Outposts.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention">AWS
- * API Reference</a></p>
- */
- virtual Model::PutObjectRetentionOutcome PutObjectRetention(const Model::PutObjectRetentionRequest& request) const;
- /**
- * <p>Places an Object Retention configuration on an object. For more information,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>. </p> <p>This action is not supported by Amazon S3 on
- * Outposts.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutObjectRetentionOutcomeCallable PutObjectRetentionCallable(const Model::PutObjectRetentionRequest& request) const;
- /**
- * <p>Places an Object Retention configuration on an object. For more information,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking
- * Objects</a>. </p> <p>This action is not supported by Amazon S3 on
- * Outposts.</p><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutObjectRetentionAsync(const Model::PutObjectRetentionRequest& request, const PutObjectRetentionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Sets the supplied tag-set to an object that already exists in a bucket.</p>
- * <p>A tag is a key-value pair. You can associate tags with an object by sending a
- * PUT request against the tagging subresource that is associated with the object.
- * You can retrieve tags by sending a GET request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>.</p>
- * <p>For tagging-related restrictions related to characters and encodings, see <a
- * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">Tag
- * Restrictions</a>. Note that Amazon S3 limits the maximum number of tags to 10
- * tags per object.</p> <p>To use this operation, you must have permission to
- * perform the <code>s3:PutObjectTagging</code> action. By default, the bucket
- * owner has this permission and can grant this permission to others.</p> <p>To put
- * tags of any other version, use the <code>versionId</code> query parameter. You
- * also need permission for the <code>s3:PutObjectVersionTagging</code> action.</p>
- * <p>For information about the Amazon S3 object tagging feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
- * Tagging</a>.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <ul>
- * <li> <p> <i>Code: InvalidTagError </i> </p> </li> <li> <p> <i>Cause: The tag
- * provided was not a valid tag. This error can occur if the tag did not pass input
- * validation. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
- * Tagging</a>.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
- * MalformedXMLError </i> </p> </li> <li> <p> <i>Cause: The XML provided does not
- * match the schema.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
- * OperationAbortedError </i> </p> </li> <li> <p> <i>Cause: A conflicting
- * conditional action is currently in progress against this resource. Please try
- * again.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code: InternalError</i>
- * </p> </li> <li> <p> <i>Cause: The service was unable to apply the provided tag
- * to the object.</i> </p> </li> </ul> </li> </ul> <p class="title"> <b>Related
- * Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTagging">AWS
- * API Reference</a></p>
- */
- virtual Model::PutObjectTaggingOutcome PutObjectTagging(const Model::PutObjectTaggingRequest& request) const;
- /**
- * <p>Sets the supplied tag-set to an object that already exists in a bucket.</p>
- * <p>A tag is a key-value pair. You can associate tags with an object by sending a
- * PUT request against the tagging subresource that is associated with the object.
- * You can retrieve tags by sending a GET request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>.</p>
- * <p>For tagging-related restrictions related to characters and encodings, see <a
- * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">Tag
- * Restrictions</a>. Note that Amazon S3 limits the maximum number of tags to 10
- * tags per object.</p> <p>To use this operation, you must have permission to
- * perform the <code>s3:PutObjectTagging</code> action. By default, the bucket
- * owner has this permission and can grant this permission to others.</p> <p>To put
- * tags of any other version, use the <code>versionId</code> query parameter. You
- * also need permission for the <code>s3:PutObjectVersionTagging</code> action.</p>
- * <p>For information about the Amazon S3 object tagging feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
- * Tagging</a>.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <ul>
- * <li> <p> <i>Code: InvalidTagError </i> </p> </li> <li> <p> <i>Cause: The tag
- * provided was not a valid tag. This error can occur if the tag did not pass input
- * validation. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
- * Tagging</a>.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
- * MalformedXMLError </i> </p> </li> <li> <p> <i>Cause: The XML provided does not
- * match the schema.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
- * OperationAbortedError </i> </p> </li> <li> <p> <i>Cause: A conflicting
- * conditional action is currently in progress against this resource. Please try
- * again.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code: InternalError</i>
- * </p> </li> <li> <p> <i>Cause: The service was unable to apply the provided tag
- * to the object.</i> </p> </li> </ul> </li> </ul> <p class="title"> <b>Related
- * Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTagging">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutObjectTaggingOutcomeCallable PutObjectTaggingCallable(const Model::PutObjectTaggingRequest& request) const;
- /**
- * <p>Sets the supplied tag-set to an object that already exists in a bucket.</p>
- * <p>A tag is a key-value pair. You can associate tags with an object by sending a
- * PUT request against the tagging subresource that is associated with the object.
- * You can retrieve tags by sending a GET request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>.</p>
- * <p>For tagging-related restrictions related to characters and encodings, see <a
- * href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html">Tag
- * Restrictions</a>. Note that Amazon S3 limits the maximum number of tags to 10
- * tags per object.</p> <p>To use this operation, you must have permission to
- * perform the <code>s3:PutObjectTagging</code> action. By default, the bucket
- * owner has this permission and can grant this permission to others.</p> <p>To put
- * tags of any other version, use the <code>versionId</code> query parameter. You
- * also need permission for the <code>s3:PutObjectVersionTagging</code> action.</p>
- * <p>For information about the Amazon S3 object tagging feature, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
- * Tagging</a>.</p> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <ul>
- * <li> <p> <i>Code: InvalidTagError </i> </p> </li> <li> <p> <i>Cause: The tag
- * provided was not a valid tag. This error can occur if the tag did not pass input
- * validation. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html">Object
- * Tagging</a>.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
- * MalformedXMLError </i> </p> </li> <li> <p> <i>Cause: The XML provided does not
- * match the schema.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
- * OperationAbortedError </i> </p> </li> <li> <p> <i>Cause: A conflicting
- * conditional action is currently in progress against this resource. Please try
- * again.</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code: InternalError</i>
- * </p> </li> <li> <p> <i>Cause: The service was unable to apply the provided tag
- * to the object.</i> </p> </li> </ul> </li> </ul> <p class="title"> <b>Related
- * Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTagging">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutObjectTaggingAsync(const Model::PutObjectTaggingRequest& request, const PutObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Creates or modifies the <code>PublicAccessBlock</code> configuration for an
- * Amazon S3 bucket. To use this operation, you must have the
- * <code>s3:PutBucketPublicAccessBlock</code> permission. For more information
- * about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>.</p> <p>When Amazon S3 evaluates the
- * <code>PublicAccessBlock</code> configuration for a bucket or an object, it
- * checks the <code>PublicAccessBlock</code> configuration for both the bucket (or
- * the bucket that contains the object) and the bucket owner's account. If the
- * <code>PublicAccessBlock</code> configurations are different between the bucket
- * and the account, Amazon S3 uses the most restrictive combination of the
- * bucket-level and account-level settings.</p> <p>For more
- * information about when Amazon S3 considers a bucket or an object public, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
- * Meaning of "Public"</a>.</p> <p class="title"> <b>Related Resources</b> </p>
- * <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
- * Amazon S3 Block Public Access</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock">AWS
- * API Reference</a></p>
- */
- virtual Model::PutPublicAccessBlockOutcome PutPublicAccessBlock(const Model::PutPublicAccessBlockRequest& request) const;
- /**
- * <p>Creates or modifies the <code>PublicAccessBlock</code> configuration for an
- * Amazon S3 bucket. To use this operation, you must have the
- * <code>s3:PutBucketPublicAccessBlock</code> permission. For more information
- * about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>.</p> <p>When Amazon S3 evaluates the
- * <code>PublicAccessBlock</code> configuration for a bucket or an object, it
- * checks the <code>PublicAccessBlock</code> configuration for both the bucket (or
- * the bucket that contains the object) and the bucket owner's account. If the
- * <code>PublicAccessBlock</code> configurations are different between the bucket
- * and the account, Amazon S3 uses the most restrictive combination of the
- * bucket-level and account-level settings.</p> <p>For more
- * information about when Amazon S3 considers a bucket or an object public, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
- * Meaning of "Public"</a>.</p> <p class="title"> <b>Related Resources</b> </p>
- * <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
- * Amazon S3 Block Public Access</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::PutPublicAccessBlockOutcomeCallable PutPublicAccessBlockCallable(const Model::PutPublicAccessBlockRequest& request) const;
- /**
- * <p>Creates or modifies the <code>PublicAccessBlock</code> configuration for an
- * Amazon S3 bucket. To use this operation, you must have the
- * <code>s3:PutBucketPublicAccessBlock</code> permission. For more information
- * about Amazon S3 permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a>.</p> <p>When Amazon S3 evaluates the
- * <code>PublicAccessBlock</code> configuration for a bucket or an object, it
- * checks the <code>PublicAccessBlock</code> configuration for both the bucket (or
- * the bucket that contains the object) and the bucket owner's account. If the
- * <code>PublicAccessBlock</code> configurations are different between the bucket
- * and the account, Amazon S3 uses the most restrictive combination of the
- * bucket-level and account-level settings.</p> <p>For more
- * information about when Amazon S3 considers a bucket or an object public, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The
- * Meaning of "Public"</a>.</p> <p class="title"> <b>Related Resources</b> </p>
- * <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using
- * Amazon S3 Block Public Access</a> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void PutPublicAccessBlockAsync(const Model::PutPublicAccessBlockRequest& request, const PutPublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Restores an archived copy of an object back into Amazon S3</p> <p>This action
- * is not supported by Amazon S3 on Outposts.</p> <p>This action performs the
- * following types of requests: </p> <ul> <li> <p> <code>select</code> - Perform a
- * select query on an archived object</p> </li> <li> <p> <code>restore an
- * archive</code> - Restore an archived object</p> </li> </ul> <p>To use this
- * operation, you must have permissions to perform the
- * <code>s3:RestoreObject</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p> <b>Querying Archives with Select Requests</b> </p> <p>You use
- * a select type of request to perform SQL queries on archived objects. The
- * archived objects that are being queried by the select request must be formatted
- * as uncompressed comma-separated values (CSV) files. You can run queries and
- * custom analytics on your archived data without having to restore your data to a
- * hotter Amazon S3 tier. For an overview about select requests, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying
- * Archived Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When making a
- * select request, do the following:</p> <ul> <li> <p>Define an output location for
- * the select query's output. This must be an Amazon S3 bucket in the same AWS
- * Region as the bucket that contains the archive object that is being queried. The
- * AWS account that initiates the job must have permissions to write to the S3
- * bucket. You can specify the storage class and encryption for the output objects
- * stored in the bucket. For more information about output, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying
- * Archived Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>For more
- * information about the <code>S3</code> structure in the request body, see the
- * following:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Managing
- * Access with ACLs</a> in the <i>Amazon S3 User Guide</i> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
- * Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i> </p>
- * </li> </ul> </li> <li> <p>Define the SQL expression for the <code>SELECT</code>
- * type of restoration for your query in the request body's
- * <code>SelectParameters</code> structure. You can use expressions like the
- * following examples.</p> <ul> <li> <p>The following expression returns all
- * records from the specified object.</p> <p> <code>SELECT * FROM Object</code>
- * </p> </li> <li> <p>Assuming that you are not using any headers for data stored
- * in the object, you can specify columns with positional headers.</p> <p>
- * <code>SELECT s._1, s._2 FROM Object s WHERE s._3 > 100</code> </p> </li> <li>
- * <p>If you have headers and you set the <code>fileHeaderInfo</code> in the
- * <code>CSV</code> structure in the request body to <code>USE</code>, you can
- * specify headers in the query. (If you set the <code>fileHeaderInfo</code> field
- * to <code>IGNORE</code>, the first row is skipped for the query.) You cannot mix
- * ordinal positions with header column names. </p> <p> <code>SELECT s.Id,
- * s.FirstName, s.SSN FROM S3Object s</code> </p> </li> </ul> </li> </ul> <p>For
- * more information about using SQL with S3 Glacier Select restore, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL
- * Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3
- * User Guide</i>. </p> <p>When making a select request, you can also do the
- * following:</p> <ul> <li> <p>To expedite your queries, specify the
- * <code>Expedited</code> tier. For more information about tiers, see "Restoring
- * Archives," later in this topic.</p> </li> <li> <p>Specify details about the data
- * serialization format of both the input object that is being queried and the
- * serialization of the CSV-encoded query results.</p> </li> </ul> <p>The following
- * are additional important facts about the select feature:</p> <ul> <li> <p>The
- * output results are new Amazon S3 objects. Unlike archive retrievals, they are
- * stored until explicitly deleted-manually or through a lifecycle policy.</p>
- * </li> <li> <p>You can issue more than one select request on the same Amazon S3
- * object. Amazon S3 doesn't deduplicate requests, so avoid issuing duplicate
- * requests.</p> </li> <li> <p> Amazon S3 accepts a select request even if the
- * object has already been restored. A select request doesn’t return error response
- * <code>409</code>.</p> </li> </ul> <p> <b>Restoring objects</b> </p> <p>Objects
- * that you archive to the S3 Glacier or S3 Glacier Deep Archive storage class, and
- * S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers are
- * not accessible in real time. For objects in Archive Access or Deep Archive
- * Access tiers you must first initiate a restore request, and then wait until the
- * object is moved into the Frequent Access tier. For objects in S3 Glacier or S3
- * Glacier Deep Archive storage classes you must first initiate a restore request,
- * and then wait until a temporary copy of the object is available. To access an
- * archived object, you must restore the object for the duration (number of days)
- * that you specify.</p> <p>To restore a specific object version, you can provide a
- * version ID. If you don't provide a version ID, Amazon S3 restores the current
- * version.</p> <p>When restoring an archived object (or using a select request),
- * you can specify one of the following data access tier options in the
- * <code>Tier</code> element of the request body: </p> <ul> <li> <p> <b>
- * <code>Expedited</code> </b> - Expedited retrievals allow you to quickly access
- * your data stored in the S3 Glacier storage class or S3 Intelligent-Tiering
- * Archive tier when occasional urgent requests for a subset of archives are
- * required. For all but the largest archived objects (250 MB+), data accessed
- * using Expedited retrievals is typically made available within 1–5 minutes.
- * Provisioned capacity ensures that retrieval capacity for Expedited retrievals is
- * available when you need it. Expedited retrievals and provisioned capacity are
- * not available for objects stored in the S3 Glacier Deep Archive storage class or
- * S3 Intelligent-Tiering Deep Archive tier.</p> </li> <li> <p> <b>
- * <code>Standard</code> </b> - Standard retrievals allow you to access any of your
- * archived objects within several hours. This is the default option for retrieval
- * requests that do not specify the retrieval option. Standard retrievals typically
- * finish within 3–5 hours for objects stored in the S3 Glacier storage class or S3
- * Intelligent-Tiering Archive tier. They typically finish within 12 hours for
- * objects stored in the S3 Glacier Deep Archive storage class or S3
- * Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects
- * stored in S3 Intelligent-Tiering.</p> </li> <li> <p> <b> <code>Bulk</code> </b>
- * - Bulk retrievals are the lowest-cost retrieval option in S3 Glacier, enabling
- * you to retrieve large amounts, even petabytes, of data inexpensively. Bulk
- * retrievals typically finish within 5–12 hours for objects stored in the S3
- * Glacier storage class or S3 Intelligent-Tiering Archive tier. They typically
- * finish within 48 hours for objects stored in the S3 Glacier Deep Archive storage
- * class or S3 Intelligent-Tiering Deep Archive tier. Bulk retrievals are free for
- * objects stored in S3 Intelligent-Tiering.</p> </li> </ul> <p>For more
- * information about archive retrieval options and provisioned capacity for
- * <code>Expedited</code> data access, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring
- * Archived Objects</a> in the <i>Amazon S3 User Guide</i>. </p> <p>You can use
- * Amazon S3 restore speed upgrade to change the restore speed to a faster speed
- * while it is in progress. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html">
- * Upgrading the speed of an in-progress restore</a> in the <i>Amazon S3 User
- * Guide</i>. </p> <p>To get the status of object restoration, you can send a
- * <code>HEAD</code> request. Operations return the <code>x-amz-restore</code>
- * header, which provides information about the restoration status, in the
- * response. You can use Amazon S3 event notifications to notify you when a restore
- * is initiated or completed. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
- * Amazon S3 Event Notifications</a> in the <i>Amazon S3 User Guide</i>.</p>
- * <p>After restoring an archived object, you can update the restoration period by
- * reissuing the request with a new period. Amazon S3 updates the restoration
- * period relative to the current time and charges only for the request-there are
- * no data transfer charges. You cannot update the restoration period when Amazon
- * S3 is actively processing your current restore request for the object.</p> <p>If
- * your bucket has a lifecycle configuration with a rule that includes an
- * expiration action, the object expiration overrides the life span that you
- * specify in a restore request. For example, if you restore an object copy for 10
- * days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the
- * object in 3 days. For more information about lifecycle configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
- * and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
- * Lifecycle Management</a> in <i>Amazon S3 User Guide</i>.</p> <p>
- * <b>Responses</b> </p> <p>A successful action returns either the <code>200
- * OK</code> or <code>202 Accepted</code> status code. </p> <ul> <li> <p>If the
- * object is not previously restored, then Amazon S3 returns <code>202
- * Accepted</code> in the response. </p> </li> <li> <p>If the object is previously
- * restored, Amazon S3 returns <code>200 OK</code> in the response. </p> </li>
- * </ul> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p>
- * <i>Code: RestoreAlreadyInProgress</i> </p> </li> <li> <p> <i>Cause: Object
- * restore is already in progress. (This error does not apply to SELECT type
- * requests.)</i> </p> </li> <li> <p> <i>HTTP Status Code: 409 Conflict</i> </p>
- * </li> <li> <p> <i>SOAP Fault Code Prefix: Client</i> </p> </li> </ul> </li> <li>
- * <ul> <li> <p> <i>Code: GlacierExpeditedRetrievalNotAvailable</i> </p> </li> <li>
- * <p> <i>Cause: expedited retrievals are currently not available. Try again later.
- * (Returned if there is insufficient capacity to process the Expedited request.
- * This error applies only to Expedited retrievals and not to S3 Standard or Bulk
- * retrievals.)</i> </p> </li> <li> <p> <i>HTTP Status Code: 503</i> </p> </li>
- * <li> <p> <i>SOAP Fault Code Prefix: N/A</i> </p> </li> </ul> </li> </ul> <p
- * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL
- * Reference for Amazon S3 Select and S3 Glacier Select </a> in the <i>Amazon S3
- * User Guide</i> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreObject">AWS
- * API Reference</a></p>
- */
- virtual Model::RestoreObjectOutcome RestoreObject(const Model::RestoreObjectRequest& request) const;
- /**
- * <p>Restores an archived copy of an object back into Amazon S3</p> <p>This action
- * is not supported by Amazon S3 on Outposts.</p> <p>This action performs the
- * following types of requests: </p> <ul> <li> <p> <code>select</code> - Perform a
- * select query on an archived object</p> </li> <li> <p> <code>restore an
- * archive</code> - Restore an archived object</p> </li> </ul> <p>To use this
- * operation, you must have permissions to perform the
- * <code>s3:RestoreObject</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p> <b>Querying Archives with Select Requests</b> </p> <p>You use
- * a select type of request to perform SQL queries on archived objects. The
- * archived objects that are being queried by the select request must be formatted
- * as uncompressed comma-separated values (CSV) files. You can run queries and
- * custom analytics on your archived data without having to restore your data to a
- * hotter Amazon S3 tier. For an overview about select requests, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying
- * Archived Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When making a
- * select request, do the following:</p> <ul> <li> <p>Define an output location for
- * the select query's output. This must be an Amazon S3 bucket in the same AWS
- * Region as the bucket that contains the archive object that is being queried. The
- * AWS account that initiates the job must have permissions to write to the S3
- * bucket. You can specify the storage class and encryption for the output objects
- * stored in the bucket. For more information about output, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying
- * Archived Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>For more
- * information about the <code>S3</code> structure in the request body, see the
- * following:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Managing
- * Access with ACLs</a> in the <i>Amazon S3 User Guide</i> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
- * Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i> </p>
- * </li> </ul> </li> <li> <p>Define the SQL expression for the <code>SELECT</code>
- * type of restoration for your query in the request body's
- * <code>SelectParameters</code> structure. You can use expressions like the
- * following examples.</p> <ul> <li> <p>The following expression returns all
- * records from the specified object.</p> <p> <code>SELECT * FROM Object</code>
- * </p> </li> <li> <p>Assuming that you are not using any headers for data stored
- * in the object, you can specify columns with positional headers.</p> <p>
- * <code>SELECT s._1, s._2 FROM Object s WHERE s._3 > 100</code> </p> </li> <li>
- * <p>If you have headers and you set the <code>fileHeaderInfo</code> in the
- * <code>CSV</code> structure in the request body to <code>USE</code>, you can
- * specify headers in the query. (If you set the <code>fileHeaderInfo</code> field
- * to <code>IGNORE</code>, the first row is skipped for the query.) You cannot mix
- * ordinal positions with header column names. </p> <p> <code>SELECT s.Id,
- * s.FirstName, s.SSN FROM S3Object s</code> </p> </li> </ul> </li> </ul> <p>For
- * more information about using SQL with S3 Glacier Select restore, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL
- * Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3
- * User Guide</i>. </p> <p>When making a select request, you can also do the
- * following:</p> <ul> <li> <p>To expedite your queries, specify the
- * <code>Expedited</code> tier. For more information about tiers, see "Restoring
- * Archives," later in this topic.</p> </li> <li> <p>Specify details about the data
- * serialization format of both the input object that is being queried and the
- * serialization of the CSV-encoded query results.</p> </li> </ul> <p>The following
- * are additional important facts about the select feature:</p> <ul> <li> <p>The
- * output results are new Amazon S3 objects. Unlike archive retrievals, they are
- * stored until explicitly deleted-manually or through a lifecycle policy.</p>
- * </li> <li> <p>You can issue more than one select request on the same Amazon S3
- * object. Amazon S3 doesn't deduplicate requests, so avoid issuing duplicate
- * requests.</p> </li> <li> <p> Amazon S3 accepts a select request even if the
- * object has already been restored. A select request doesn’t return error response
- * <code>409</code>.</p> </li> </ul> <p> <b>Restoring objects</b> </p> <p>Objects
- * that you archive to the S3 Glacier or S3 Glacier Deep Archive storage class, and
- * S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers are
- * not accessible in real time. For objects in Archive Access or Deep Archive
- * Access tiers you must first initiate a restore request, and then wait until the
- * object is moved into the Frequent Access tier. For objects in S3 Glacier or S3
- * Glacier Deep Archive storage classes you must first initiate a restore request,
- * and then wait until a temporary copy of the object is available. To access an
- * archived object, you must restore the object for the duration (number of days)
- * that you specify.</p> <p>To restore a specific object version, you can provide a
- * version ID. If you don't provide a version ID, Amazon S3 restores the current
- * version.</p> <p>When restoring an archived object (or using a select request),
- * you can specify one of the following data access tier options in the
- * <code>Tier</code> element of the request body: </p> <ul> <li> <p> <b>
- * <code>Expedited</code> </b> - Expedited retrievals allow you to quickly access
- * your data stored in the S3 Glacier storage class or S3 Intelligent-Tiering
- * Archive tier when occasional urgent requests for a subset of archives are
- * required. For all but the largest archived objects (250 MB+), data accessed
- * using Expedited retrievals is typically made available within 1–5 minutes.
- * Provisioned capacity ensures that retrieval capacity for Expedited retrievals is
- * available when you need it. Expedited retrievals and provisioned capacity are
- * not available for objects stored in the S3 Glacier Deep Archive storage class or
- * S3 Intelligent-Tiering Deep Archive tier.</p> </li> <li> <p> <b>
- * <code>Standard</code> </b> - Standard retrievals allow you to access any of your
- * archived objects within several hours. This is the default option for retrieval
- * requests that do not specify the retrieval option. Standard retrievals typically
- * finish within 3–5 hours for objects stored in the S3 Glacier storage class or S3
- * Intelligent-Tiering Archive tier. They typically finish within 12 hours for
- * objects stored in the S3 Glacier Deep Archive storage class or S3
- * Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects
- * stored in S3 Intelligent-Tiering.</p> </li> <li> <p> <b> <code>Bulk</code> </b>
- * - Bulk retrievals are the lowest-cost retrieval option in S3 Glacier, enabling
- * you to retrieve large amounts, even petabytes, of data inexpensively. Bulk
- * retrievals typically finish within 5–12 hours for objects stored in the S3
- * Glacier storage class or S3 Intelligent-Tiering Archive tier. They typically
- * finish within 48 hours for objects stored in the S3 Glacier Deep Archive storage
- * class or S3 Intelligent-Tiering Deep Archive tier. Bulk retrievals are free for
- * objects stored in S3 Intelligent-Tiering.</p> </li> </ul> <p>For more
- * information about archive retrieval options and provisioned capacity for
- * <code>Expedited</code> data access, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring
- * Archived Objects</a> in the <i>Amazon S3 User Guide</i>. </p> <p>You can use
- * Amazon S3 restore speed upgrade to change the restore speed to a faster speed
- * while it is in progress. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html">
- * Upgrading the speed of an in-progress restore</a> in the <i>Amazon S3 User
- * Guide</i>. </p> <p>To get the status of object restoration, you can send a
- * <code>HEAD</code> request. Operations return the <code>x-amz-restore</code>
- * header, which provides information about the restoration status, in the
- * response. You can use Amazon S3 event notifications to notify you when a restore
- * is initiated or completed. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
- * Amazon S3 Event Notifications</a> in the <i>Amazon S3 User Guide</i>.</p>
- * <p>After restoring an archived object, you can update the restoration period by
- * reissuing the request with a new period. Amazon S3 updates the restoration
- * period relative to the current time and charges only for the request-there are
- * no data transfer charges. You cannot update the restoration period when Amazon
- * S3 is actively processing your current restore request for the object.</p> <p>If
- * your bucket has a lifecycle configuration with a rule that includes an
- * expiration action, the object expiration overrides the life span that you
- * specify in a restore request. For example, if you restore an object copy for 10
- * days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the
- * object in 3 days. For more information about lifecycle configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
- * and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
- * Lifecycle Management</a> in <i>Amazon S3 User Guide</i>.</p> <p>
- * <b>Responses</b> </p> <p>A successful action returns either the <code>200
- * OK</code> or <code>202 Accepted</code> status code. </p> <ul> <li> <p>If the
- * object is not previously restored, then Amazon S3 returns <code>202
- * Accepted</code> in the response. </p> </li> <li> <p>If the object is previously
- * restored, Amazon S3 returns <code>200 OK</code> in the response. </p> </li>
- * </ul> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p>
- * <i>Code: RestoreAlreadyInProgress</i> </p> </li> <li> <p> <i>Cause: Object
- * restore is already in progress. (This error does not apply to SELECT type
- * requests.)</i> </p> </li> <li> <p> <i>HTTP Status Code: 409 Conflict</i> </p>
- * </li> <li> <p> <i>SOAP Fault Code Prefix: Client</i> </p> </li> </ul> </li> <li>
- * <ul> <li> <p> <i>Code: GlacierExpeditedRetrievalNotAvailable</i> </p> </li> <li>
- * <p> <i>Cause: expedited retrievals are currently not available. Try again later.
- * (Returned if there is insufficient capacity to process the Expedited request.
- * This error applies only to Expedited retrievals and not to S3 Standard or Bulk
- * retrievals.)</i> </p> </li> <li> <p> <i>HTTP Status Code: 503</i> </p> </li>
- * <li> <p> <i>SOAP Fault Code Prefix: N/A</i> </p> </li> </ul> </li> </ul> <p
- * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL
- * Reference for Amazon S3 Select and S3 Glacier Select </a> in the <i>Amazon S3
- * User Guide</i> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreObject">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::RestoreObjectOutcomeCallable RestoreObjectCallable(const Model::RestoreObjectRequest& request) const;
- /**
- * <p>Restores an archived copy of an object back into Amazon S3</p> <p>This action
- * is not supported by Amazon S3 on Outposts.</p> <p>This action performs the
- * following types of requests: </p> <ul> <li> <p> <code>select</code> - Perform a
- * select query on an archived object</p> </li> <li> <p> <code>restore an
- * archive</code> - Restore an archived object</p> </li> </ul> <p>To use this
- * operation, you must have permissions to perform the
- * <code>s3:RestoreObject</code> action. The bucket owner has this permission by
- * default and can grant this permission to others. For more information about
- * permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions
- * Related to Bucket Subresource Operations</a> and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing
- * Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p> <b>Querying Archives with Select Requests</b> </p> <p>You use
- * a select type of request to perform SQL queries on archived objects. The
- * archived objects that are being queried by the select request must be formatted
- * as uncompressed comma-separated values (CSV) files. You can run queries and
- * custom analytics on your archived data without having to restore your data to a
- * hotter Amazon S3 tier. For an overview about select requests, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying
- * Archived Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When making a
- * select request, do the following:</p> <ul> <li> <p>Define an output location for
- * the select query's output. This must be an Amazon S3 bucket in the same AWS
- * Region as the bucket that contains the archive object that is being queried. The
- * AWS account that initiates the job must have permissions to write to the S3
- * bucket. You can specify the storage class and encryption for the output objects
- * stored in the bucket. For more information about output, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html">Querying
- * Archived Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>For more
- * information about the <code>S3</code> structure in the request body, see the
- * following:</p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Managing
- * Access with ACLs</a> in the <i>Amazon S3 User Guide</i> </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
- * Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i> </p>
- * </li> </ul> </li> <li> <p>Define the SQL expression for the <code>SELECT</code>
- * type of restoration for your query in the request body's
- * <code>SelectParameters</code> structure. You can use expressions like the
- * following examples.</p> <ul> <li> <p>The following expression returns all
- * records from the specified object.</p> <p> <code>SELECT * FROM Object</code>
- * </p> </li> <li> <p>Assuming that you are not using any headers for data stored
- * in the object, you can specify columns with positional headers.</p> <p>
- * <code>SELECT s._1, s._2 FROM Object s WHERE s._3 > 100</code> </p> </li> <li>
- * <p>If you have headers and you set the <code>fileHeaderInfo</code> in the
- * <code>CSV</code> structure in the request body to <code>USE</code>, you can
- * specify headers in the query. (If you set the <code>fileHeaderInfo</code> field
- * to <code>IGNORE</code>, the first row is skipped for the query.) You cannot mix
- * ordinal positions with header column names. </p> <p> <code>SELECT s.Id,
- * s.FirstName, s.SSN FROM S3Object s</code> </p> </li> </ul> </li> </ul> <p>For
- * more information about using SQL with S3 Glacier Select restore, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL
- * Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3
- * User Guide</i>. </p> <p>When making a select request, you can also do the
- * following:</p> <ul> <li> <p>To expedite your queries, specify the
- * <code>Expedited</code> tier. For more information about tiers, see "Restoring
- * Archives," later in this topic.</p> </li> <li> <p>Specify details about the data
- * serialization format of both the input object that is being queried and the
- * serialization of the CSV-encoded query results.</p> </li> </ul> <p>The following
- * are additional important facts about the select feature:</p> <ul> <li> <p>The
- * output results are new Amazon S3 objects. Unlike archive retrievals, they are
- * stored until explicitly deleted-manually or through a lifecycle policy.</p>
- * </li> <li> <p>You can issue more than one select request on the same Amazon S3
- * object. Amazon S3 doesn't deduplicate requests, so avoid issuing duplicate
- * requests.</p> </li> <li> <p> Amazon S3 accepts a select request even if the
- * object has already been restored. A select request doesn’t return error response
- * <code>409</code>.</p> </li> </ul> <p> <b>Restoring objects</b> </p> <p>Objects
- * that you archive to the S3 Glacier or S3 Glacier Deep Archive storage class, and
- * S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers are
- * not accessible in real time. For objects in Archive Access or Deep Archive
- * Access tiers you must first initiate a restore request, and then wait until the
- * object is moved into the Frequent Access tier. For objects in S3 Glacier or S3
- * Glacier Deep Archive storage classes you must first initiate a restore request,
- * and then wait until a temporary copy of the object is available. To access an
- * archived object, you must restore the object for the duration (number of days)
- * that you specify.</p> <p>To restore a specific object version, you can provide a
- * version ID. If you don't provide a version ID, Amazon S3 restores the current
- * version.</p> <p>When restoring an archived object (or using a select request),
- * you can specify one of the following data access tier options in the
- * <code>Tier</code> element of the request body: </p> <ul> <li> <p> <b>
- * <code>Expedited</code> </b> - Expedited retrievals allow you to quickly access
- * your data stored in the S3 Glacier storage class or S3 Intelligent-Tiering
- * Archive tier when occasional urgent requests for a subset of archives are
- * required. For all but the largest archived objects (250 MB+), data accessed
- * using Expedited retrievals is typically made available within 1–5 minutes.
- * Provisioned capacity ensures that retrieval capacity for Expedited retrievals is
- * available when you need it. Expedited retrievals and provisioned capacity are
- * not available for objects stored in the S3 Glacier Deep Archive storage class or
- * S3 Intelligent-Tiering Deep Archive tier.</p> </li> <li> <p> <b>
- * <code>Standard</code> </b> - Standard retrievals allow you to access any of your
- * archived objects within several hours. This is the default option for retrieval
- * requests that do not specify the retrieval option. Standard retrievals typically
- * finish within 3–5 hours for objects stored in the S3 Glacier storage class or S3
- * Intelligent-Tiering Archive tier. They typically finish within 12 hours for
- * objects stored in the S3 Glacier Deep Archive storage class or S3
- * Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects
- * stored in S3 Intelligent-Tiering.</p> </li> <li> <p> <b> <code>Bulk</code> </b>
- * - Bulk retrievals are the lowest-cost retrieval option in S3 Glacier, enabling
- * you to retrieve large amounts, even petabytes, of data inexpensively. Bulk
- * retrievals typically finish within 5–12 hours for objects stored in the S3
- * Glacier storage class or S3 Intelligent-Tiering Archive tier. They typically
- * finish within 48 hours for objects stored in the S3 Glacier Deep Archive storage
- * class or S3 Intelligent-Tiering Deep Archive tier. Bulk retrievals are free for
- * objects stored in S3 Intelligent-Tiering.</p> </li> </ul> <p>For more
- * information about archive retrieval options and provisioned capacity for
- * <code>Expedited</code> data access, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html">Restoring
- * Archived Objects</a> in the <i>Amazon S3 User Guide</i>. </p> <p>You can use
- * Amazon S3 restore speed upgrade to change the restore speed to a faster speed
- * while it is in progress. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html">
- * Upgrading the speed of an in-progress restore</a> in the <i>Amazon S3 User
- * Guide</i>. </p> <p>To get the status of object restoration, you can send a
- * <code>HEAD</code> request. Operations return the <code>x-amz-restore</code>
- * header, which provides information about the restoration status, in the
- * response. You can use Amazon S3 event notifications to notify you when a restore
- * is initiated or completed. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring
- * Amazon S3 Event Notifications</a> in the <i>Amazon S3 User Guide</i>.</p>
- * <p>After restoring an archived object, you can update the restoration period by
- * reissuing the request with a new period. Amazon S3 updates the restoration
- * period relative to the current time and charges only for the request-there are
- * no data transfer charges. You cannot update the restoration period when Amazon
- * S3 is actively processing your current restore request for the object.</p> <p>If
- * your bucket has a lifecycle configuration with a rule that includes an
- * expiration action, the object expiration overrides the life span that you
- * specify in a restore request. For example, if you restore an object copy for 10
- * days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the
- * object in 3 days. For more information about lifecycle configuration, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
- * and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html">Object
- * Lifecycle Management</a> in <i>Amazon S3 User Guide</i>.</p> <p>
- * <b>Responses</b> </p> <p>A successful action returns either the <code>200
- * OK</code> or <code>202 Accepted</code> status code. </p> <ul> <li> <p>If the
- * object is not previously restored, then Amazon S3 returns <code>202
- * Accepted</code> in the response. </p> </li> <li> <p>If the object is previously
- * restored, Amazon S3 returns <code>200 OK</code> in the response. </p> </li>
- * </ul> <p class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p>
- * <i>Code: RestoreAlreadyInProgress</i> </p> </li> <li> <p> <i>Cause: Object
- * restore is already in progress. (This error does not apply to SELECT type
- * requests.)</i> </p> </li> <li> <p> <i>HTTP Status Code: 409 Conflict</i> </p>
- * </li> <li> <p> <i>SOAP Fault Code Prefix: Client</i> </p> </li> </ul> </li> <li>
- * <ul> <li> <p> <i>Code: GlacierExpeditedRetrievalNotAvailable</i> </p> </li> <li>
- * <p> <i>Cause: expedited retrievals are currently not available. Try again later.
- * (Returned if there is insufficient capacity to process the Expedited request.
- * This error applies only to Expedited retrievals and not to S3 Standard or Bulk
- * retrievals.)</i> </p> </li> <li> <p> <i>HTTP Status Code: 503</i> </p> </li>
- * <li> <p> <i>SOAP Fault Code Prefix: N/A</i> </p> </li> </ul> </li> </ul> <p
- * class="title"> <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">SQL
- * Reference for Amazon S3 Select and S3 Glacier Select </a> in the <i>Amazon S3
- * User Guide</i> </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreObject">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void RestoreObjectAsync(const Model::RestoreObjectRequest& request, const RestoreObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>This action filters the contents of an Amazon S3 object based on a simple
- * structured query language (SQL) statement. In the request, along with the SQL
- * expression, you must also specify a data serialization format (JSON, CSV, or
- * Apache Parquet) of the object. Amazon S3 uses this format to parse object data
- * into records, and returns only records that match the specified SQL expression.
- * You must also specify the data serialization format for the response.</p>
- * <p>This action is not supported by Amazon S3 on Outposts.</p> <p>For more
- * information about Amazon S3 Select, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html">Selecting
- * Content from Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>For more
- * information about using SQL with Amazon S3 Select, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">
- * SQL Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3
- * User Guide</i>.</p> <p/> <p> <b>Permissions</b> </p> <p>You must have
- * <code>s3:GetObject</code> permission for this operation. Amazon S3 Select does
- * not support anonymous access. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a> in the <i>Amazon S3 User Guide</i>.</p> <p/> <p>
- * <i>Object Data Formats</i> </p> <p>You can use Amazon S3 Select to query objects
- * that have the following format properties:</p> <ul> <li> <p> <i>CSV, JSON, and
- * Parquet</i> - Objects must be in CSV, JSON, or Parquet format.</p> </li> <li>
- * <p> <i>UTF-8</i> - UTF-8 is the only encoding type Amazon S3 Select
- * supports.</p> </li> <li> <p> <i>GZIP or BZIP2</i> - CSV and JSON files can be
- * compressed using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats
- * that Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports
- * columnar compression for Parquet using GZIP or Snappy. Amazon S3 Select does not
- * support whole-object compression for Parquet objects.</p> </li> <li> <p>
- * <i>Server-side encryption</i> - Amazon S3 Select supports querying objects that
- * are protected with server-side encryption.</p> <p>For objects that are encrypted
- * with customer-provided encryption keys (SSE-C), you must use HTTPS, and you must
- * use the headers that are documented in the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>.
- * For more information about SSE-C, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
- * Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3
- * User Guide</i>.</p> <p>For objects that are encrypted with Amazon S3 managed
- * encryption keys (SSE-S3) and customer master keys (CMKs) stored in AWS Key
- * Management Service (SSE-KMS), server-side encryption is handled transparently,
- * so you don't need to specify anything. For more information about server-side
- * encryption, including SSE-S3 and SSE-KMS, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
- * Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
- * </li> </ul> <p> <b>Working with the Response Body</b> </p> <p>Given the response
- * size is unknown, Amazon S3 Select streams the response as a series of messages
- * and includes a <code>Transfer-Encoding</code> header with <code>chunked</code>
- * as its value in the response. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html">Appendix:
- * SelectObjectContent Response</a> .</p> <p/> <p> <b>GetObject Support</b> </p>
- * <p>The <code>SelectObjectContent</code> action does not support the following
- * <code>GetObject</code> functionality. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>.</p>
- * <ul> <li> <p> <code>Range</code>: Although you can specify a scan range for an
- * Amazon S3 Select request (see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange">SelectObjectContentRequest
- * - ScanRange</a> in the request parameters), you cannot specify the range of
- * bytes of an object to return. </p> </li> <li> <p>GLACIER, DEEP_ARCHIVE and
- * REDUCED_REDUNDANCY storage classes: You cannot specify the GLACIER,
- * DEEP_ARCHIVE, or <code>REDUCED_REDUNDANCY</code> storage classes. For more
- * information, about storage classes see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#storage-class-intro">Storage
- * Classes</a> in the <i>Amazon S3 User Guide</i>.</p> </li> </ul> <p/> <p>
- * <b>Special Errors</b> </p> <p>For a list of special errors for this operation,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList">List
- * of SELECT Object Content Error Codes</a> </p> <p class="title"> <b>Related
- * Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContent">AWS
- * API Reference</a></p>
- */
- virtual Model::SelectObjectContentOutcome SelectObjectContent(Model::SelectObjectContentRequest& request) const;
- /**
- * <p>This action filters the contents of an Amazon S3 object based on a simple
- * structured query language (SQL) statement. In the request, along with the SQL
- * expression, you must also specify a data serialization format (JSON, CSV, or
- * Apache Parquet) of the object. Amazon S3 uses this format to parse object data
- * into records, and returns only records that match the specified SQL expression.
- * You must also specify the data serialization format for the response.</p>
- * <p>This action is not supported by Amazon S3 on Outposts.</p> <p>For more
- * information about Amazon S3 Select, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html">Selecting
- * Content from Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>For more
- * information about using SQL with Amazon S3 Select, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">
- * SQL Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3
- * User Guide</i>.</p> <p/> <p> <b>Permissions</b> </p> <p>You must have
- * <code>s3:GetObject</code> permission for this operation. Amazon S3 Select does
- * not support anonymous access. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a> in the <i>Amazon S3 User Guide</i>.</p> <p/> <p>
- * <i>Object Data Formats</i> </p> <p>You can use Amazon S3 Select to query objects
- * that have the following format properties:</p> <ul> <li> <p> <i>CSV, JSON, and
- * Parquet</i> - Objects must be in CSV, JSON, or Parquet format.</p> </li> <li>
- * <p> <i>UTF-8</i> - UTF-8 is the only encoding type Amazon S3 Select
- * supports.</p> </li> <li> <p> <i>GZIP or BZIP2</i> - CSV and JSON files can be
- * compressed using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats
- * that Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports
- * columnar compression for Parquet using GZIP or Snappy. Amazon S3 Select does not
- * support whole-object compression for Parquet objects.</p> </li> <li> <p>
- * <i>Server-side encryption</i> - Amazon S3 Select supports querying objects that
- * are protected with server-side encryption.</p> <p>For objects that are encrypted
- * with customer-provided encryption keys (SSE-C), you must use HTTPS, and you must
- * use the headers that are documented in the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>.
- * For more information about SSE-C, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
- * Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3
- * User Guide</i>.</p> <p>For objects that are encrypted with Amazon S3 managed
- * encryption keys (SSE-S3) and customer master keys (CMKs) stored in AWS Key
- * Management Service (SSE-KMS), server-side encryption is handled transparently,
- * so you don't need to specify anything. For more information about server-side
- * encryption, including SSE-S3 and SSE-KMS, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
- * Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
- * </li> </ul> <p> <b>Working with the Response Body</b> </p> <p>Given the response
- * size is unknown, Amazon S3 Select streams the response as a series of messages
- * and includes a <code>Transfer-Encoding</code> header with <code>chunked</code>
- * as its value in the response. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html">Appendix:
- * SelectObjectContent Response</a> .</p> <p/> <p> <b>GetObject Support</b> </p>
- * <p>The <code>SelectObjectContent</code> action does not support the following
- * <code>GetObject</code> functionality. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>.</p>
- * <ul> <li> <p> <code>Range</code>: Although you can specify a scan range for an
- * Amazon S3 Select request (see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange">SelectObjectContentRequest
- * - ScanRange</a> in the request parameters), you cannot specify the range of
- * bytes of an object to return. </p> </li> <li> <p>GLACIER, DEEP_ARCHIVE and
- * REDUCED_REDUNDANCY storage classes: You cannot specify the GLACIER,
- * DEEP_ARCHIVE, or <code>REDUCED_REDUNDANCY</code> storage classes. For more
- * information, about storage classes see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#storage-class-intro">Storage
- * Classes</a> in the <i>Amazon S3 User Guide</i>.</p> </li> </ul> <p/> <p>
- * <b>Special Errors</b> </p> <p>For a list of special errors for this operation,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList">List
- * of SELECT Object Content Error Codes</a> </p> <p class="title"> <b>Related
- * Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContent">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::SelectObjectContentOutcomeCallable SelectObjectContentCallable(Model::SelectObjectContentRequest& request) const;
- /**
- * <p>This action filters the contents of an Amazon S3 object based on a simple
- * structured query language (SQL) statement. In the request, along with the SQL
- * expression, you must also specify a data serialization format (JSON, CSV, or
- * Apache Parquet) of the object. Amazon S3 uses this format to parse object data
- * into records, and returns only records that match the specified SQL expression.
- * You must also specify the data serialization format for the response.</p>
- * <p>This action is not supported by Amazon S3 on Outposts.</p> <p>For more
- * information about Amazon S3 Select, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html">Selecting
- * Content from Objects</a> in the <i>Amazon S3 User Guide</i>.</p> <p>For more
- * information about using SQL with Amazon S3 Select, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html">
- * SQL Reference for Amazon S3 Select and S3 Glacier Select</a> in the <i>Amazon S3
- * User Guide</i>.</p> <p/> <p> <b>Permissions</b> </p> <p>You must have
- * <code>s3:GetObject</code> permission for this operation. Amazon S3 Select does
- * not support anonymous access. For more information about permissions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying
- * Permissions in a Policy</a> in the <i>Amazon S3 User Guide</i>.</p> <p/> <p>
- * <i>Object Data Formats</i> </p> <p>You can use Amazon S3 Select to query objects
- * that have the following format properties:</p> <ul> <li> <p> <i>CSV, JSON, and
- * Parquet</i> - Objects must be in CSV, JSON, or Parquet format.</p> </li> <li>
- * <p> <i>UTF-8</i> - UTF-8 is the only encoding type Amazon S3 Select
- * supports.</p> </li> <li> <p> <i>GZIP or BZIP2</i> - CSV and JSON files can be
- * compressed using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats
- * that Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports
- * columnar compression for Parquet using GZIP or Snappy. Amazon S3 Select does not
- * support whole-object compression for Parquet objects.</p> </li> <li> <p>
- * <i>Server-side encryption</i> - Amazon S3 Select supports querying objects that
- * are protected with server-side encryption.</p> <p>For objects that are encrypted
- * with customer-provided encryption keys (SSE-C), you must use HTTPS, and you must
- * use the headers that are documented in the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>.
- * For more information about SSE-C, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side
- * Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3
- * User Guide</i>.</p> <p>For objects that are encrypted with Amazon S3 managed
- * encryption keys (SSE-S3) and customer master keys (CMKs) stored in AWS Key
- * Management Service (SSE-KMS), server-side encryption is handled transparently,
- * so you don't need to specify anything. For more information about server-side
- * encryption, including SSE-S3 and SSE-KMS, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting
- * Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
- * </li> </ul> <p> <b>Working with the Response Body</b> </p> <p>Given the response
- * size is unknown, Amazon S3 Select streams the response as a series of messages
- * and includes a <code>Transfer-Encoding</code> header with <code>chunked</code>
- * as its value in the response. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html">Appendix:
- * SelectObjectContent Response</a> .</p> <p/> <p> <b>GetObject Support</b> </p>
- * <p>The <code>SelectObjectContent</code> action does not support the following
- * <code>GetObject</code> functionality. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>.</p>
- * <ul> <li> <p> <code>Range</code>: Although you can specify a scan range for an
- * Amazon S3 Select request (see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange">SelectObjectContentRequest
- * - ScanRange</a> in the request parameters), you cannot specify the range of
- * bytes of an object to return. </p> </li> <li> <p>GLACIER, DEEP_ARCHIVE and
- * REDUCED_REDUNDANCY storage classes: You cannot specify the GLACIER,
- * DEEP_ARCHIVE, or <code>REDUCED_REDUNDANCY</code> storage classes. For more
- * information, about storage classes see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#storage-class-intro">Storage
- * Classes</a> in the <i>Amazon S3 User Guide</i>.</p> </li> </ul> <p/> <p>
- * <b>Special Errors</b> </p> <p>For a list of special errors for this operation,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList">List
- * of SELECT Object Content Error Codes</a> </p> <p class="title"> <b>Related
- * Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContent">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void SelectObjectContentAsync(Model::SelectObjectContentRequest& request, const SelectObjectContentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Uploads a part in a multipart upload.</p> <p>In this operation, you
- * provide part data in your request. However, you have an option to specify your
- * existing Amazon S3 object as a data source for the part you are uploading. To
- * upload a part from an existing object, you use the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>
- * operation. </p> <p>You must initiate a multipart upload (see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>)
- * before you can upload any part. In response to your initiate request, Amazon S3
- * returns an upload ID, a unique identifier, that you must include in your upload
- * part request.</p> <p>Part numbers can be any number from 1 to 10,000, inclusive.
- * A part number uniquely identifies a part and also defines its position within
- * the object being created. If you upload a new part using the same part number
- * that was used with a previous part, the previously uploaded part is overwritten.
- * Each part must be at least 5 MB in size, except the last part. There is no size
- * limit on the last part of your multipart upload.</p> <p>To ensure that data is
- * not corrupted when traversing the network, specify the <code>Content-MD5</code>
- * header in the upload part request. Amazon S3 checks the part data against the
- * provided MD5 value. If they do not match, Amazon S3 returns an error. </p> <p>If
- * the upload request is signed with Signature Version 4, then AWS S3 uses the
- * <code>x-amz-content-sha256</code> header as a checksum instead of
- * <code>Content-MD5</code>. For more information see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html">Authenticating
- * Requests: Using the Authorization Header (AWS Signature Version 4)</a>. </p> <p>
- * <b>Note:</b> After you initiate multipart upload and upload one or more parts,
- * you must either complete or abort multipart upload in order to stop getting
- * charged for storage of the uploaded parts. Only after you either complete or
- * abort multipart upload, Amazon S3 frees up the parts storage and stops charging
- * you for the parts storage.</p> <p>For more information on multipart uploads, go
- * to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart
- * Upload Overview</a> in the <i>Amazon S3 User Guide </i>.</p> <p>For information
- * on the permissions required to use the multipart upload API, go to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p> <p>You can
- * optionally request server-side encryption where Amazon S3 encrypts your data as
- * it writes it to disks in its data centers and decrypts it for you when you
- * access it. You have the option of providing your own encryption key, or you can
- * use the AWS managed encryption keys. If you choose to provide your own
- * encryption key, the request headers you provide in the request must match the
- * headers you used in the request to initiate the upload by using <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.
- * For more information, go to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using
- * Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
- * <p>Server-side encryption is supported by the S3 Multipart Upload actions.
- * Unless you are using a customer-provided encryption key, you don't need to
- * specify the encryption parameters in each UploadPart request. Instead, you only
- * need to specify the server-side encryption parameters in the initial Initiate
- * Multipart request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.</p>
- * <p>If you requested server-side encryption using a customer-provided encryption
- * key in your initiate multipart upload request, you must provide identical
- * encryption information in each part upload using the following headers.</p> <ul>
- * <li> <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p
- * class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>Code:
- * NoSuchUpload</i> </p> </li> <li> <p> <i>Cause: The specified multipart upload
- * does not exist. The upload ID might be invalid, or the multipart upload might
- * have been aborted or completed.</i> </p> </li> <li> <p> <i> HTTP Status Code:
- * 404 Not Found </i> </p> </li> <li> <p> <i>SOAP Fault Code Prefix: Client</i>
- * </p> </li> </ul> </li> </ul> <p class="title"> <b>Related Resources</b> </p>
- * <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPart">AWS API
- * Reference</a></p>
- */
- virtual Model::UploadPartOutcome UploadPart(const Model::UploadPartRequest& request) const;
- /**
- * <p>Uploads a part in a multipart upload.</p> <p>In this operation, you
- * provide part data in your request. However, you have an option to specify your
- * existing Amazon S3 object as a data source for the part you are uploading. To
- * upload a part from an existing object, you use the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>
- * operation. </p> <p>You must initiate a multipart upload (see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>)
- * before you can upload any part. In response to your initiate request, Amazon S3
- * returns an upload ID, a unique identifier, that you must include in your upload
- * part request.</p> <p>Part numbers can be any number from 1 to 10,000, inclusive.
- * A part number uniquely identifies a part and also defines its position within
- * the object being created. If you upload a new part using the same part number
- * that was used with a previous part, the previously uploaded part is overwritten.
- * Each part must be at least 5 MB in size, except the last part. There is no size
- * limit on the last part of your multipart upload.</p> <p>To ensure that data is
- * not corrupted when traversing the network, specify the <code>Content-MD5</code>
- * header in the upload part request. Amazon S3 checks the part data against the
- * provided MD5 value. If they do not match, Amazon S3 returns an error. </p> <p>If
- * the upload request is signed with Signature Version 4, then AWS S3 uses the
- * <code>x-amz-content-sha256</code> header as a checksum instead of
- * <code>Content-MD5</code>. For more information see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html">Authenticating
- * Requests: Using the Authorization Header (AWS Signature Version 4)</a>. </p> <p>
- * <b>Note:</b> After you initiate multipart upload and upload one or more parts,
- * you must either complete or abort multipart upload in order to stop getting
- * charged for storage of the uploaded parts. Only after you either complete or
- * abort multipart upload, Amazon S3 frees up the parts storage and stops charging
- * you for the parts storage.</p> <p>For more information on multipart uploads, go
- * to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart
- * Upload Overview</a> in the <i>Amazon S3 User Guide </i>.</p> <p>For information
- * on the permissions required to use the multipart upload API, go to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p> <p>You can
- * optionally request server-side encryption where Amazon S3 encrypts your data as
- * it writes it to disks in its data centers and decrypts it for you when you
- * access it. You have the option of providing your own encryption key, or you can
- * use the AWS managed encryption keys. If you choose to provide your own
- * encryption key, the request headers you provide in the request must match the
- * headers you used in the request to initiate the upload by using <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.
- * For more information, go to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using
- * Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
- * <p>Server-side encryption is supported by the S3 Multipart Upload actions.
- * Unless you are using a customer-provided encryption key, you don't need to
- * specify the encryption parameters in each UploadPart request. Instead, you only
- * need to specify the server-side encryption parameters in the initial Initiate
- * Multipart request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.</p>
- * <p>If you requested server-side encryption using a customer-provided encryption
- * key in your initiate multipart upload request, you must provide identical
- * encryption information in each part upload using the following headers.</p> <ul>
- * <li> <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p
- * class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>Code:
- * NoSuchUpload</i> </p> </li> <li> <p> <i>Cause: The specified multipart upload
- * does not exist. The upload ID might be invalid, or the multipart upload might
- * have been aborted or completed.</i> </p> </li> <li> <p> <i> HTTP Status Code:
- * 404 Not Found </i> </p> </li> <li> <p> <i>SOAP Fault Code Prefix: Client</i>
- * </p> </li> </ul> </li> </ul> <p class="title"> <b>Related Resources</b> </p>
- * <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPart">AWS API
- * Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::UploadPartOutcomeCallable UploadPartCallable(const Model::UploadPartRequest& request) const;
- /**
- * <p>Uploads a part in a multipart upload.</p> <p>In this operation, you
- * provide part data in your request. However, you have an option to specify your
- * existing Amazon S3 object as a data source for the part you are uploading. To
- * upload a part from an existing object, you use the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>
- * operation. </p> <p>You must initiate a multipart upload (see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>)
- * before you can upload any part. In response to your initiate request, Amazon S3
- * returns an upload ID, a unique identifier, that you must include in your upload
- * part request.</p> <p>Part numbers can be any number from 1 to 10,000, inclusive.
- * A part number uniquely identifies a part and also defines its position within
- * the object being created. If you upload a new part using the same part number
- * that was used with a previous part, the previously uploaded part is overwritten.
- * Each part must be at least 5 MB in size, except the last part. There is no size
- * limit on the last part of your multipart upload.</p> <p>To ensure that data is
- * not corrupted when traversing the network, specify the <code>Content-MD5</code>
- * header in the upload part request. Amazon S3 checks the part data against the
- * provided MD5 value. If they do not match, Amazon S3 returns an error. </p> <p>If
- * the upload request is signed with Signature Version 4, then AWS S3 uses the
- * <code>x-amz-content-sha256</code> header as a checksum instead of
- * <code>Content-MD5</code>. For more information see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html">Authenticating
- * Requests: Using the Authorization Header (AWS Signature Version 4)</a>. </p> <p>
- * <b>Note:</b> After you initiate multipart upload and upload one or more parts,
- * you must either complete or abort multipart upload in order to stop getting
- * charged for storage of the uploaded parts. Only after you either complete or
- * abort multipart upload, Amazon S3 frees up the parts storage and stops charging
- * you for the parts storage.</p> <p>For more information on multipart uploads, go
- * to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart
- * Upload Overview</a> in the <i>Amazon S3 User Guide </i>.</p> <p>For information
- * on the permissions required to use the multipart upload API, go to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p> <p>You can
- * optionally request server-side encryption where Amazon S3 encrypts your data as
- * it writes it to disks in its data centers and decrypts it for you when you
- * access it. You have the option of providing your own encryption key, or you can
- * use the AWS managed encryption keys. If you choose to provide your own
- * encryption key, the request headers you provide in the request must match the
- * headers you used in the request to initiate the upload by using <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.
- * For more information, go to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">Using
- * Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
- * <p>Server-side encryption is supported by the S3 Multipart Upload actions.
- * Unless you are using a customer-provided encryption key, you don't need to
- * specify the encryption parameters in each UploadPart request. Instead, you only
- * need to specify the server-side encryption parameters in the initial Initiate
- * Multipart request. For more information, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.</p>
- * <p>If you requested server-side encryption using a customer-provided encryption
- * key in your initiate multipart upload request, you must provide identical
- * encryption information in each part upload using the following headers.</p> <ul>
- * <li> <p>x-amz-server-side-encryption-customer-algorithm</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key</p> </li> <li>
- * <p>x-amz-server-side-encryption-customer-key-MD5</p> </li> </ul> <p
- * class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>Code:
- * NoSuchUpload</i> </p> </li> <li> <p> <i>Cause: The specified multipart upload
- * does not exist. The upload ID might be invalid, or the multipart upload might
- * have been aborted or completed.</i> </p> </li> <li> <p> <i> HTTP Status Code:
- * 404 Not Found </i> </p> </li> <li> <p> <i>SOAP Fault Code Prefix: Client</i>
- * </p> </li> </ul> </li> </ul> <p class="title"> <b>Related Resources</b> </p>
- * <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPart">AWS API
- * Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void UploadPartAsync(const Model::UploadPartRequest& request, const UploadPartResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Uploads a part by copying data from an existing object as data source. You
- * specify the data source by adding the request header
- * <code>x-amz-copy-source</code> in your request and a byte range by adding the
- * request header <code>x-amz-copy-source-range</code> in your request. </p> <p>The
- * minimum allowable part size for a multipart upload is 5 MB. For more information
- * about multipart upload limits, go to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html">Quick
- * Facts</a> in the <i>Amazon S3 User Guide</i>. </p> <p>Instead of using an
- * existing object as part data, you might use the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * action and provide data in your request.</p> <p>You must initiate a
- * multipart upload before you can upload any part. In response to your initiate
- * request. Amazon S3 returns a unique identifier, the upload ID, that you must
- * include in your upload part request.</p> <p>For more information about using the
- * <code>UploadPartCopy</code> operation, see the following:</p> <ul> <li> <p>For
- * conceptual information about multipart uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
- * Objects Using Multipart Upload</a> in the <i>Amazon S3 User Guide</i>.</p> </li>
- * <li> <p>For information about permissions required to use the multipart upload
- * API, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p> </li> <li>
- * <p>For information about copying objects using a single atomic action vs. the
- * multipart upload, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html">Operations
- * on Objects</a> in the <i>Amazon S3 User Guide</i>.</p> </li> <li> <p>For
- * information about using server-side encryption with customer-provided encryption
- * keys with the UploadPartCopy operation, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
- * and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>.</p>
- * </li> </ul> <p>Note the following additional considerations about the request
- * headers <code>x-amz-copy-source-if-match</code>,
- * <code>x-amz-copy-source-if-none-match</code>,
- * <code>x-amz-copy-source-if-unmodified-since</code>, and
- * <code>x-amz-copy-source-if-modified-since</code>:</p> <p> </p> <ul> <li> <p>
- * <b>Consideration 1</b> - If both of the <code>x-amz-copy-source-if-match</code>
- * and <code>x-amz-copy-source-if-unmodified-since</code> headers are present in
- * the request as follows:</p> <p> <code>x-amz-copy-source-if-match</code>
- * condition evaluates to <code>true</code>, and;</p> <p>
- * <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to
- * <code>false</code>;</p> <p>Amazon S3 returns <code>200 OK</code> and copies the
- * data. </p> </li> <li> <p> <b>Consideration 2</b> - If both of the
- * <code>x-amz-copy-source-if-none-match</code> and
- * <code>x-amz-copy-source-if-modified-since</code> headers are present in the
- * request as follows:</p> <p> <code>x-amz-copy-source-if-none-match</code>
- * condition evaluates to <code>false</code>, and;</p> <p>
- * <code>x-amz-copy-source-if-modified-since</code> condition evaluates to
- * <code>true</code>;</p> <p>Amazon S3 returns <code>412 Precondition Failed</code>
- * response code. </p> </li> </ul> <p> <b>Versioning</b> </p> <p>If your bucket has
- * versioning enabled, you could have multiple versions of the same object. By
- * default, <code>x-amz-copy-source</code> identifies the current version of the
- * object to copy. If the current version is a delete marker and you don't specify
- * a versionId in the <code>x-amz-copy-source</code>, Amazon S3 returns a 404
- * error, because the object does not exist. If you specify versionId in the
- * <code>x-amz-copy-source</code> and the versionId is a delete marker, Amazon S3
- * returns an HTTP 400 error, because you are not allowed to specify a delete
- * marker as a version for the <code>x-amz-copy-source</code>. </p> <p>You can
- * optionally specify a specific version of the source object to copy by adding the
- * <code>versionId</code> subresource as shown in the following example:</p> <p>
- * <code>x-amz-copy-source: /bucket/object?versionId=version id</code> </p> <p
- * class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>Code:
- * NoSuchUpload</i> </p> </li> <li> <p> <i>Cause: The specified multipart upload
- * does not exist. The upload ID might be invalid, or the multipart upload might
- * have been aborted or completed.</i> </p> </li> <li> <p> <i>HTTP Status Code: 404
- * Not Found</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
- * InvalidRequest</i> </p> </li> <li> <p> <i>Cause: The specified copy source is
- * not supported as a byte-range copy source.</i> </p> </li> <li> <p> <i>HTTP
- * Status Code: 400 Bad Request</i> </p> </li> </ul> </li> </ul> <p class="title">
- * <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartCopy">AWS
- * API Reference</a></p>
- */
- virtual Model::UploadPartCopyOutcome UploadPartCopy(const Model::UploadPartCopyRequest& request) const;
- /**
- * <p>Uploads a part by copying data from an existing object as data source. You
- * specify the data source by adding the request header
- * <code>x-amz-copy-source</code> in your request and a byte range by adding the
- * request header <code>x-amz-copy-source-range</code> in your request. </p> <p>The
- * minimum allowable part size for a multipart upload is 5 MB. For more information
- * about multipart upload limits, go to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html">Quick
- * Facts</a> in the <i>Amazon S3 User Guide</i>. </p> <p>Instead of using an
- * existing object as part data, you might use the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * action and provide data in your request.</p> <p>You must initiate a
- * multipart upload before you can upload any part. In response to your initiate
- * request. Amazon S3 returns a unique identifier, the upload ID, that you must
- * include in your upload part request.</p> <p>For more information about using the
- * <code>UploadPartCopy</code> operation, see the following:</p> <ul> <li> <p>For
- * conceptual information about multipart uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
- * Objects Using Multipart Upload</a> in the <i>Amazon S3 User Guide</i>.</p> </li>
- * <li> <p>For information about permissions required to use the multipart upload
- * API, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p> </li> <li>
- * <p>For information about copying objects using a single atomic action vs. the
- * multipart upload, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html">Operations
- * on Objects</a> in the <i>Amazon S3 User Guide</i>.</p> </li> <li> <p>For
- * information about using server-side encryption with customer-provided encryption
- * keys with the UploadPartCopy operation, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
- * and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>.</p>
- * </li> </ul> <p>Note the following additional considerations about the request
- * headers <code>x-amz-copy-source-if-match</code>,
- * <code>x-amz-copy-source-if-none-match</code>,
- * <code>x-amz-copy-source-if-unmodified-since</code>, and
- * <code>x-amz-copy-source-if-modified-since</code>:</p> <p> </p> <ul> <li> <p>
- * <b>Consideration 1</b> - If both of the <code>x-amz-copy-source-if-match</code>
- * and <code>x-amz-copy-source-if-unmodified-since</code> headers are present in
- * the request as follows:</p> <p> <code>x-amz-copy-source-if-match</code>
- * condition evaluates to <code>true</code>, and;</p> <p>
- * <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to
- * <code>false</code>;</p> <p>Amazon S3 returns <code>200 OK</code> and copies the
- * data. </p> </li> <li> <p> <b>Consideration 2</b> - If both of the
- * <code>x-amz-copy-source-if-none-match</code> and
- * <code>x-amz-copy-source-if-modified-since</code> headers are present in the
- * request as follows:</p> <p> <code>x-amz-copy-source-if-none-match</code>
- * condition evaluates to <code>false</code>, and;</p> <p>
- * <code>x-amz-copy-source-if-modified-since</code> condition evaluates to
- * <code>true</code>;</p> <p>Amazon S3 returns <code>412 Precondition Failed</code>
- * response code. </p> </li> </ul> <p> <b>Versioning</b> </p> <p>If your bucket has
- * versioning enabled, you could have multiple versions of the same object. By
- * default, <code>x-amz-copy-source</code> identifies the current version of the
- * object to copy. If the current version is a delete marker and you don't specify
- * a versionId in the <code>x-amz-copy-source</code>, Amazon S3 returns a 404
- * error, because the object does not exist. If you specify versionId in the
- * <code>x-amz-copy-source</code> and the versionId is a delete marker, Amazon S3
- * returns an HTTP 400 error, because you are not allowed to specify a delete
- * marker as a version for the <code>x-amz-copy-source</code>. </p> <p>You can
- * optionally specify a specific version of the source object to copy by adding the
- * <code>versionId</code> subresource as shown in the following example:</p> <p>
- * <code>x-amz-copy-source: /bucket/object?versionId=version id</code> </p> <p
- * class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>Code:
- * NoSuchUpload</i> </p> </li> <li> <p> <i>Cause: The specified multipart upload
- * does not exist. The upload ID might be invalid, or the multipart upload might
- * have been aborted or completed.</i> </p> </li> <li> <p> <i>HTTP Status Code: 404
- * Not Found</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
- * InvalidRequest</i> </p> </li> <li> <p> <i>Cause: The specified copy source is
- * not supported as a byte-range copy source.</i> </p> </li> <li> <p> <i>HTTP
- * Status Code: 400 Bad Request</i> </p> </li> </ul> </li> </ul> <p class="title">
- * <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartCopy">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::UploadPartCopyOutcomeCallable UploadPartCopyCallable(const Model::UploadPartCopyRequest& request) const;
- /**
- * <p>Uploads a part by copying data from an existing object as data source. You
- * specify the data source by adding the request header
- * <code>x-amz-copy-source</code> in your request and a byte range by adding the
- * request header <code>x-amz-copy-source-range</code> in your request. </p> <p>The
- * minimum allowable part size for a multipart upload is 5 MB. For more information
- * about multipart upload limits, go to <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html">Quick
- * Facts</a> in the <i>Amazon S3 User Guide</i>. </p> <p>Instead of using an
- * existing object as part data, you might use the <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * action and provide data in your request.</p> <p>You must initiate a
- * multipart upload before you can upload any part. In response to your initiate
- * request. Amazon S3 returns a unique identifier, the upload ID, that you must
- * include in your upload part request.</p> <p>For more information about using the
- * <code>UploadPartCopy</code> operation, see the following:</p> <ul> <li> <p>For
- * conceptual information about multipart uploads, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading
- * Objects Using Multipart Upload</a> in the <i>Amazon S3 User Guide</i>.</p> </li>
- * <li> <p>For information about permissions required to use the multipart upload
- * API, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart
- * Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p> </li> <li>
- * <p>For information about copying objects using a single atomic action vs. the
- * multipart upload, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html">Operations
- * on Objects</a> in the <i>Amazon S3 User Guide</i>.</p> </li> <li> <p>For
- * information about using server-side encryption with customer-provided encryption
- * keys with the UploadPartCopy operation, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>
- * and <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>.</p>
- * </li> </ul> <p>Note the following additional considerations about the request
- * headers <code>x-amz-copy-source-if-match</code>,
- * <code>x-amz-copy-source-if-none-match</code>,
- * <code>x-amz-copy-source-if-unmodified-since</code>, and
- * <code>x-amz-copy-source-if-modified-since</code>:</p> <p> </p> <ul> <li> <p>
- * <b>Consideration 1</b> - If both of the <code>x-amz-copy-source-if-match</code>
- * and <code>x-amz-copy-source-if-unmodified-since</code> headers are present in
- * the request as follows:</p> <p> <code>x-amz-copy-source-if-match</code>
- * condition evaluates to <code>true</code>, and;</p> <p>
- * <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to
- * <code>false</code>;</p> <p>Amazon S3 returns <code>200 OK</code> and copies the
- * data. </p> </li> <li> <p> <b>Consideration 2</b> - If both of the
- * <code>x-amz-copy-source-if-none-match</code> and
- * <code>x-amz-copy-source-if-modified-since</code> headers are present in the
- * request as follows:</p> <p> <code>x-amz-copy-source-if-none-match</code>
- * condition evaluates to <code>false</code>, and;</p> <p>
- * <code>x-amz-copy-source-if-modified-since</code> condition evaluates to
- * <code>true</code>;</p> <p>Amazon S3 returns <code>412 Precondition Failed</code>
- * response code. </p> </li> </ul> <p> <b>Versioning</b> </p> <p>If your bucket has
- * versioning enabled, you could have multiple versions of the same object. By
- * default, <code>x-amz-copy-source</code> identifies the current version of the
- * object to copy. If the current version is a delete marker and you don't specify
- * a versionId in the <code>x-amz-copy-source</code>, Amazon S3 returns a 404
- * error, because the object does not exist. If you specify versionId in the
- * <code>x-amz-copy-source</code> and the versionId is a delete marker, Amazon S3
- * returns an HTTP 400 error, because you are not allowed to specify a delete
- * marker as a version for the <code>x-amz-copy-source</code>. </p> <p>You can
- * optionally specify a specific version of the source object to copy by adding the
- * <code>versionId</code> subresource as shown in the following example:</p> <p>
- * <code>x-amz-copy-source: /bucket/object?versionId=version id</code> </p> <p
- * class="title"> <b>Special Errors</b> </p> <ul> <li> <ul> <li> <p> <i>Code:
- * NoSuchUpload</i> </p> </li> <li> <p> <i>Cause: The specified multipart upload
- * does not exist. The upload ID might be invalid, or the multipart upload might
- * have been aborted or completed.</i> </p> </li> <li> <p> <i>HTTP Status Code: 404
- * Not Found</i> </p> </li> </ul> </li> <li> <ul> <li> <p> <i>Code:
- * InvalidRequest</i> </p> </li> <li> <p> <i>Cause: The specified copy source is
- * not supported as a byte-range copy source.</i> </p> </li> <li> <p> <i>HTTP
- * Status Code: 400 Bad Request</i> </p> </li> </ul> </li> </ul> <p class="title">
- * <b>Related Resources</b> </p> <ul> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a>
- * </p> </li> <li> <p> <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a>
- * </p> </li> </ul><p><h3>See Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartCopy">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void UploadPartCopyAsync(const Model::UploadPartCopyRequest& request, const UploadPartCopyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- /**
- * <p>Passes transformed objects to a <code>GetObject</code> operation when using
- * Object Lambda Access Points. For information about Object Lambda Access Points,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html">Transforming
- * objects with Object Lambda Access Points</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p>This operation supports metadata that can be returned by <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>,
- * in addition to <code>RequestRoute</code>, <code>RequestToken</code>,
- * <code>StatusCode</code>, <code>ErrorCode</code>, and <code>ErrorMessage</code>.
- * The <code>GetObject</code> response metadata is supported so that the
- * <code>WriteGetObjectResponse</code> caller, typically an AWS Lambda function,
- * can provide the same metadata when it internally invokes <code>GetObject</code>.
- * When <code>WriteGetObjectResponse</code> is called by a customer-owned Lambda
- * function, the metadata returned to the end user <code>GetObject</code> call
- * might differ from what Amazon S3 would normally return.</p> <p>AWS provides some
- * prebuilt Lambda functions that you can use with S3 Object Lambda to detect and
- * redact personally identifiable information (PII) and decompress S3 objects.
- * These Lambda functions are available in the AWS Serverless Application
- * Repository, and can be selected through the AWS Management Console when you
- * create your Object Lambda Access Point.</p> <p>Example 1: PII Access Control -
- * This Lambda function uses Amazon Comprehend, a natural language processing (NLP)
- * service using machine learning to find insights and relationships in text. It
- * automatically detects personally identifiable information (PII) such as names,
- * addresses, dates, credit card numbers, and social security numbers from
- * documents in your Amazon S3 bucket. </p> <p>Example 2: PII Redaction - This
- * Lambda function uses Amazon Comprehend, a natural language processing (NLP)
- * service using machine learning to find insights and relationships in text. It
- * automatically redacts personally identifiable information (PII) such as names,
- * addresses, dates, credit card numbers, and social security numbers from
- * documents in your Amazon S3 bucket. </p> <p>Example 3: Decompression - The
- * Lambda function S3ObjectLambdaDecompression, is equipped to decompress objects
- * stored in S3 in one of six compressed file formats including bzip2, gzip,
- * snappy, zlib, zstandard and ZIP. </p> <p>For information on how to view and use
- * these functions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html">Using
- * AWS built Lambda functions</a> in the <i>Amazon S3 User Guide</i>.</p><p><h3>See
- * Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/WriteGetObjectResponse">AWS
- * API Reference</a></p>
- */
- virtual Model::WriteGetObjectResponseOutcome WriteGetObjectResponse(const Model::WriteGetObjectResponseRequest& request) const;
- /**
- * <p>Passes transformed objects to a <code>GetObject</code> operation when using
- * Object Lambda Access Points. For information about Object Lambda Access Points,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html">Transforming
- * objects with Object Lambda Access Points</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p>This operation supports metadata that can be returned by <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>,
- * in addition to <code>RequestRoute</code>, <code>RequestToken</code>,
- * <code>StatusCode</code>, <code>ErrorCode</code>, and <code>ErrorMessage</code>.
- * The <code>GetObject</code> response metadata is supported so that the
- * <code>WriteGetObjectResponse</code> caller, typically an AWS Lambda function,
- * can provide the same metadata when it internally invokes <code>GetObject</code>.
- * When <code>WriteGetObjectResponse</code> is called by a customer-owned Lambda
- * function, the metadata returned to the end user <code>GetObject</code> call
- * might differ from what Amazon S3 would normally return.</p> <p>AWS provides some
- * prebuilt Lambda functions that you can use with S3 Object Lambda to detect and
- * redact personally identifiable information (PII) and decompress S3 objects.
- * These Lambda functions are available in the AWS Serverless Application
- * Repository, and can be selected through the AWS Management Console when you
- * create your Object Lambda Access Point.</p> <p>Example 1: PII Access Control -
- * This Lambda function uses Amazon Comprehend, a natural language processing (NLP)
- * service using machine learning to find insights and relationships in text. It
- * automatically detects personally identifiable information (PII) such as names,
- * addresses, dates, credit card numbers, and social security numbers from
- * documents in your Amazon S3 bucket. </p> <p>Example 2: PII Redaction - This
- * Lambda function uses Amazon Comprehend, a natural language processing (NLP)
- * service using machine learning to find insights and relationships in text. It
- * automatically redacts personally identifiable information (PII) such as names,
- * addresses, dates, credit card numbers, and social security numbers from
- * documents in your Amazon S3 bucket. </p> <p>Example 3: Decompression - The
- * Lambda function S3ObjectLambdaDecompression, is equipped to decompress objects
- * stored in S3 in one of six compressed file formats including bzip2, gzip,
- * snappy, zlib, zstandard and ZIP. </p> <p>For information on how to view and use
- * these functions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html">Using
- * AWS built Lambda functions</a> in the <i>Amazon S3 User Guide</i>.</p><p><h3>See
- * Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/WriteGetObjectResponse">AWS
- * API Reference</a></p>
- *
- * returns a future to the operation so that it can be executed in parallel to other requests.
- */
- virtual Model::WriteGetObjectResponseOutcomeCallable WriteGetObjectResponseCallable(const Model::WriteGetObjectResponseRequest& request) const;
- /**
- * <p>Passes transformed objects to a <code>GetObject</code> operation when using
- * Object Lambda Access Points. For information about Object Lambda Access Points,
- * see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html">Transforming
- * objects with Object Lambda Access Points</a> in the <i>Amazon S3 User
- * Guide</i>.</p> <p>This operation supports metadata that can be returned by <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>,
- * in addition to <code>RequestRoute</code>, <code>RequestToken</code>,
- * <code>StatusCode</code>, <code>ErrorCode</code>, and <code>ErrorMessage</code>.
- * The <code>GetObject</code> response metadata is supported so that the
- * <code>WriteGetObjectResponse</code> caller, typically an AWS Lambda function,
- * can provide the same metadata when it internally invokes <code>GetObject</code>.
- * When <code>WriteGetObjectResponse</code> is called by a customer-owned Lambda
- * function, the metadata returned to the end user <code>GetObject</code> call
- * might differ from what Amazon S3 would normally return.</p> <p>AWS provides some
- * prebuilt Lambda functions that you can use with S3 Object Lambda to detect and
- * redact personally identifiable information (PII) and decompress S3 objects.
- * These Lambda functions are available in the AWS Serverless Application
- * Repository, and can be selected through the AWS Management Console when you
- * create your Object Lambda Access Point.</p> <p>Example 1: PII Access Control -
- * This Lambda function uses Amazon Comprehend, a natural language processing (NLP)
- * service using machine learning to find insights and relationships in text. It
- * automatically detects personally identifiable information (PII) such as names,
- * addresses, dates, credit card numbers, and social security numbers from
- * documents in your Amazon S3 bucket. </p> <p>Example 2: PII Redaction - This
- * Lambda function uses Amazon Comprehend, a natural language processing (NLP)
- * service using machine learning to find insights and relationships in text. It
- * automatically redacts personally identifiable information (PII) such as names,
- * addresses, dates, credit card numbers, and social security numbers from
- * documents in your Amazon S3 bucket. </p> <p>Example 3: Decompression - The
- * Lambda function S3ObjectLambdaDecompression, is equipped to decompress objects
- * stored in S3 in one of six compressed file formats including bzip2, gzip,
- * snappy, zlib, zstandard and ZIP. </p> <p>For information on how to view and use
- * these functions, see <a
- * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html">Using
- * AWS built Lambda functions</a> in the <i>Amazon S3 User Guide</i>.</p><p><h3>See
- * Also:</h3> <a
- * href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/WriteGetObjectResponse">AWS
- * API Reference</a></p>
- *
- * Queues the request into a thread executor and triggers associated callback when operation has finished.
- */
- virtual void WriteGetObjectResponseAsync(const Model::WriteGetObjectResponseRequest& request, const WriteGetObjectResponseResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
- Aws::String GeneratePresignedUrl(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, long long expirationInSeconds = MAX_EXPIRATION_SECONDS);
- 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);
- /**
- * Server Side Encryption Headers and Algorithm
- * Method Algorithm Required Headers
- * SSE-S3 AES256 x-amz-server-side-encryption:AES256
- * SSE-KMS aws:kms x-amz-server-side--encryption:aws:kms, x-amz-server-side-encryption-aws-kms-key-id:<kmsMasterKeyId>
- * 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>
- */
- /**
- * Generate presigned URL with Sever Side Encryption(SSE) and with S3 managed keys.
- * https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html (algo: AES256)
- */
- Aws::String GeneratePresignedUrlWithSSES3(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, long long expirationInSeconds = MAX_EXPIRATION_SECONDS);
- /**
- * Generate presigned URL with Sever Side Encryption(SSE) and with S3 managed keys.
- * https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html (algo: AES256)
- * Header: "x-amz-server-side-encryption" will be added internally, don't customize it.
- */
- Aws::String GeneratePresignedUrlWithSSES3(const Aws::String& bucket, const Aws::String& key, Aws::Http::HttpMethod method, Http::HeaderValueCollection customizedHeaders, long long expirationInSeconds = MAX_EXPIRATION_SECONDS);
- /**
- * Generate presigned URL with Server Side Encryption(SSE) and with KMS master key id.
- * 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".
- * https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html (algo: aws:kms)
- */
- 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);
- /**
- * Generate presigned URL with Server Side Encryption(SSE) and with KMS master key id.
- * 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".
- * https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html (algo: aws:kms)
- * Headers: "x-amz-server-side-encryption" and "x-amz-server-side-encryption-aws-kms-key-id" will be added internally, don't customize them.
- */
- 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);
- /**
- * Generate presigned URL with Sever Side Encryption(SSE) and with customer supplied Key.
- * https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html (algo: AES256)
- */
- 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);
- /**
- * Generate presigned URL with Sever Side Encryption(SSE) and with customer supplied Key.
- * https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html (algo: AES256)
- * 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.
- */
- 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);
- virtual bool MultipartUploadSupported() const;
- void OverrideEndpoint(const Aws::String& endpoint);
- private:
- void init(const Client::ClientConfiguration& clientConfiguration);
- void LoadS3SpecificConfig(const Aws::String& profile);
- ComputeEndpointOutcome ComputeEndpointString(const Aws::String& bucket) const;
- ComputeEndpointOutcome ComputeEndpointString() const;
- ComputeEndpointOutcome ComputeEndpointStringWithServiceName(const Aws::String& serviceNameOverride = "") const;
- void AbortMultipartUploadAsyncHelper(const Model::AbortMultipartUploadRequest& request, const AbortMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void CompleteMultipartUploadAsyncHelper(const Model::CompleteMultipartUploadRequest& request, const CompleteMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void CopyObjectAsyncHelper(const Model::CopyObjectRequest& request, const CopyObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void CreateBucketAsyncHelper(const Model::CreateBucketRequest& request, const CreateBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void CreateMultipartUploadAsyncHelper(const Model::CreateMultipartUploadRequest& request, const CreateMultipartUploadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteBucketAsyncHelper(const Model::DeleteBucketRequest& request, const DeleteBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteBucketAnalyticsConfigurationAsyncHelper(const Model::DeleteBucketAnalyticsConfigurationRequest& request, const DeleteBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteBucketCorsAsyncHelper(const Model::DeleteBucketCorsRequest& request, const DeleteBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteBucketEncryptionAsyncHelper(const Model::DeleteBucketEncryptionRequest& request, const DeleteBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteBucketIntelligentTieringConfigurationAsyncHelper(const Model::DeleteBucketIntelligentTieringConfigurationRequest& request, const DeleteBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteBucketInventoryConfigurationAsyncHelper(const Model::DeleteBucketInventoryConfigurationRequest& request, const DeleteBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteBucketLifecycleAsyncHelper(const Model::DeleteBucketLifecycleRequest& request, const DeleteBucketLifecycleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteBucketMetricsConfigurationAsyncHelper(const Model::DeleteBucketMetricsConfigurationRequest& request, const DeleteBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteBucketOwnershipControlsAsyncHelper(const Model::DeleteBucketOwnershipControlsRequest& request, const DeleteBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteBucketPolicyAsyncHelper(const Model::DeleteBucketPolicyRequest& request, const DeleteBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteBucketReplicationAsyncHelper(const Model::DeleteBucketReplicationRequest& request, const DeleteBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteBucketTaggingAsyncHelper(const Model::DeleteBucketTaggingRequest& request, const DeleteBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteBucketWebsiteAsyncHelper(const Model::DeleteBucketWebsiteRequest& request, const DeleteBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteObjectAsyncHelper(const Model::DeleteObjectRequest& request, const DeleteObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteObjectTaggingAsyncHelper(const Model::DeleteObjectTaggingRequest& request, const DeleteObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeleteObjectsAsyncHelper(const Model::DeleteObjectsRequest& request, const DeleteObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void DeletePublicAccessBlockAsyncHelper(const Model::DeletePublicAccessBlockRequest& request, const DeletePublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketAccelerateConfigurationAsyncHelper(const Model::GetBucketAccelerateConfigurationRequest& request, const GetBucketAccelerateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketAclAsyncHelper(const Model::GetBucketAclRequest& request, const GetBucketAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketAnalyticsConfigurationAsyncHelper(const Model::GetBucketAnalyticsConfigurationRequest& request, const GetBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketCorsAsyncHelper(const Model::GetBucketCorsRequest& request, const GetBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketEncryptionAsyncHelper(const Model::GetBucketEncryptionRequest& request, const GetBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketIntelligentTieringConfigurationAsyncHelper(const Model::GetBucketIntelligentTieringConfigurationRequest& request, const GetBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketInventoryConfigurationAsyncHelper(const Model::GetBucketInventoryConfigurationRequest& request, const GetBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketLifecycleConfigurationAsyncHelper(const Model::GetBucketLifecycleConfigurationRequest& request, const GetBucketLifecycleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketLocationAsyncHelper(const Model::GetBucketLocationRequest& request, const GetBucketLocationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketLoggingAsyncHelper(const Model::GetBucketLoggingRequest& request, const GetBucketLoggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketMetricsConfigurationAsyncHelper(const Model::GetBucketMetricsConfigurationRequest& request, const GetBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketNotificationConfigurationAsyncHelper(const Model::GetBucketNotificationConfigurationRequest& request, const GetBucketNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketOwnershipControlsAsyncHelper(const Model::GetBucketOwnershipControlsRequest& request, const GetBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketPolicyAsyncHelper(const Model::GetBucketPolicyRequest& request, const GetBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketPolicyStatusAsyncHelper(const Model::GetBucketPolicyStatusRequest& request, const GetBucketPolicyStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketReplicationAsyncHelper(const Model::GetBucketReplicationRequest& request, const GetBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketRequestPaymentAsyncHelper(const Model::GetBucketRequestPaymentRequest& request, const GetBucketRequestPaymentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketTaggingAsyncHelper(const Model::GetBucketTaggingRequest& request, const GetBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketVersioningAsyncHelper(const Model::GetBucketVersioningRequest& request, const GetBucketVersioningResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetBucketWebsiteAsyncHelper(const Model::GetBucketWebsiteRequest& request, const GetBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetObjectAsyncHelper(const Model::GetObjectRequest& request, const GetObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetObjectAclAsyncHelper(const Model::GetObjectAclRequest& request, const GetObjectAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetObjectLegalHoldAsyncHelper(const Model::GetObjectLegalHoldRequest& request, const GetObjectLegalHoldResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetObjectLockConfigurationAsyncHelper(const Model::GetObjectLockConfigurationRequest& request, const GetObjectLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetObjectRetentionAsyncHelper(const Model::GetObjectRetentionRequest& request, const GetObjectRetentionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetObjectTaggingAsyncHelper(const Model::GetObjectTaggingRequest& request, const GetObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetObjectTorrentAsyncHelper(const Model::GetObjectTorrentRequest& request, const GetObjectTorrentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void GetPublicAccessBlockAsyncHelper(const Model::GetPublicAccessBlockRequest& request, const GetPublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void HeadBucketAsyncHelper(const Model::HeadBucketRequest& request, const HeadBucketResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void HeadObjectAsyncHelper(const Model::HeadObjectRequest& request, const HeadObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void ListBucketAnalyticsConfigurationsAsyncHelper(const Model::ListBucketAnalyticsConfigurationsRequest& request, const ListBucketAnalyticsConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void ListBucketIntelligentTieringConfigurationsAsyncHelper(const Model::ListBucketIntelligentTieringConfigurationsRequest& request, const ListBucketIntelligentTieringConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void ListBucketInventoryConfigurationsAsyncHelper(const Model::ListBucketInventoryConfigurationsRequest& request, const ListBucketInventoryConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void ListBucketMetricsConfigurationsAsyncHelper(const Model::ListBucketMetricsConfigurationsRequest& request, const ListBucketMetricsConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void ListBucketsAsyncHelper(const ListBucketsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void ListMultipartUploadsAsyncHelper(const Model::ListMultipartUploadsRequest& request, const ListMultipartUploadsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void ListObjectVersionsAsyncHelper(const Model::ListObjectVersionsRequest& request, const ListObjectVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void ListObjectsAsyncHelper(const Model::ListObjectsRequest& request, const ListObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void ListObjectsV2AsyncHelper(const Model::ListObjectsV2Request& request, const ListObjectsV2ResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void ListPartsAsyncHelper(const Model::ListPartsRequest& request, const ListPartsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketAccelerateConfigurationAsyncHelper(const Model::PutBucketAccelerateConfigurationRequest& request, const PutBucketAccelerateConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketAclAsyncHelper(const Model::PutBucketAclRequest& request, const PutBucketAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketAnalyticsConfigurationAsyncHelper(const Model::PutBucketAnalyticsConfigurationRequest& request, const PutBucketAnalyticsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketCorsAsyncHelper(const Model::PutBucketCorsRequest& request, const PutBucketCorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketEncryptionAsyncHelper(const Model::PutBucketEncryptionRequest& request, const PutBucketEncryptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketIntelligentTieringConfigurationAsyncHelper(const Model::PutBucketIntelligentTieringConfigurationRequest& request, const PutBucketIntelligentTieringConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketInventoryConfigurationAsyncHelper(const Model::PutBucketInventoryConfigurationRequest& request, const PutBucketInventoryConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketLifecycleConfigurationAsyncHelper(const Model::PutBucketLifecycleConfigurationRequest& request, const PutBucketLifecycleConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketLoggingAsyncHelper(const Model::PutBucketLoggingRequest& request, const PutBucketLoggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketMetricsConfigurationAsyncHelper(const Model::PutBucketMetricsConfigurationRequest& request, const PutBucketMetricsConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketNotificationConfigurationAsyncHelper(const Model::PutBucketNotificationConfigurationRequest& request, const PutBucketNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketOwnershipControlsAsyncHelper(const Model::PutBucketOwnershipControlsRequest& request, const PutBucketOwnershipControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketPolicyAsyncHelper(const Model::PutBucketPolicyRequest& request, const PutBucketPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketReplicationAsyncHelper(const Model::PutBucketReplicationRequest& request, const PutBucketReplicationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketRequestPaymentAsyncHelper(const Model::PutBucketRequestPaymentRequest& request, const PutBucketRequestPaymentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketTaggingAsyncHelper(const Model::PutBucketTaggingRequest& request, const PutBucketTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketVersioningAsyncHelper(const Model::PutBucketVersioningRequest& request, const PutBucketVersioningResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutBucketWebsiteAsyncHelper(const Model::PutBucketWebsiteRequest& request, const PutBucketWebsiteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutObjectAsyncHelper(const Model::PutObjectRequest& request, const PutObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutObjectAclAsyncHelper(const Model::PutObjectAclRequest& request, const PutObjectAclResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutObjectLegalHoldAsyncHelper(const Model::PutObjectLegalHoldRequest& request, const PutObjectLegalHoldResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutObjectLockConfigurationAsyncHelper(const Model::PutObjectLockConfigurationRequest& request, const PutObjectLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutObjectRetentionAsyncHelper(const Model::PutObjectRetentionRequest& request, const PutObjectRetentionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutObjectTaggingAsyncHelper(const Model::PutObjectTaggingRequest& request, const PutObjectTaggingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void PutPublicAccessBlockAsyncHelper(const Model::PutPublicAccessBlockRequest& request, const PutPublicAccessBlockResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void RestoreObjectAsyncHelper(const Model::RestoreObjectRequest& request, const RestoreObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void SelectObjectContentAsyncHelper(Model::SelectObjectContentRequest& request, const SelectObjectContentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void UploadPartAsyncHelper(const Model::UploadPartRequest& request, const UploadPartResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void UploadPartCopyAsyncHelper(const Model::UploadPartCopyRequest& request, const UploadPartCopyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- void WriteGetObjectResponseAsyncHelper(const Model::WriteGetObjectResponseRequest& request, const WriteGetObjectResponseResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
- Aws::String m_baseUri;
- Aws::String m_scheme;
- bool m_enableHostPrefixInjection;
- Aws::String m_configScheme;
- std::shared_ptr<Utils::Threading::Executor> m_executor;
- bool m_useVirtualAddressing;
- bool m_useDualStack;
- bool m_useArnRegion;
- bool m_useCustomEndpoint;
- Aws::S3::US_EAST_1_REGIONAL_ENDPOINT_OPTION m_USEast1RegionalEndpointOption;
- };
- } // namespace S3
- } // namespace Aws
|