12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591 |
- // THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
- // Package dynamodb provides a client for Amazon DynamoDB.
- package dynamodb
- import (
- "time"
- "github.com/aws/aws-sdk-go/aws/awsutil"
- "github.com/aws/aws-sdk-go/aws/request"
- )
- const opBatchGetItem = "BatchGetItem"
- // BatchGetItemRequest generates a request for the BatchGetItem operation.
- func (c *DynamoDB) BatchGetItemRequest(input *BatchGetItemInput) (req *request.Request, output *BatchGetItemOutput) {
- op := &request.Operation{
- Name: opBatchGetItem,
- HTTPMethod: "POST",
- HTTPPath: "/",
- Paginator: &request.Paginator{
- InputTokens: []string{"RequestItems"},
- OutputTokens: []string{"UnprocessedKeys"},
- LimitToken: "",
- TruncationToken: "",
- },
- }
- if input == nil {
- input = &BatchGetItemInput{}
- }
- req = c.newRequest(op, input, output)
- output = &BatchGetItemOutput{}
- req.Data = output
- return
- }
- // The BatchGetItem operation returns the attributes of one or more items from
- // one or more tables. You identify requested items by primary key.
- //
- // A single operation can retrieve up to 16 MB of data, which can contain as
- // many as 100 items. BatchGetItem will return a partial result if the response
- // size limit is exceeded, the table's provisioned throughput is exceeded, or
- // an internal processing failure occurs. If a partial result is returned, the
- // operation returns a value for UnprocessedKeys. You can use this value to
- // retry the operation starting with the next item to get.
- //
- // If you request more than 100 items BatchGetItem will return a ValidationException
- // with the message "Too many items requested for the BatchGetItem call".
- //
- // For example, if you ask to retrieve 100 items, but each individual item
- // is 300 KB in size, the system returns 52 items (so as not to exceed the 16
- // MB limit). It also returns an appropriate UnprocessedKeys value so you can
- // get the next page of results. If desired, your application can include its
- // own logic to assemble the pages of results into one data set.
- //
- // If none of the items can be processed due to insufficient provisioned throughput
- // on all of the tables in the request, then BatchGetItem will return a ProvisionedThroughputExceededException.
- // If at least one of the items is successfully processed, then BatchGetItem
- // completes successfully, while returning the keys of the unread items in UnprocessedKeys.
- //
- // If DynamoDB returns any unprocessed items, you should retry the batch operation
- // on those items. However, we strongly recommend that you use an exponential
- // backoff algorithm. If you retry the batch operation immediately, the underlying
- // read or write requests can still fail due to throttling on the individual
- // tables. If you delay the batch operation using exponential backoff, the individual
- // requests in the batch are much more likely to succeed.
- //
- // For more information, see Batch Operations and Error Handling (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#BatchOperations)
- // in the Amazon DynamoDB Developer Guide.
- //
- // By default, BatchGetItem performs eventually consistent reads on every
- // table in the request. If you want strongly consistent reads instead, you
- // can set ConsistentRead to true for any or all tables.
- //
- // In order to minimize response latency, BatchGetItem retrieves items in parallel.
- //
- // When designing your application, keep in mind that DynamoDB does not return
- // attributes in any particular order. To help parse the response by item, include
- // the primary key values for the items in your request in the AttributesToGet
- // parameter.
- //
- // If a requested item does not exist, it is not returned in the result. Requests
- // for nonexistent items consume the minimum read capacity units according to
- // the type of read. For more information, see Capacity Units Calculations (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#CapacityUnitCalculations)
- // in the Amazon DynamoDB Developer Guide.
- func (c *DynamoDB) BatchGetItem(input *BatchGetItemInput) (*BatchGetItemOutput, error) {
- req, out := c.BatchGetItemRequest(input)
- err := req.Send()
- return out, err
- }
- func (c *DynamoDB) BatchGetItemPages(input *BatchGetItemInput, fn func(p *BatchGetItemOutput, lastPage bool) (shouldContinue bool)) error {
- page, _ := c.BatchGetItemRequest(input)
- return page.EachPage(func(p interface{}, lastPage bool) bool {
- return fn(p.(*BatchGetItemOutput), lastPage)
- })
- }
- const opBatchWriteItem = "BatchWriteItem"
- // BatchWriteItemRequest generates a request for the BatchWriteItem operation.
- func (c *DynamoDB) BatchWriteItemRequest(input *BatchWriteItemInput) (req *request.Request, output *BatchWriteItemOutput) {
- op := &request.Operation{
- Name: opBatchWriteItem,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &BatchWriteItemInput{}
- }
- req = c.newRequest(op, input, output)
- output = &BatchWriteItemOutput{}
- req.Data = output
- return
- }
- // The BatchWriteItem operation puts or deletes multiple items in one or more
- // tables. A single call to BatchWriteItem can write up to 16 MB of data, which
- // can comprise as many as 25 put or delete requests. Individual items to be
- // written can be as large as 400 KB.
- //
- // BatchWriteItem cannot update items. To update items, use the UpdateItem
- // API.
- //
- // The individual PutItem and DeleteItem operations specified in BatchWriteItem
- // are atomic; however BatchWriteItem as a whole is not. If any requested operations
- // fail because the table's provisioned throughput is exceeded or an internal
- // processing failure occurs, the failed operations are returned in the UnprocessedItems
- // response parameter. You can investigate and optionally resend the requests.
- // Typically, you would call BatchWriteItem in a loop. Each iteration would
- // check for unprocessed items and submit a new BatchWriteItem request with
- // those unprocessed items until all items have been processed.
- //
- // Note that if none of the items can be processed due to insufficient provisioned
- // throughput on all of the tables in the request, then BatchWriteItem will
- // return a ProvisionedThroughputExceededException.
- //
- // If DynamoDB returns any unprocessed items, you should retry the batch operation
- // on those items. However, we strongly recommend that you use an exponential
- // backoff algorithm. If you retry the batch operation immediately, the underlying
- // read or write requests can still fail due to throttling on the individual
- // tables. If you delay the batch operation using exponential backoff, the individual
- // requests in the batch are much more likely to succeed.
- //
- // For more information, see Batch Operations and Error Handling (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#BatchOperations)
- // in the Amazon DynamoDB Developer Guide.
- //
- // With BatchWriteItem, you can efficiently write or delete large amounts
- // of data, such as from Amazon Elastic MapReduce (EMR), or copy data from another
- // database into DynamoDB. In order to improve performance with these large-scale
- // operations, BatchWriteItem does not behave in the same way as individual
- // PutItem and DeleteItem calls would. For example, you cannot specify conditions
- // on individual put and delete requests, and BatchWriteItem does not return
- // deleted items in the response.
- //
- // If you use a programming language that supports concurrency, you can use
- // threads to write items in parallel. Your application must include the necessary
- // logic to manage the threads. With languages that don't support threading,
- // you must update or delete the specified items one at a time. In both situations,
- // BatchWriteItem provides an alternative where the API performs the specified
- // put and delete operations in parallel, giving you the power of the thread
- // pool approach without having to introduce complexity into your application.
- //
- // Parallel processing reduces latency, but each specified put and delete request
- // consumes the same number of write capacity units whether it is processed
- // in parallel or not. Delete operations on nonexistent items consume one write
- // capacity unit.
- //
- // If one or more of the following is true, DynamoDB rejects the entire batch
- // write operation:
- //
- // One or more tables specified in the BatchWriteItem request does not exist.
- //
- // Primary key attributes specified on an item in the request do not match
- // those in the corresponding table's primary key schema.
- //
- // You try to perform multiple operations on the same item in the same BatchWriteItem
- // request. For example, you cannot put and delete the same item in the same
- // BatchWriteItem request.
- //
- // There are more than 25 requests in the batch.
- //
- // Any individual item in a batch exceeds 400 KB.
- //
- // The total request size exceeds 16 MB.
- func (c *DynamoDB) BatchWriteItem(input *BatchWriteItemInput) (*BatchWriteItemOutput, error) {
- req, out := c.BatchWriteItemRequest(input)
- err := req.Send()
- return out, err
- }
- const opCreateTable = "CreateTable"
- // CreateTableRequest generates a request for the CreateTable operation.
- func (c *DynamoDB) CreateTableRequest(input *CreateTableInput) (req *request.Request, output *CreateTableOutput) {
- op := &request.Operation{
- Name: opCreateTable,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &CreateTableInput{}
- }
- req = c.newRequest(op, input, output)
- output = &CreateTableOutput{}
- req.Data = output
- return
- }
- // The CreateTable operation adds a new table to your account. In an AWS account,
- // table names must be unique within each region. That is, you can have two
- // tables with same name if you create the tables in different regions.
- //
- // CreateTable is an asynchronous operation. Upon receiving a CreateTable request,
- // DynamoDB immediately returns a response with a TableStatus of CREATING. After
- // the table is created, DynamoDB sets the TableStatus to ACTIVE. You can perform
- // read and write operations only on an ACTIVE table.
- //
- // You can optionally define secondary indexes on the new table, as part of
- // the CreateTable operation. If you want to create multiple tables with secondary
- // indexes on them, you must create the tables sequentially. Only one table
- // with secondary indexes can be in the CREATING state at any given time.
- //
- // You can use the DescribeTable API to check the table status.
- func (c *DynamoDB) CreateTable(input *CreateTableInput) (*CreateTableOutput, error) {
- req, out := c.CreateTableRequest(input)
- err := req.Send()
- return out, err
- }
- const opDeleteItem = "DeleteItem"
- // DeleteItemRequest generates a request for the DeleteItem operation.
- func (c *DynamoDB) DeleteItemRequest(input *DeleteItemInput) (req *request.Request, output *DeleteItemOutput) {
- op := &request.Operation{
- Name: opDeleteItem,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DeleteItemInput{}
- }
- req = c.newRequest(op, input, output)
- output = &DeleteItemOutput{}
- req.Data = output
- return
- }
- // Deletes a single item in a table by primary key. You can perform a conditional
- // delete operation that deletes the item if it exists, or if it has an expected
- // attribute value.
- //
- // In addition to deleting an item, you can also return the item's attribute
- // values in the same operation, using the ReturnValues parameter.
- //
- // Unless you specify conditions, the DeleteItem is an idempotent operation;
- // running it multiple times on the same item or attribute does not result in
- // an error response.
- //
- // Conditional deletes are useful for deleting items only if specific conditions
- // are met. If those conditions are met, DynamoDB performs the delete. Otherwise,
- // the item is not deleted.
- func (c *DynamoDB) DeleteItem(input *DeleteItemInput) (*DeleteItemOutput, error) {
- req, out := c.DeleteItemRequest(input)
- err := req.Send()
- return out, err
- }
- const opDeleteTable = "DeleteTable"
- // DeleteTableRequest generates a request for the DeleteTable operation.
- func (c *DynamoDB) DeleteTableRequest(input *DeleteTableInput) (req *request.Request, output *DeleteTableOutput) {
- op := &request.Operation{
- Name: opDeleteTable,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DeleteTableInput{}
- }
- req = c.newRequest(op, input, output)
- output = &DeleteTableOutput{}
- req.Data = output
- return
- }
- // The DeleteTable operation deletes a table and all of its items. After a DeleteTable
- // request, the specified table is in the DELETING state until DynamoDB completes
- // the deletion. If the table is in the ACTIVE state, you can delete it. If
- // a table is in CREATING or UPDATING states, then DynamoDB returns a ResourceInUseException.
- // If the specified table does not exist, DynamoDB returns a ResourceNotFoundException.
- // If table is already in the DELETING state, no error is returned.
- //
- // DynamoDB might continue to accept data read and write operations, such
- // as GetItem and PutItem, on a table in the DELETING state until the table
- // deletion is complete.
- //
- // When you delete a table, any indexes on that table are also deleted.
- //
- // If you have DynamoDB Streams enabled on the table, then the corresponding
- // stream on that table goes into the DISABLED state, and the stream is automatically
- // deleted after 24 hours.
- //
- // Use the DescribeTable API to check the status of the table.
- func (c *DynamoDB) DeleteTable(input *DeleteTableInput) (*DeleteTableOutput, error) {
- req, out := c.DeleteTableRequest(input)
- err := req.Send()
- return out, err
- }
- const opDescribeTable = "DescribeTable"
- // DescribeTableRequest generates a request for the DescribeTable operation.
- func (c *DynamoDB) DescribeTableRequest(input *DescribeTableInput) (req *request.Request, output *DescribeTableOutput) {
- op := &request.Operation{
- Name: opDescribeTable,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DescribeTableInput{}
- }
- req = c.newRequest(op, input, output)
- output = &DescribeTableOutput{}
- req.Data = output
- return
- }
- // Returns information about the table, including the current status of the
- // table, when it was created, the primary key schema, and any indexes on the
- // table.
- //
- // If you issue a DescribeTable request immediately after a CreateTable request,
- // DynamoDB might return a ResourceNotFoundException. This is because DescribeTable
- // uses an eventually consistent query, and the metadata for your table might
- // not be available at that moment. Wait for a few seconds, and then try the
- // DescribeTable request again.
- func (c *DynamoDB) DescribeTable(input *DescribeTableInput) (*DescribeTableOutput, error) {
- req, out := c.DescribeTableRequest(input)
- err := req.Send()
- return out, err
- }
- const opGetItem = "GetItem"
- // GetItemRequest generates a request for the GetItem operation.
- func (c *DynamoDB) GetItemRequest(input *GetItemInput) (req *request.Request, output *GetItemOutput) {
- op := &request.Operation{
- Name: opGetItem,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &GetItemInput{}
- }
- req = c.newRequest(op, input, output)
- output = &GetItemOutput{}
- req.Data = output
- return
- }
- // The GetItem operation returns a set of attributes for the item with the given
- // primary key. If there is no matching item, GetItem does not return any data.
- //
- // GetItem provides an eventually consistent read by default. If your application
- // requires a strongly consistent read, set ConsistentRead to true. Although
- // a strongly consistent read might take more time than an eventually consistent
- // read, it always returns the last updated value.
- func (c *DynamoDB) GetItem(input *GetItemInput) (*GetItemOutput, error) {
- req, out := c.GetItemRequest(input)
- err := req.Send()
- return out, err
- }
- const opListTables = "ListTables"
- // ListTablesRequest generates a request for the ListTables operation.
- func (c *DynamoDB) ListTablesRequest(input *ListTablesInput) (req *request.Request, output *ListTablesOutput) {
- op := &request.Operation{
- Name: opListTables,
- HTTPMethod: "POST",
- HTTPPath: "/",
- Paginator: &request.Paginator{
- InputTokens: []string{"ExclusiveStartTableName"},
- OutputTokens: []string{"LastEvaluatedTableName"},
- LimitToken: "Limit",
- TruncationToken: "",
- },
- }
- if input == nil {
- input = &ListTablesInput{}
- }
- req = c.newRequest(op, input, output)
- output = &ListTablesOutput{}
- req.Data = output
- return
- }
- // Returns an array of table names associated with the current account and endpoint.
- // The output from ListTables is paginated, with each page returning a maximum
- // of 100 table names.
- func (c *DynamoDB) ListTables(input *ListTablesInput) (*ListTablesOutput, error) {
- req, out := c.ListTablesRequest(input)
- err := req.Send()
- return out, err
- }
- func (c *DynamoDB) ListTablesPages(input *ListTablesInput, fn func(p *ListTablesOutput, lastPage bool) (shouldContinue bool)) error {
- page, _ := c.ListTablesRequest(input)
- return page.EachPage(func(p interface{}, lastPage bool) bool {
- return fn(p.(*ListTablesOutput), lastPage)
- })
- }
- const opPutItem = "PutItem"
- // PutItemRequest generates a request for the PutItem operation.
- func (c *DynamoDB) PutItemRequest(input *PutItemInput) (req *request.Request, output *PutItemOutput) {
- op := &request.Operation{
- Name: opPutItem,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &PutItemInput{}
- }
- req = c.newRequest(op, input, output)
- output = &PutItemOutput{}
- req.Data = output
- return
- }
- // Creates a new item, or replaces an old item with a new item. If an item that
- // has the same primary key as the new item already exists in the specified
- // table, the new item completely replaces the existing item. You can perform
- // a conditional put operation (add a new item if one with the specified primary
- // key doesn't exist), or replace an existing item if it has certain attribute
- // values.
- //
- // In addition to putting an item, you can also return the item's attribute
- // values in the same operation, using the ReturnValues parameter.
- //
- // When you add an item, the primary key attribute(s) are the only required
- // attributes. Attribute values cannot be null. String and Binary type attributes
- // must have lengths greater than zero. Set type attributes cannot be empty.
- // Requests with empty values will be rejected with a ValidationException exception.
- //
- // You can request that PutItem return either a copy of the original item (before
- // the update) or a copy of the updated item (after the update). For more information,
- // see the ReturnValues description below.
- //
- // To prevent a new item from replacing an existing item, use a conditional
- // put operation with ComparisonOperator set to NULL for the primary key attribute,
- // or attributes.
- //
- // For more information about using this API, see Working with Items (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithItems.html)
- // in the Amazon DynamoDB Developer Guide.
- func (c *DynamoDB) PutItem(input *PutItemInput) (*PutItemOutput, error) {
- req, out := c.PutItemRequest(input)
- err := req.Send()
- return out, err
- }
- const opQuery = "Query"
- // QueryRequest generates a request for the Query operation.
- func (c *DynamoDB) QueryRequest(input *QueryInput) (req *request.Request, output *QueryOutput) {
- op := &request.Operation{
- Name: opQuery,
- HTTPMethod: "POST",
- HTTPPath: "/",
- Paginator: &request.Paginator{
- InputTokens: []string{"ExclusiveStartKey"},
- OutputTokens: []string{"LastEvaluatedKey"},
- LimitToken: "Limit",
- TruncationToken: "",
- },
- }
- if input == nil {
- input = &QueryInput{}
- }
- req = c.newRequest(op, input, output)
- output = &QueryOutput{}
- req.Data = output
- return
- }
- // A Query operation uses the primary key of a table or a secondary index to
- // directly access items from that table or index.
- //
- // Use the KeyConditionExpression parameter to provide a specific hash key
- // value. The Query operation will return all of the items from the table or
- // index with that hash key value. You can optionally narrow the scope of the
- // Query operation by specifying a range key value and a comparison operator
- // in KeyConditionExpression. You can use the ScanIndexForward parameter to
- // get results in forward or reverse order, by range key or by index key.
- //
- // Queries that do not return results consume the minimum number of read capacity
- // units for that type of read operation.
- //
- // If the total number of items meeting the query criteria exceeds the result
- // set size limit of 1 MB, the query stops and results are returned to the user
- // with the LastEvaluatedKey element to continue the query in a subsequent operation.
- // Unlike a Scan operation, a Query operation never returns both an empty result
- // set and a LastEvaluatedKey value. LastEvaluatedKey is only provided if the
- // results exceed 1 MB, or if you have used the Limit parameter.
- //
- // You can query a table, a local secondary index, or a global secondary index.
- // For a query on a table or on a local secondary index, you can set the ConsistentRead
- // parameter to true and obtain a strongly consistent result. Global secondary
- // indexes support eventually consistent reads only, so do not specify ConsistentRead
- // when querying a global secondary index.
- func (c *DynamoDB) Query(input *QueryInput) (*QueryOutput, error) {
- req, out := c.QueryRequest(input)
- err := req.Send()
- return out, err
- }
- func (c *DynamoDB) QueryPages(input *QueryInput, fn func(p *QueryOutput, lastPage bool) (shouldContinue bool)) error {
- page, _ := c.QueryRequest(input)
- return page.EachPage(func(p interface{}, lastPage bool) bool {
- return fn(p.(*QueryOutput), lastPage)
- })
- }
- const opScan = "Scan"
- // ScanRequest generates a request for the Scan operation.
- func (c *DynamoDB) ScanRequest(input *ScanInput) (req *request.Request, output *ScanOutput) {
- op := &request.Operation{
- Name: opScan,
- HTTPMethod: "POST",
- HTTPPath: "/",
- Paginator: &request.Paginator{
- InputTokens: []string{"ExclusiveStartKey"},
- OutputTokens: []string{"LastEvaluatedKey"},
- LimitToken: "Limit",
- TruncationToken: "",
- },
- }
- if input == nil {
- input = &ScanInput{}
- }
- req = c.newRequest(op, input, output)
- output = &ScanOutput{}
- req.Data = output
- return
- }
- // The Scan operation returns one or more items and item attributes by accessing
- // every item in a table or a secondary index. To have DynamoDB return fewer
- // items, you can provide a ScanFilter operation.
- //
- // If the total number of scanned items exceeds the maximum data set size limit
- // of 1 MB, the scan stops and results are returned to the user as a LastEvaluatedKey
- // value to continue the scan in a subsequent operation. The results also include
- // the number of items exceeding the limit. A scan can result in no table data
- // meeting the filter criteria.
- //
- // By default, Scan operations proceed sequentially; however, for faster performance
- // on a large table or secondary index, applications can request a parallel
- // Scan operation by providing the Segment and TotalSegments parameters. For
- // more information, see Parallel Scan (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#QueryAndScanParallelScan)
- // in the Amazon DynamoDB Developer Guide.
- //
- // By default, Scan uses eventually consistent reads when acessing the data
- // in the table or local secondary index. However, you can use strongly consistent
- // reads instead by setting the ConsistentRead parameter to true.
- func (c *DynamoDB) Scan(input *ScanInput) (*ScanOutput, error) {
- req, out := c.ScanRequest(input)
- err := req.Send()
- return out, err
- }
- func (c *DynamoDB) ScanPages(input *ScanInput, fn func(p *ScanOutput, lastPage bool) (shouldContinue bool)) error {
- page, _ := c.ScanRequest(input)
- return page.EachPage(func(p interface{}, lastPage bool) bool {
- return fn(p.(*ScanOutput), lastPage)
- })
- }
- const opUpdateItem = "UpdateItem"
- // UpdateItemRequest generates a request for the UpdateItem operation.
- func (c *DynamoDB) UpdateItemRequest(input *UpdateItemInput) (req *request.Request, output *UpdateItemOutput) {
- op := &request.Operation{
- Name: opUpdateItem,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &UpdateItemInput{}
- }
- req = c.newRequest(op, input, output)
- output = &UpdateItemOutput{}
- req.Data = output
- return
- }
- // Edits an existing item's attributes, or adds a new item to the table if it
- // does not already exist. You can put, delete, or add attribute values. You
- // can also perform a conditional update on an existing item (insert a new attribute
- // name-value pair if it doesn't exist, or replace an existing name-value pair
- // if it has certain expected attribute values). If conditions are specified
- // and the item does not exist, then the operation fails and a new item is not
- // created.
- //
- // You can also return the item's attribute values in the same UpdateItem operation
- // using the ReturnValues parameter.
- func (c *DynamoDB) UpdateItem(input *UpdateItemInput) (*UpdateItemOutput, error) {
- req, out := c.UpdateItemRequest(input)
- err := req.Send()
- return out, err
- }
- const opUpdateTable = "UpdateTable"
- // UpdateTableRequest generates a request for the UpdateTable operation.
- func (c *DynamoDB) UpdateTableRequest(input *UpdateTableInput) (req *request.Request, output *UpdateTableOutput) {
- op := &request.Operation{
- Name: opUpdateTable,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &UpdateTableInput{}
- }
- req = c.newRequest(op, input, output)
- output = &UpdateTableOutput{}
- req.Data = output
- return
- }
- // Modifies the provisioned throughput settings, global secondary indexes, or
- // DynamoDB Streams settings for a given table.
- //
- // You can only perform one of the following operations at once:
- //
- // Modify the provisioned throughput settings of the table.
- //
- // Enable or disable Streams on the table.
- //
- // Remove a global secondary index from the table.
- //
- // Create a new global secondary index on the table. Once the index begins
- // backfilling, you can use UpdateTable to perform other operations.
- //
- // UpdateTable is an asynchronous operation; while it is executing, the table
- // status changes from ACTIVE to UPDATING. While it is UPDATING, you cannot
- // issue another UpdateTable request. When the table returns to the ACTIVE state,
- // the UpdateTable operation is complete.
- func (c *DynamoDB) UpdateTable(input *UpdateTableInput) (*UpdateTableOutput, error) {
- req, out := c.UpdateTableRequest(input)
- err := req.Send()
- return out, err
- }
- // Represents an attribute for describing the key schema for the table and indexes.
- type AttributeDefinition struct {
- // A name for the attribute.
- AttributeName *string `type:"string" required:"true"`
- // The data type for the attribute.
- AttributeType *string `type:"string" required:"true" enum:"ScalarAttributeType"`
- metadataAttributeDefinition `json:"-" xml:"-"`
- }
- type metadataAttributeDefinition struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s AttributeDefinition) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s AttributeDefinition) GoString() string {
- return s.String()
- }
- // Represents the data for an attribute. You can set one, and only one, of the
- // elements.
- //
- // Each attribute in an item is a name-value pair. An attribute can be single-valued
- // or multi-valued set. For example, a book item can have title and authors
- // attributes. Each book has one title but can have many authors. The multi-valued
- // attribute is a set; duplicate values are not allowed.
- type AttributeValue struct {
- // A Binary data type.
- B []byte `type:"blob"`
- // A Boolean data type.
- BOOL *bool `type:"boolean"`
- // A Binary Set data type.
- BS [][]byte `type:"list"`
- // A List of attribute values.
- L []*AttributeValue `type:"list"`
- // A Map of attribute values.
- M map[string]*AttributeValue `type:"map"`
- // A Number data type.
- N *string `type:"string"`
- // A Number Set data type.
- NS []*string `type:"list"`
- // A Null data type.
- NULL *bool `type:"boolean"`
- // A String data type.
- S *string `type:"string"`
- // A String Set data type.
- SS []*string `type:"list"`
- metadataAttributeValue `json:"-" xml:"-"`
- }
- type metadataAttributeValue struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s AttributeValue) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s AttributeValue) GoString() string {
- return s.String()
- }
- // For the UpdateItem operation, represents the attributes to be modified, the
- // action to perform on each, and the new value for each.
- //
- // You cannot use UpdateItem to update any primary key attributes. Instead,
- // you will need to delete the item, and then use PutItem to create a new item
- // with new attributes.
- //
- // Attribute values cannot be null; string and binary type attributes must
- // have lengths greater than zero; and set type attributes must not be empty.
- // Requests with empty values will be rejected with a ValidationException exception.
- type AttributeValueUpdate struct {
- // Specifies how to perform the update. Valid values are PUT (default), DELETE,
- // and ADD. The behavior depends on whether the specified primary key already
- // exists in the table.
- //
- // If an item with the specified Key is found in the table:
- //
- // PUT - Adds the specified attribute to the item. If the attribute already
- // exists, it is replaced by the new value.
- //
- // DELETE - If no value is specified, the attribute and its value are removed
- // from the item. The data type of the specified value must match the existing
- // value's data type.
- //
- // If a set of values is specified, then those values are subtracted from the
- // old set. For example, if the attribute value was the set [a,b,c] and the
- // DELETE action specified [a,c], then the final attribute value would be [b].
- // Specifying an empty set is an error.
- //
- // ADD - If the attribute does not already exist, then the attribute and
- // its values are added to the item. If the attribute does exist, then the behavior
- // of ADD depends on the data type of the attribute:
- //
- // If the existing attribute is a number, and if Value is also a number,
- // then the Value is mathematically added to the existing attribute. If Value
- // is a negative number, then it is subtracted from the existing attribute.
- //
- // If you use ADD to increment or decrement a number value for an item that
- // doesn't exist before the update, DynamoDB uses 0 as the initial value.
- //
- // In addition, if you use ADD to update an existing item, and intend to increment
- // or decrement an attribute value which does not yet exist, DynamoDB uses 0
- // as the initial value. For example, suppose that the item you want to update
- // does not yet have an attribute named itemcount, but you decide to ADD the
- // number 3 to this attribute anyway, even though it currently does not exist.
- // DynamoDB will create the itemcount attribute, set its initial value to 0,
- // and finally add 3 to it. The result will be a new itemcount attribute in
- // the item, with a value of 3.
- //
- // If the existing data type is a set, and if the Value is also a set, then
- // the Value is added to the existing set. (This is a set operation, not mathematical
- // addition.) For example, if the attribute value was the set [1,2], and the
- // ADD action specified [3], then the final attribute value would be [1,2,3].
- // An error occurs if an Add action is specified for a set attribute and the
- // attribute type specified does not match the existing set type.
- //
- // Both sets must have the same primitive data type. For example, if the existing
- // data type is a set of strings, the Value must also be a set of strings. The
- // same holds true for number sets and binary sets.
- //
- // This action is only valid for an existing attribute whose data type is
- // number or is a set. Do not use ADD for any other data types.
- //
- // If no item with the specified Key is found:
- //
- // PUT - DynamoDB creates a new item with the specified primary key, and
- // then adds the attribute.
- //
- // DELETE - Nothing happens; there is no attribute to delete.
- //
- // ADD - DynamoDB creates an item with the supplied primary key and number
- // (or set of numbers) for the attribute value. The only data types allowed
- // are number and number set; no other data types can be specified.
- Action *string `type:"string" enum:"AttributeAction"`
- // Represents the data for an attribute. You can set one, and only one, of the
- // elements.
- //
- // Each attribute in an item is a name-value pair. An attribute can be single-valued
- // or multi-valued set. For example, a book item can have title and authors
- // attributes. Each book has one title but can have many authors. The multi-valued
- // attribute is a set; duplicate values are not allowed.
- Value *AttributeValue `type:"structure"`
- metadataAttributeValueUpdate `json:"-" xml:"-"`
- }
- type metadataAttributeValueUpdate struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s AttributeValueUpdate) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s AttributeValueUpdate) GoString() string {
- return s.String()
- }
- // Represents the input of a BatchGetItem operation.
- type BatchGetItemInput struct {
- // A map of one or more table names and, for each table, a map that describes
- // one or more items to retrieve from that table. Each table name can be used
- // only once per BatchGetItem request.
- //
- // Each element in the map of items to retrieve consists of the following:
- //
- // ConsistentRead - If true, a strongly consistent read is used; if false
- // (the default), an eventually consistent read is used.
- //
- // ExpressionAttributeNames - One or more substitution tokens for attribute
- // names in the ProjectionExpression parameter. The following are some use cases
- // for using ExpressionAttributeNames:
- //
- // To access an attribute whose name conflicts with a DynamoDB reserved word.
- //
- // To create a placeholder for repeating occurrences of an attribute name
- // in an expression.
- //
- // To prevent special characters in an attribute name from being misinterpreted
- // in an expression.
- //
- // Use the # character in an expression to dereference an attribute name.
- // For example, consider the following attribute name:
- //
- // Percentile
- //
- // The name of this attribute conflicts with a reserved word, so it cannot
- // be used directly in an expression. (For the complete list of reserved words,
- // see Reserved Words (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
- // in the Amazon DynamoDB Developer Guide). To work around this, you could specify
- // the following for ExpressionAttributeNames:
- //
- // {"#P":"Percentile"}
- //
- // You could then use this substitution in an expression, as in this example:
- //
- // #P = :val
- //
- // Tokens that begin with the : character are expression attribute values,
- // which are placeholders for the actual value at runtime.
- //
- // For more information on expression attribute names, see Accessing Item Attributes
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // Keys - An array of primary key attribute values that define specific items
- // in the table. For each primary key, you must provide all of the key attributes.
- // For example, with a hash type primary key, you only need to provide the hash
- // attribute. For a hash-and-range type primary key, you must provide both the
- // hash attribute and the range attribute.
- //
- // ProjectionExpression - A string that identifies one or more attributes
- // to retrieve from the table. These attributes can include scalars, sets, or
- // elements of a JSON document. The attributes in the expression must be separated
- // by commas.
- //
- // If no attribute names are specified, then all attributes will be returned.
- // If any of the requested attributes are not found, they will not appear in
- // the result.
- //
- // For more information, see Accessing Item Attributes (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // AttributesToGet -
- //
- // This is a legacy parameter, for backward compatibility. New applications
- // should use ProjectionExpression instead. Do not combine legacy parameters
- // and expression parameters in a single API call; otherwise, DynamoDB will
- // return a ValidationException exception.
- //
- // This parameter allows you to retrieve attributes of type List or Map; however,
- // it cannot retrieve individual elements within a List or a Map.
- //
- // The names of one or more attributes to retrieve. If no attribute names are
- // provided, then all attributes will be returned. If any of the requested attributes
- // are not found, they will not appear in the result.
- //
- // Note that AttributesToGet has no effect on provisioned throughput consumption.
- // DynamoDB determines capacity units consumed based on item size, not on the
- // amount of data that is returned to an application.
- RequestItems map[string]*KeysAndAttributes `type:"map" required:"true"`
- // Determines the level of detail about provisioned throughput consumption that
- // is returned in the response:
- //
- // INDEXES - The response includes the aggregate ConsumedCapacity for the
- // operation, together with ConsumedCapacity for each table and secondary index
- // that was accessed.
- //
- // Note that some operations, such as GetItem and BatchGetItem, do not access
- // any indexes at all. In these cases, specifying INDEXES will only return ConsumedCapacity
- // information for table(s).
- //
- // TOTAL - The response includes only the aggregate ConsumedCapacity for the
- // operation.
- //
- // NONE - No ConsumedCapacity details are included in the response.
- ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
- metadataBatchGetItemInput `json:"-" xml:"-"`
- }
- type metadataBatchGetItemInput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s BatchGetItemInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s BatchGetItemInput) GoString() string {
- return s.String()
- }
- // Represents the output of a BatchGetItem operation.
- type BatchGetItemOutput struct {
- // The read capacity units consumed by the operation.
- //
- // Each element consists of:
- //
- // TableName - The table that consumed the provisioned throughput.
- //
- // CapacityUnits - The total number of capacity units consumed.
- ConsumedCapacity []*ConsumedCapacity `type:"list"`
- // A map of table name to a list of items. Each object in Responses consists
- // of a table name, along with a map of attribute data consisting of the data
- // type and attribute value.
- Responses map[string][]map[string]*AttributeValue `type:"map"`
- // A map of tables and their respective keys that were not processed with the
- // current response. The UnprocessedKeys value is in the same form as RequestItems,
- // so the value can be provided directly to a subsequent BatchGetItem operation.
- // For more information, see RequestItems in the Request Parameters section.
- //
- // Each element consists of:
- //
- // Keys - An array of primary key attribute values that define specific items
- // in the table.
- //
- // AttributesToGet - One or more attributes to be retrieved from the table
- // or index. By default, all attributes are returned. If a requested attribute
- // is not found, it does not appear in the result.
- //
- // ConsistentRead - The consistency of a read operation. If set to true,
- // then a strongly consistent read is used; otherwise, an eventually consistent
- // read is used.
- //
- // If there are no unprocessed keys remaining, the response contains an empty
- // UnprocessedKeys map.
- UnprocessedKeys map[string]*KeysAndAttributes `type:"map"`
- metadataBatchGetItemOutput `json:"-" xml:"-"`
- }
- type metadataBatchGetItemOutput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s BatchGetItemOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s BatchGetItemOutput) GoString() string {
- return s.String()
- }
- // Represents the input of a BatchWriteItem operation.
- type BatchWriteItemInput struct {
- // A map of one or more table names and, for each table, a list of operations
- // to be performed (DeleteRequest or PutRequest). Each element in the map consists
- // of the following:
- //
- // DeleteRequest - Perform a DeleteItem operation on the specified item.
- // The item to be deleted is identified by a Key subelement:
- //
- // Key - A map of primary key attribute values that uniquely identify the
- // ! item. Each entry in this map consists of an attribute name and an attribute
- // value. For each primary key, you must provide all of the key attributes.
- // For example, with a hash type primary key, you only need to provide the hash
- // attribute. For a hash-and-range type primary key, you must provide both the
- // hash attribute and the range attribute.
- //
- // PutRequest - Perform a PutItem operation on the specified item. The
- // item to be put is identified by an Item subelement:
- //
- // Item - A map of attributes and their values. Each entry in this map consists
- // of an attribute name and an attribute value. Attribute values must not be
- // null; string and binary type attributes must have lengths greater than zero;
- // and set type attributes must not be empty. Requests that contain empty values
- // will be rejected with a ValidationException exception.
- //
- // If you specify any attributes that are part of an index key, then the data
- // types for those attributes must match those of the schema in the table's
- // attribute definition.
- RequestItems map[string][]*WriteRequest `type:"map" required:"true"`
- // Determines the level of detail about provisioned throughput consumption that
- // is returned in the response:
- //
- // INDEXES - The response includes the aggregate ConsumedCapacity for the
- // operation, together with ConsumedCapacity for each table and secondary index
- // that was accessed.
- //
- // Note that some operations, such as GetItem and BatchGetItem, do not access
- // any indexes at all. In these cases, specifying INDEXES will only return ConsumedCapacity
- // information for table(s).
- //
- // TOTAL - The response includes only the aggregate ConsumedCapacity for the
- // operation.
- //
- // NONE - No ConsumedCapacity details are included in the response.
- ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
- // Determines whether item collection metrics are returned. If set to SIZE,
- // the response includes statistics about item collections, if any, that were
- // modified during the operation are returned in the response. If set to NONE
- // (the default), no statistics are returned.
- ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"`
- metadataBatchWriteItemInput `json:"-" xml:"-"`
- }
- type metadataBatchWriteItemInput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s BatchWriteItemInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s BatchWriteItemInput) GoString() string {
- return s.String()
- }
- // Represents the output of a BatchWriteItem operation.
- type BatchWriteItemOutput struct {
- // The capacity units consumed by the operation.
- //
- // Each element consists of:
- //
- // TableName - The table that consumed the provisioned throughput.
- //
- // CapacityUnits - The total number of capacity units consumed.
- ConsumedCapacity []*ConsumedCapacity `type:"list"`
- // A list of tables that were processed by BatchWriteItem and, for each table,
- // information about any item collections that were affected by individual DeleteItem
- // or PutItem operations.
- //
- // Each entry consists of the following subelements:
- //
- // ItemCollectionKey - The hash key value of the item collection. This is
- // the same as the hash key of the item.
- //
- // SizeEstimateRange - An estimate of item collection size, expressed in
- // GB. This is a two-element array containing a lower bound and an upper bound
- // for the estimate. The estimate includes the size of all the items in the
- // table, plus the size of all attributes projected into all of the local secondary
- // indexes on the table. Use this estimate to measure whether a local secondary
- // index is approaching its size limit.
- //
- // The estimate is subject to change over time; therefore, do not rely on the
- // precision or accuracy of the estimate.
- ItemCollectionMetrics map[string][]*ItemCollectionMetrics `type:"map"`
- // A map of tables and requests against those tables that were not processed.
- // The UnprocessedItems value is in the same form as RequestItems, so you can
- // provide this value directly to a subsequent BatchGetItem operation. For more
- // information, see RequestItems in the Request Parameters section.
- //
- // Each UnprocessedItems entry consists of a table name and, for that table,
- // a list of operations to perform (DeleteRequest or PutRequest).
- //
- // DeleteRequest - Perform a DeleteItem operation on the specified item.
- // The item to be deleted is identified by a Key subelement:
- //
- // Key - A map of primary key attribute values that uniquely identify the
- // item. Each entry in this map consists of an attribute name and an attribute
- // value.
- //
- // PutRequest - Perform a PutItem operation on the specified item. The
- // item to be put is identified by an Item subelement:
- //
- // Item - A map of attributes and their values. Each entry in this map consists
- // of an attribute name and an attribute value. Attribute values must not be
- // null; string and binary type attributes must have lengths greater than zero;
- // and set type attributes must not be empty. Requests that contain empty values
- // will be rejected with a ValidationException exception.
- //
- // If you specify any attributes that are part of an index key, then the data
- // types for those attributes must match those of the schema in the table's
- // attribute definition.
- //
- // If there are no unprocessed items remaining, the response contains an
- // empty UnprocessedItems map.
- UnprocessedItems map[string][]*WriteRequest `type:"map"`
- metadataBatchWriteItemOutput `json:"-" xml:"-"`
- }
- type metadataBatchWriteItemOutput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s BatchWriteItemOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s BatchWriteItemOutput) GoString() string {
- return s.String()
- }
- // Represents the amount of provisioned throughput capacity consumed on a table
- // or an index.
- type Capacity struct {
- // The total number of capacity units consumed on a table or an index.
- CapacityUnits *float64 `type:"double"`
- metadataCapacity `json:"-" xml:"-"`
- }
- type metadataCapacity struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s Capacity) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s Capacity) GoString() string {
- return s.String()
- }
- // Represents the selection criteria for a Query or Scan operation:
- //
- // For a Query operation, Condition is used for specifying the KeyConditions
- // to use when querying a table or an index. For KeyConditions, only the following
- // comparison operators are supported:
- //
- // EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN
- //
- // Condition is also used in a QueryFilter, which evaluates the query results
- // and returns only the desired values.
- //
- // For a Scan operation, Condition is used in a ScanFilter, which evaluates
- // the scan results and returns only the desired values.
- type Condition struct {
- // One or more values to evaluate against the supplied attribute. The number
- // of values in the list depends on the ComparisonOperator being used.
- //
- // For type Number, value comparisons are numeric.
- //
- // String value comparisons for greater than, equals, or less than are based
- // on ASCII character code values. For example, a is greater than A, and a is
- // greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
- // (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters).
- //
- // For Binary, DynamoDB treats each byte of the binary data as unsigned when
- // it compares binary values.
- AttributeValueList []*AttributeValue `type:"list"`
- // A comparator for evaluating attributes. For example, equals, greater than,
- // less than, etc.
- //
- // The following comparison operators are available:
- //
- // EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS
- // | BEGINS_WITH | IN | BETWEEN
- //
- // The following are descriptions of each comparison operator.
- //
- // EQ : Equal. EQ is supported for all datatypes, including lists and maps.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, Binary, String Set, Number Set, or Binary Set. If an item contains
- // an AttributeValue element of a different type than the one provided in the
- // request, the value does not match. For example, {"S":"6"} does not equal
- // {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}.
- //
- // NE : Not equal. NE is supported for all datatypes, including lists and
- // maps.
- //
- // AttributeValueList can contain only one AttributeValue of type String, Number,
- // Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue
- // of a different type than the one provided in the request, the value does
- // not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not equal {"NS":["6", "2", "1"]}.
- //
- // LE : Less than or equal.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // LT : Less than.
- //
- // AttributeValueList can contain only one AttributeValue of type String, Number,
- // or Binary (not a set type). If an item contains an AttributeValue element
- // of a different type than the one provided in the request, the value does
- // not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // GE : Greater than or equal.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // GT : Greater than.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // NOT_NULL : The attribute exists. NOT_NULL is supported for all datatypes,
- // including lists and maps.
- //
- // This operator tests for the existence of an attribute, not its data type.
- // If the data type of attribute "a" is null, and you evaluate it using NOT_NULL,
- // the result is a Boolean true. This result is because the attribute "a" exists;
- // its data type is not relevant to the NOT_NULL comparison operator.
- //
- // NULL : The attribute does not exist. NULL is supported for all datatypes,
- // including lists and maps.
- //
- // This operator tests for the nonexistence of an attribute, not its data type.
- // If the data type of attribute "a" is null, and you evaluate it using NULL,
- // the result is a Boolean false. This is because the attribute "a" exists;
- // its data type is not relevant to the NULL comparison operator.
- //
- // CONTAINS : Checks for a subsequence, or value in a set.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If the target attribute of the comparison
- // is of type String, then the operator checks for a substring match. If the
- // target attribute of the comparison is of type Binary, then the operator looks
- // for a subsequence of the target that matches the input. If the target attribute
- // of the comparison is a set ("SS", "NS", or "BS"), then the operator evaluates
- // to true if it finds an exact match with any member of the set.
- //
- // CONTAINS is supported for lists: When evaluating "a CONTAINS b", "a" can
- // be a list; however, "b" cannot be a set, a map, or a list.
- //
- // NOT_CONTAINS : Checks for absence of a subsequence, or absence of a value
- // in a set.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If the target attribute of the comparison
- // is a String, then the operator checks for the absence of a substring match.
- // If the target attribute of the comparison is Binary, then the operator checks
- // for the absence of a subsequence of the target that matches the input. If
- // the target attribute of the comparison is a set ("SS", "NS", or "BS"), then
- // the operator evaluates to true if it does not find an exact match with any
- // member of the set.
- //
- // NOT_CONTAINS is supported for lists: When evaluating "a NOT CONTAINS b",
- // "a" can be a list; however, "b" cannot be a set, a map, or a list.
- //
- // BEGINS_WITH : Checks for a prefix.
- //
- // AttributeValueList can contain only one AttributeValue of type String or
- // Binary (not a Number or a set type). The target attribute of the comparison
- // must be of type String or Binary (not a Number or a set type).
- //
- // IN : Checks for matching elements within two sets.
- //
- // AttributeValueList can contain one or more AttributeValue elements of type
- // String, Number, or Binary (not a set type). These attributes are compared
- // against an existing set type attribute of an item. If any elements of the
- // input set are present in the item attribute, the expression evaluates to
- // true.
- //
- // BETWEEN : Greater than or equal to the first value, and less than or equal
- // to the second value.
- //
- // AttributeValueList must contain two AttributeValue elements of the same
- // type, either String, Number, or Binary (not a set type). A target attribute
- // matches if the target value is greater than, or equal to, the first element
- // and less than, or equal to, the second element. If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not compare to {"N":"6"}. Also,
- // {"N":"6"} does not compare to {"NS":["6", "2", "1"]}
- //
- // For usage examples of AttributeValueList and ComparisonOperator, see Legacy
- // Conditional Parameters (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.html)
- // in the Amazon DynamoDB Developer Guide.
- ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
- metadataCondition `json:"-" xml:"-"`
- }
- type metadataCondition struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s Condition) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s Condition) GoString() string {
- return s.String()
- }
- // The capacity units consumed by an operation. The data returned includes the
- // total provisioned throughput consumed, along with statistics for the table
- // and any indexes involved in the operation. ConsumedCapacity is only returned
- // if the request asked for it. For more information, see Provisioned Throughput
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
- // in the Amazon DynamoDB Developer Guide.
- type ConsumedCapacity struct {
- // The total number of capacity units consumed by the operation.
- CapacityUnits *float64 `type:"double"`
- // The amount of throughput consumed on each global index affected by the operation.
- GlobalSecondaryIndexes map[string]*Capacity `type:"map"`
- // The amount of throughput consumed on each local index affected by the operation.
- LocalSecondaryIndexes map[string]*Capacity `type:"map"`
- // The amount of throughput consumed on the table affected by the operation.
- Table *Capacity `type:"structure"`
- // The name of the table that was affected by the operation.
- TableName *string `type:"string"`
- metadataConsumedCapacity `json:"-" xml:"-"`
- }
- type metadataConsumedCapacity struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s ConsumedCapacity) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ConsumedCapacity) GoString() string {
- return s.String()
- }
- // Represents a new global secondary index to be added to an existing table.
- type CreateGlobalSecondaryIndexAction struct {
- // The name of the global secondary index to be created.
- IndexName *string `type:"string" required:"true"`
- // The key schema for the global secondary index.
- KeySchema []*KeySchemaElement `type:"list" required:"true"`
- // Represents attributes that are copied (projected) from the table into an
- // index. These are in addition to the primary key attributes and index key
- // attributes, which are automatically projected.
- Projection *Projection `type:"structure" required:"true"`
- // Represents the provisioned throughput settings for a specified table or index.
- // The settings can be modified using the UpdateTable operation.
- //
- // For current minimum and maximum provisioned throughput values, see Limits
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
- // in the Amazon DynamoDB Developer Guide.
- ProvisionedThroughput *ProvisionedThroughput `type:"structure" required:"true"`
- metadataCreateGlobalSecondaryIndexAction `json:"-" xml:"-"`
- }
- type metadataCreateGlobalSecondaryIndexAction struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s CreateGlobalSecondaryIndexAction) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateGlobalSecondaryIndexAction) GoString() string {
- return s.String()
- }
- // Represents the input of a CreateTable operation.
- type CreateTableInput struct {
- // An array of attributes that describe the key schema for the table and indexes.
- AttributeDefinitions []*AttributeDefinition `type:"list" required:"true"`
- // One or more global secondary indexes (the maximum is five) to be created
- // on the table. Each global secondary index in the array includes the following:
- //
- // IndexName - The name of the global secondary index. Must be unique only
- // for this table.
- //
- // KeySchema - Specifies the key schema for the global secondary index.
- //
- // Projection - Specifies attributes that are copied (projected) from the
- // table into the index. These are in addition to the primary key attributes
- // and index key attributes, which are automatically projected. Each attribute
- // specification is composed of:
- //
- // ProjectionType - One of the following:
- //
- // KEYS_ONLY - Only the index and primary keys are projected into the index.
- //
- // INCLUDE - Only the specified table attributes are projected into the index.
- // The list of projected attributes are in NonKeyAttributes.
- //
- // ALL - All of the table attributes are projected into the index.
- //
- // NonKeyAttributes - A list of one or more non-key attribute names that
- // are projected into the secondary index. The total count of attributes provided
- // in NonKeyAttributes, summed across all of the secondary indexes, must not
- // exceed 20. If you project the same attribute into two different indexes,
- // this counts as two distinct attributes when determining the total.
- //
- // ProvisionedThroughput - The provisioned throughput settings for the
- // global secondary index, consisting of read and write capacity units.
- GlobalSecondaryIndexes []*GlobalSecondaryIndex `type:"list"`
- // Specifies the attributes that make up the primary key for a table or an index.
- // The attributes in KeySchema must also be defined in the AttributeDefinitions
- // array. For more information, see Data Model (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // Each KeySchemaElement in the array is composed of:
- //
- // AttributeName - The name of this key attribute.
- //
- // KeyType - Determines whether the key attribute is HASH or RANGE.
- //
- // For a primary key that consists of a hash attribute, you must provide
- // exactly one element with a KeyType of HASH.
- //
- // For a primary key that consists of hash and range attributes, you must provide
- // exactly two elements, in this order: The first element must have a KeyType
- // of HASH, and the second element must have a KeyType of RANGE.
- //
- // For more information, see Specifying the Primary Key (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key)
- // in the Amazon DynamoDB Developer Guide.
- KeySchema []*KeySchemaElement `type:"list" required:"true"`
- // One or more local secondary indexes (the maximum is five) to be created on
- // the table. Each index is scoped to a given hash key value. There is a 10
- // GB size limit per hash key; otherwise, the size of a local secondary index
- // is unconstrained.
- //
- // Each local secondary index in the array includes the following:
- //
- // IndexName - The name of the local secondary index. Must be unique only
- // for this table.
- //
- // KeySchema - Specifies the key schema for the local secondary index. The
- // key schema must begin with the same hash key attribute as the table.
- //
- // Projection - Specifies attributes that are copied (projected) from the
- // table into the index. These are in addition to the primary key attributes
- // and index key attributes, which are automatically projected. Each attribute
- // specification is composed of:
- //
- // ProjectionType - One of the following:
- //
- // KEYS_ONLY - Only the index and primary keys are projected into the index.
- //
- // INCLUDE - Only the specified table attributes are projected into the index.
- // The list of projected attributes are in NonKeyAttributes.
- //
- // ALL - All of the table attributes are projected into the index.
- //
- // NonKeyAttributes - A list of one or more non-key attribute names that
- // are projected into the secondary index. The total count of attributes provided
- // in NonKeyAttributes, summed across all of the secondary indexes, must not
- // exceed 20. If you project the same attribute into two different indexes,
- // this counts as two distinct attributes when determining the total.
- LocalSecondaryIndexes []*LocalSecondaryIndex `type:"list"`
- // Represents the provisioned throughput settings for a specified table or index.
- // The settings can be modified using the UpdateTable operation.
- //
- // For current minimum and maximum provisioned throughput values, see Limits
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
- // in the Amazon DynamoDB Developer Guide.
- ProvisionedThroughput *ProvisionedThroughput `type:"structure" required:"true"`
- // The settings for DynamoDB Streams on the table. These settings consist of:
- //
- // StreamEnabled - Indicates whether Streams is to be enabled (true) or disabled
- // (false).
- //
- // StreamViewType - When an item in the table is modified, StreamViewType
- // determines what information is written to the table's stream. Valid values
- // for StreamViewType are:
- //
- // KEYS_ONLY - Only the key attributes of the modified item are written to
- // the stream.
- //
- // NEW_IMAGE - The entire item, as it appears after it was modified, is written
- // to the stream.
- //
- // OLD_IMAGE - The entire item, as it appeared before it was modified, is written
- // to the stream.
- //
- // NEW_AND_OLD_IMAGES - Both the new and the old item images of the item are
- // written to the stream.
- StreamSpecification *StreamSpecification `type:"structure"`
- // The name of the table to create.
- TableName *string `type:"string" required:"true"`
- metadataCreateTableInput `json:"-" xml:"-"`
- }
- type metadataCreateTableInput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s CreateTableInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateTableInput) GoString() string {
- return s.String()
- }
- // Represents the output of a CreateTable operation.
- type CreateTableOutput struct {
- // Represents the properties of a table.
- TableDescription *TableDescription `type:"structure"`
- metadataCreateTableOutput `json:"-" xml:"-"`
- }
- type metadataCreateTableOutput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s CreateTableOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateTableOutput) GoString() string {
- return s.String()
- }
- // Represents a global secondary index to be deleted from an existing table.
- type DeleteGlobalSecondaryIndexAction struct {
- // The name of the global secondary index to be deleted.
- IndexName *string `type:"string" required:"true"`
- metadataDeleteGlobalSecondaryIndexAction `json:"-" xml:"-"`
- }
- type metadataDeleteGlobalSecondaryIndexAction struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s DeleteGlobalSecondaryIndexAction) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteGlobalSecondaryIndexAction) GoString() string {
- return s.String()
- }
- // Represents the input of a DeleteItem operation.
- type DeleteItemInput struct {
- // A condition that must be satisfied in order for a conditional DeleteItem
- // to succeed.
- //
- // An expression can contain any of the following:
- //
- // Functions: attribute_exists | attribute_not_exists | attribute_type |
- // contains | begins_with | size
- //
- // These function names are case-sensitive.
- //
- // Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN
- //
- // Logical operators: AND | OR | NOT
- //
- // For more information on condition expressions, see Specifying Conditions
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // ConditionExpression replaces the legacy ConditionalOperator and Expected
- // parameters.
- ConditionExpression *string `type:"string"`
- // This is a legacy parameter, for backward compatibility. New applications
- // should use ConditionExpression instead. Do not combine legacy parameters
- // and expression parameters in a single API call; otherwise, DynamoDB will
- // return a ValidationException exception.
- //
- // A logical operator to apply to the conditions in the Expected map:
- //
- // AND - If all of the conditions evaluate to true, then the entire map evaluates
- // to true.
- //
- // OR - If at least one of the conditions evaluate to true, then the entire
- // map evaluates to true.
- //
- // If you omit ConditionalOperator, then AND is the default.
- //
- // The operation will succeed only if the entire map evaluates to true.
- //
- // This parameter does not support attributes of type List or Map.
- ConditionalOperator *string `type:"string" enum:"ConditionalOperator"`
- // This is a legacy parameter, for backward compatibility. New applications
- // should use ConditionExpression instead. Do not combine legacy parameters
- // and expression parameters in a single API call; otherwise, DynamoDB will
- // return a ValidationException exception.
- //
- // A map of attribute/condition pairs. Expected provides a conditional block
- // for the DeleteItem operation.
- //
- // Each element of Expected consists of an attribute name, a comparison operator,
- // and one or more values. DynamoDB compares the attribute with the value(s)
- // you supplied, using the comparison operator. For each Expected element, the
- // result of the evaluation is either true or false.
- //
- // If you specify more than one element in the Expected map, then by default
- // all of the conditions must evaluate to true. In other words, the conditions
- // are ANDed together. (You can use the ConditionalOperator parameter to OR
- // the conditions instead. If you do this, then at least one of the conditions
- // must evaluate to true, rather than all of them.)
- //
- // If the Expected map evaluates to true, then the conditional operation succeeds;
- // otherwise, it fails.
- //
- // Expected contains the following:
- //
- // AttributeValueList - One or more values to evaluate against the supplied
- // attribute. The number of values in the list depends on the ComparisonOperator
- // being used.
- //
- // For type Number, value comparisons are numeric.
- //
- // String value comparisons for greater than, equals, or less than are based
- // on ASCII character code values. For example, a is greater than A, and a is
- // greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.
- //
- // For type Binary, DynamoDB treats each byte of the binary data as unsigned
- // when it compares binary values.
- //
- // ComparisonOperator - A comparator for evaluating attributes in the AttributeValueList.
- // When performing the comparison, DynamoDB uses strongly consistent reads.
- //
- // The following comparison operators are available:
- //
- // EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS
- // | BEGINS_WITH | IN | BETWEEN
- //
- // The following are descriptions of each comparison operator.
- //
- // EQ : Equal. EQ is supported for all datatypes, including lists and maps.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, Binary, String Set, Number Set, or Binary Set. If an item contains
- // an AttributeValue element of a different type than the one provided in the
- // request, the value does not match. For example, {"S":"6"} does not equal
- // {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}.
- //
- // NE : Not equal. NE is supported for all datatypes, including lists and
- // maps.
- //
- // AttributeValueList can contain only one AttributeValue of type String, Number,
- // Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue
- // of a different type than the one provided in the request, the value does
- // not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not equal {"NS":["6", "2", "1"]}.
- //
- // LE : Less than or equal.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // LT : Less than.
- //
- // AttributeValueList can contain only one AttributeValue of type String, Number,
- // or Binary (not a set type). If an item contains an AttributeValue element
- // of a different type than the one provided in the request, the value does
- // not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // GE : Greater than or equal.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // GT : Greater than.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // NOT_NULL : The attribute exists. NOT_NULL is supported for all datatypes,
- // including lists and maps.
- //
- // This operator tests for the existence of an attribute, not its data type.
- // If the data type of attribute "a" is null, and you evaluate it using NOT_NULL,
- // the result is a Boolean true. This result is because the attribute "a" exists;
- // its data type is not relevant to the NOT_NULL comparison operator.
- //
- // NULL : The attribute does not exist. NULL is supported for all datatypes,
- // including lists and maps.
- //
- // This operator tests for the nonexistence of an attribute, not its data type.
- // If the data type of attribute "a" is null, and you evaluate it using NULL,
- // the result is a Boolean false. This is because the attribute "a" exists;
- // its data type is not relevant to the NULL comparison operator.
- //
- // CONTAINS : Checks for a subsequence, or value in a set.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If the target attribute of the comparison
- // is of type String, then the operator checks for a substring match. If the
- // target attribute of the comparison is of type Binary, then the operator looks
- // for a subsequence of the target that matches the input. If the target attribute
- // of the comparison is a set ("SS", "NS", or "BS"), then the operator evaluates
- // to true if it finds an exact match with any member of the set.
- //
- // CONTAINS is supported for lists: When evaluating "a CONTAINS b", "a" can
- // be a list; however, "b" cannot be a set, a map, or a list.
- //
- // NOT_CONTAINS : Checks for absence of a subsequence, or absence of a value
- // in a set.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If the target attribute of the comparison
- // is a String, then the operator checks for the absence of a substring match.
- // If the target attribute of the comparison is Binary, then the operator checks
- // for the absence of a subsequence of the target that matches the input. If
- // the target attribute of the comparison is a set ("SS", "NS", or "BS"), then
- // the operator evaluates to true if it does not find an exact match with any
- // member of the set.
- //
- // NOT_CONTAINS is supported for lists: When evaluating "a NOT CONTAINS b",
- // "a" can be a list; however, "b" cannot be a set, a map, or a list.
- //
- // BEGINS_WITH : Checks for a prefix.
- //
- // AttributeValueList can contain only one AttributeValue of type String or
- // Binary (not a Number or a set type). The target attribute of the comparison
- // must be of type String or Binary (not a Number or a set type).
- //
- // IN : Checks for matching elements within two sets.
- //
- // AttributeValueList can contain one or more AttributeValue elements of type
- // String, Number, or Binary (not a set type). These attributes are compared
- // against an existing set type attribute of an item. If any elements of the
- // input set are present in the item attribute, the expression evaluates to
- // true.
- //
- // BETWEEN : Greater than or equal to the first value, and less than or equal
- // to the second value.
- //
- // AttributeValueList must contain two AttributeValue elements of the same
- // type, either String, Number, or Binary (not a set type). A target attribute
- // matches if the target value is greater than, or equal to, the first element
- // and less than, or equal to, the second element. If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not compare to {"N":"6"}. Also,
- // {"N":"6"} does not compare to {"NS":["6", "2", "1"]}
- //
- // For usage examples of AttributeValueList and ComparisonOperator, see
- // Legacy Conditional Parameters (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // For backward compatibility with previous DynamoDB releases, the following
- // parameters can be used instead of AttributeValueList and ComparisonOperator:
- //
- // Value - A value for DynamoDB to compare with an attribute.
- //
- // Exists - A Boolean value that causes DynamoDB to evaluate the value before
- // attempting the conditional operation:
- //
- // If Exists is true, DynamoDB will check to see if that attribute value
- // already exists in the table. If it is found, then the condition evaluates
- // to true; otherwise the condition evaluate to false.
- //
- // If Exists is false, DynamoDB assumes that the attribute value does not
- // exist in the table. If in fact the value does not exist, then the assumption
- // is valid and the condition evaluates to true. If the value is found, despite
- // the assumption that it does not exist, the condition evaluates to false.
- //
- // Note that the default value for Exists is true.
- //
- // The Value and Exists parameters are incompatible with AttributeValueList
- // and ComparisonOperator. Note that if you use both sets of parameters at once,
- // DynamoDB will return a ValidationException exception.
- //
- // This parameter does not support attributes of type List or Map.
- Expected map[string]*ExpectedAttributeValue `type:"map"`
- // One or more substitution tokens for attribute names in an expression. The
- // following are some use cases for using ExpressionAttributeNames:
- //
- // To access an attribute whose name conflicts with a DynamoDB reserved word.
- //
- // To create a placeholder for repeating occurrences of an attribute name
- // in an expression.
- //
- // To prevent special characters in an attribute name from being misinterpreted
- // in an expression.
- //
- // Use the # character in an expression to dereference an attribute name.
- // For example, consider the following attribute name:
- //
- // Percentile
- //
- // The name of this attribute conflicts with a reserved word, so it cannot
- // be used directly in an expression. (For the complete list of reserved words,
- // see Reserved Words (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
- // in the Amazon DynamoDB Developer Guide). To work around this, you could specify
- // the following for ExpressionAttributeNames:
- //
- // {"#P":"Percentile"}
- //
- // You could then use this substitution in an expression, as in this example:
- //
- // #P = :val
- //
- // Tokens that begin with the : character are expression attribute values,
- // which are placeholders for the actual value at runtime.
- //
- // For more information on expression attribute names, see Accessing Item Attributes
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
- // in the Amazon DynamoDB Developer Guide.
- ExpressionAttributeNames map[string]*string `type:"map"`
- // One or more values that can be substituted in an expression.
- //
- // Use the : (colon) character in an expression to dereference an attribute
- // value. For example, suppose that you wanted to check whether the value of
- // the ProductStatus attribute was one of the following:
- //
- // Available | Backordered | Discontinued
- //
- // You would first need to specify ExpressionAttributeValues as follows:
- //
- // { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"}
- // }
- //
- // You could then use these values in an expression, such as this:
- //
- // ProductStatus IN (:avail, :back, :disc)
- //
- // For more information on expression attribute values, see Specifying Conditions
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
- // in the Amazon DynamoDB Developer Guide.
- ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
- // A map of attribute names to AttributeValue objects, representing the primary
- // key of the item to delete.
- //
- // For the primary key, you must provide all of the attributes. For example,
- // with a hash type primary key, you only need to provide the hash attribute.
- // For a hash-and-range type primary key, you must provide both the hash attribute
- // and the range attribute.
- Key map[string]*AttributeValue `type:"map" required:"true"`
- // Determines the level of detail about provisioned throughput consumption that
- // is returned in the response:
- //
- // INDEXES - The response includes the aggregate ConsumedCapacity for the
- // operation, together with ConsumedCapacity for each table and secondary index
- // that was accessed.
- //
- // Note that some operations, such as GetItem and BatchGetItem, do not access
- // any indexes at all. In these cases, specifying INDEXES will only return ConsumedCapacity
- // information for table(s).
- //
- // TOTAL - The response includes only the aggregate ConsumedCapacity for the
- // operation.
- //
- // NONE - No ConsumedCapacity details are included in the response.
- ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
- // Determines whether item collection metrics are returned. If set to SIZE,
- // the response includes statistics about item collections, if any, that were
- // modified during the operation are returned in the response. If set to NONE
- // (the default), no statistics are returned.
- ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"`
- // Use ReturnValues if you want to get the item attributes as they appeared
- // before they were deleted. For DeleteItem, the valid values are:
- //
- // NONE - If ReturnValues is not specified, or if its value is NONE, then
- // nothing is returned. (This setting is the default for ReturnValues.)
- //
- // ALL_OLD - The content of the old item is returned.
- ReturnValues *string `type:"string" enum:"ReturnValue"`
- // The name of the table from which to delete the item.
- TableName *string `type:"string" required:"true"`
- metadataDeleteItemInput `json:"-" xml:"-"`
- }
- type metadataDeleteItemInput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s DeleteItemInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteItemInput) GoString() string {
- return s.String()
- }
- // Represents the output of a DeleteItem operation.
- type DeleteItemOutput struct {
- // A map of attribute names to AttributeValue objects, representing the item
- // as it appeared before the DeleteItem operation. This map appears in the response
- // only if ReturnValues was specified as ALL_OLD in the request.
- Attributes map[string]*AttributeValue `type:"map"`
- // The capacity units consumed by an operation. The data returned includes the
- // total provisioned throughput consumed, along with statistics for the table
- // and any indexes involved in the operation. ConsumedCapacity is only returned
- // if the request asked for it. For more information, see Provisioned Throughput
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
- // in the Amazon DynamoDB Developer Guide.
- ConsumedCapacity *ConsumedCapacity `type:"structure"`
- // Information about item collections, if any, that were affected by the operation.
- // ItemCollectionMetrics is only returned if the request asked for it. If the
- // table does not have any local secondary indexes, this information is not
- // returned in the response.
- //
- // Each ItemCollectionMetrics element consists of:
- //
- // ItemCollectionKey - The hash key value of the item collection. This is
- // the same as the hash key of the item.
- //
- // SizeEstimateRange - An estimate of item collection size, in gigabytes. This
- // value is a two-element array containing a lower bound and an upper bound
- // for the estimate. The estimate includes the size of all the items in the
- // table, plus the size of all attributes projected into all of the local secondary
- // indexes on that table. Use this estimate to measure whether a local secondary
- // index is approaching its size limit.
- //
- // The estimate is subject to change over time; therefore, do not rely on the
- // precision or accuracy of the estimate.
- ItemCollectionMetrics *ItemCollectionMetrics `type:"structure"`
- metadataDeleteItemOutput `json:"-" xml:"-"`
- }
- type metadataDeleteItemOutput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s DeleteItemOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteItemOutput) GoString() string {
- return s.String()
- }
- // Represents a request to perform a DeleteItem operation on an item.
- type DeleteRequest struct {
- // A map of attribute name to attribute values, representing the primary key
- // of the item to delete. All of the table's primary key attributes must be
- // specified, and their data types must match those of the table's key schema.
- Key map[string]*AttributeValue `type:"map" required:"true"`
- metadataDeleteRequest `json:"-" xml:"-"`
- }
- type metadataDeleteRequest struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s DeleteRequest) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteRequest) GoString() string {
- return s.String()
- }
- // Represents the input of a DeleteTable operation.
- type DeleteTableInput struct {
- // The name of the table to delete.
- TableName *string `type:"string" required:"true"`
- metadataDeleteTableInput `json:"-" xml:"-"`
- }
- type metadataDeleteTableInput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s DeleteTableInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteTableInput) GoString() string {
- return s.String()
- }
- // Represents the output of a DeleteTable operation.
- type DeleteTableOutput struct {
- // Represents the properties of a table.
- TableDescription *TableDescription `type:"structure"`
- metadataDeleteTableOutput `json:"-" xml:"-"`
- }
- type metadataDeleteTableOutput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s DeleteTableOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteTableOutput) GoString() string {
- return s.String()
- }
- // Represents the input of a DescribeTable operation.
- type DescribeTableInput struct {
- // The name of the table to describe.
- TableName *string `type:"string" required:"true"`
- metadataDescribeTableInput `json:"-" xml:"-"`
- }
- type metadataDescribeTableInput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s DescribeTableInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DescribeTableInput) GoString() string {
- return s.String()
- }
- // Represents the output of a DescribeTable operation.
- type DescribeTableOutput struct {
- // Represents the properties of a table.
- Table *TableDescription `type:"structure"`
- metadataDescribeTableOutput `json:"-" xml:"-"`
- }
- type metadataDescribeTableOutput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s DescribeTableOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DescribeTableOutput) GoString() string {
- return s.String()
- }
- // Represents a condition to be compared with an attribute value. This condition
- // can be used with DeleteItem, PutItem or UpdateItem operations; if the comparison
- // evaluates to true, the operation succeeds; if not, the operation fails. You
- // can use ExpectedAttributeValue in one of two different ways:
- //
- // Use AttributeValueList to specify one or more values to compare against
- // an attribute. Use ComparisonOperator to specify how you want to perform the
- // comparison. If the comparison evaluates to true, then the conditional operation
- // succeeds.
- //
- // Use Value to specify a value that DynamoDB will compare against an attribute.
- // If the values match, then ExpectedAttributeValue evaluates to true and the
- // conditional operation succeeds. Optionally, you can also set Exists to false,
- // indicating that you do not expect to find the attribute value in the table.
- // In this case, the conditional operation succeeds only if the comparison evaluates
- // to false.
- //
- // Value and Exists are incompatible with AttributeValueList and ComparisonOperator.
- // Note that if you use both sets of parameters at once, DynamoDB will return
- // a ValidationException exception.
- type ExpectedAttributeValue struct {
- // One or more values to evaluate against the supplied attribute. The number
- // of values in the list depends on the ComparisonOperator being used.
- //
- // For type Number, value comparisons are numeric.
- //
- // String value comparisons for greater than, equals, or less than are based
- // on ASCII character code values. For example, a is greater than A, and a is
- // greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
- // (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters).
- //
- // For Binary, DynamoDB treats each byte of the binary data as unsigned when
- // it compares binary values.
- //
- // For information on specifying data types in JSON, see JSON Data Format (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataFormat.html)
- // in the Amazon DynamoDB Developer Guide.
- AttributeValueList []*AttributeValue `type:"list"`
- // A comparator for evaluating attributes in the AttributeValueList. For example,
- // equals, greater than, less than, etc.
- //
- // The following comparison operators are available:
- //
- // EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS
- // | BEGINS_WITH | IN | BETWEEN
- //
- // The following are descriptions of each comparison operator.
- //
- // EQ : Equal. EQ is supported for all datatypes, including lists and maps.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, Binary, String Set, Number Set, or Binary Set. If an item contains
- // an AttributeValue element of a different type than the one provided in the
- // request, the value does not match. For example, {"S":"6"} does not equal
- // {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}.
- //
- // NE : Not equal. NE is supported for all datatypes, including lists and
- // maps.
- //
- // AttributeValueList can contain only one AttributeValue of type String, Number,
- // Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue
- // of a different type than the one provided in the request, the value does
- // not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not equal {"NS":["6", "2", "1"]}.
- //
- // LE : Less than or equal.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // LT : Less than.
- //
- // AttributeValueList can contain only one AttributeValue of type String, Number,
- // or Binary (not a set type). If an item contains an AttributeValue element
- // of a different type than the one provided in the request, the value does
- // not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // GE : Greater than or equal.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // GT : Greater than.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // NOT_NULL : The attribute exists. NOT_NULL is supported for all datatypes,
- // including lists and maps.
- //
- // This operator tests for the existence of an attribute, not its data type.
- // If the data type of attribute "a" is null, and you evaluate it using NOT_NULL,
- // the result is a Boolean true. This result is because the attribute "a" exists;
- // its data type is not relevant to the NOT_NULL comparison operator.
- //
- // NULL : The attribute does not exist. NULL is supported for all datatypes,
- // including lists and maps.
- //
- // This operator tests for the nonexistence of an attribute, not its data type.
- // If the data type of attribute "a" is null, and you evaluate it using NULL,
- // the result is a Boolean false. This is because the attribute "a" exists;
- // its data type is not relevant to the NULL comparison operator.
- //
- // CONTAINS : Checks for a subsequence, or value in a set.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If the target attribute of the comparison
- // is of type String, then the operator checks for a substring match. If the
- // target attribute of the comparison is of type Binary, then the operator looks
- // for a subsequence of the target that matches the input. If the target attribute
- // of the comparison is a set ("SS", "NS", or "BS"), then the operator evaluates
- // to true if it finds an exact match with any member of the set.
- //
- // CONTAINS is supported for lists: When evaluating "a CONTAINS b", "a" can
- // be a list; however, "b" cannot be a set, a map, or a list.
- //
- // NOT_CONTAINS : Checks for absence of a subsequence, or absence of a value
- // in a set.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If the target attribute of the comparison
- // is a String, then the operator checks for the absence of a substring match.
- // If the target attribute of the comparison is Binary, then the operator checks
- // for the absence of a subsequence of the target that matches the input. If
- // the target attribute of the comparison is a set ("SS", "NS", or "BS"), then
- // the operator evaluates to true if it does not find an exact match with any
- // member of the set.
- //
- // NOT_CONTAINS is supported for lists: When evaluating "a NOT CONTAINS b",
- // "a" can be a list; however, "b" cannot be a set, a map, or a list.
- //
- // BEGINS_WITH : Checks for a prefix.
- //
- // AttributeValueList can contain only one AttributeValue of type String or
- // Binary (not a Number or a set type). The target attribute of the comparison
- // must be of type String or Binary (not a Number or a set type).
- //
- // IN : Checks for matching elements within two sets.
- //
- // AttributeValueList can contain one or more AttributeValue elements of type
- // String, Number, or Binary (not a set type). These attributes are compared
- // against an existing set type attribute of an item. If any elements of the
- // input set are present in the item attribute, the expression evaluates to
- // true.
- //
- // BETWEEN : Greater than or equal to the first value, and less than or equal
- // to the second value.
- //
- // AttributeValueList must contain two AttributeValue elements of the same
- // type, either String, Number, or Binary (not a set type). A target attribute
- // matches if the target value is greater than, or equal to, the first element
- // and less than, or equal to, the second element. If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not compare to {"N":"6"}. Also,
- // {"N":"6"} does not compare to {"NS":["6", "2", "1"]}
- ComparisonOperator *string `type:"string" enum:"ComparisonOperator"`
- // Causes DynamoDB to evaluate the value before attempting a conditional operation:
- //
- // If Exists is true, DynamoDB will check to see if that attribute value
- // already exists in the table. If it is found, then the operation succeeds.
- // If it is not found, the operation fails with a ConditionalCheckFailedException.
- //
- // If Exists is false, DynamoDB assumes that the attribute value does not
- // exist in the table. If in fact the value does not exist, then the assumption
- // is valid and the operation succeeds. If the value is found, despite the assumption
- // that it does not exist, the operation fails with a ConditionalCheckFailedException.
- //
- // The default setting for Exists is true. If you supply a Value all by itself,
- // DynamoDB assumes the attribute exists: You don't have to set Exists to true,
- // because it is implied.
- //
- // DynamoDB returns a ValidationException if:
- //
- // Exists is true but there is no Value to check. (You expect a value to
- // exist, but don't specify what that value is.)
- //
- // Exists is false but you also provide a Value. (You cannot expect an attribute
- // to have a value, while also expecting it not to exist.)
- Exists *bool `type:"boolean"`
- // Represents the data for an attribute. You can set one, and only one, of the
- // elements.
- //
- // Each attribute in an item is a name-value pair. An attribute can be single-valued
- // or multi-valued set. For example, a book item can have title and authors
- // attributes. Each book has one title but can have many authors. The multi-valued
- // attribute is a set; duplicate values are not allowed.
- Value *AttributeValue `type:"structure"`
- metadataExpectedAttributeValue `json:"-" xml:"-"`
- }
- type metadataExpectedAttributeValue struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s ExpectedAttributeValue) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ExpectedAttributeValue) GoString() string {
- return s.String()
- }
- // Represents the input of a GetItem operation.
- type GetItemInput struct {
- // This is a legacy parameter, for backward compatibility. New applications
- // should use ProjectionExpression instead. Do not combine legacy parameters
- // and expression parameters in a single API call; otherwise, DynamoDB will
- // return a ValidationException exception.
- //
- // This parameter allows you to retrieve attributes of type List or Map; however,
- // it cannot retrieve individual elements within a List or a Map.
- //
- // The names of one or more attributes to retrieve. If no attribute names are
- // provided, then all attributes will be returned. If any of the requested attributes
- // are not found, they will not appear in the result.
- //
- // Note that AttributesToGet has no effect on provisioned throughput consumption.
- // DynamoDB determines capacity units consumed based on item size, not on the
- // amount of data that is returned to an application.
- AttributesToGet []*string `type:"list"`
- // Determines the read consistency model: If set to true, then the operation
- // uses strongly consistent reads; otherwise, the operation uses eventually
- // consistent reads.
- ConsistentRead *bool `type:"boolean"`
- // One or more substitution tokens for attribute names in an expression. The
- // following are some use cases for using ExpressionAttributeNames:
- //
- // To access an attribute whose name conflicts with a DynamoDB reserved word.
- //
- // To create a placeholder for repeating occurrences of an attribute name
- // in an expression.
- //
- // To prevent special characters in an attribute name from being misinterpreted
- // in an expression.
- //
- // Use the # character in an expression to dereference an attribute name.
- // For example, consider the following attribute name:
- //
- // Percentile
- //
- // The name of this attribute conflicts with a reserved word, so it cannot
- // be used directly in an expression. (For the complete list of reserved words,
- // see Reserved Words (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
- // in the Amazon DynamoDB Developer Guide). To work around this, you could specify
- // the following for ExpressionAttributeNames:
- //
- // {"#P":"Percentile"}
- //
- // You could then use this substitution in an expression, as in this example:
- //
- // #P = :val
- //
- // Tokens that begin with the : character are expression attribute values,
- // which are placeholders for the actual value at runtime.
- //
- // For more information on expression attribute names, see Accessing Item Attributes
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
- // in the Amazon DynamoDB Developer Guide.
- ExpressionAttributeNames map[string]*string `type:"map"`
- // A map of attribute names to AttributeValue objects, representing the primary
- // key of the item to retrieve.
- //
- // For the primary key, you must provide all of the attributes. For example,
- // with a hash type primary key, you only need to provide the hash attribute.
- // For a hash-and-range type primary key, you must provide both the hash attribute
- // and the range attribute.
- Key map[string]*AttributeValue `type:"map" required:"true"`
- // A string that identifies one or more attributes to retrieve from the table.
- // These attributes can include scalars, sets, or elements of a JSON document.
- // The attributes in the expression must be separated by commas.
- //
- // If no attribute names are specified, then all attributes will be returned.
- // If any of the requested attributes are not found, they will not appear in
- // the result.
- //
- // For more information, see Accessing Item Attributes (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // ProjectionExpression replaces the legacy AttributesToGet parameter.
- ProjectionExpression *string `type:"string"`
- // Determines the level of detail about provisioned throughput consumption that
- // is returned in the response:
- //
- // INDEXES - The response includes the aggregate ConsumedCapacity for the
- // operation, together with ConsumedCapacity for each table and secondary index
- // that was accessed.
- //
- // Note that some operations, such as GetItem and BatchGetItem, do not access
- // any indexes at all. In these cases, specifying INDEXES will only return ConsumedCapacity
- // information for table(s).
- //
- // TOTAL - The response includes only the aggregate ConsumedCapacity for the
- // operation.
- //
- // NONE - No ConsumedCapacity details are included in the response.
- ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
- // The name of the table containing the requested item.
- TableName *string `type:"string" required:"true"`
- metadataGetItemInput `json:"-" xml:"-"`
- }
- type metadataGetItemInput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s GetItemInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetItemInput) GoString() string {
- return s.String()
- }
- // Represents the output of a GetItem operation.
- type GetItemOutput struct {
- // The capacity units consumed by an operation. The data returned includes the
- // total provisioned throughput consumed, along with statistics for the table
- // and any indexes involved in the operation. ConsumedCapacity is only returned
- // if the request asked for it. For more information, see Provisioned Throughput
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
- // in the Amazon DynamoDB Developer Guide.
- ConsumedCapacity *ConsumedCapacity `type:"structure"`
- // A map of attribute names to AttributeValue objects, as specified by AttributesToGet.
- Item map[string]*AttributeValue `type:"map"`
- metadataGetItemOutput `json:"-" xml:"-"`
- }
- type metadataGetItemOutput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s GetItemOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GetItemOutput) GoString() string {
- return s.String()
- }
- // Represents the properties of a global secondary index.
- type GlobalSecondaryIndex struct {
- // The name of the global secondary index. The name must be unique among all
- // other indexes on this table.
- IndexName *string `type:"string" required:"true"`
- // The complete key schema for a global secondary index, which consists of one
- // or more pairs of attribute names and key types (HASH or RANGE).
- KeySchema []*KeySchemaElement `type:"list" required:"true"`
- // Represents attributes that are copied (projected) from the table into an
- // index. These are in addition to the primary key attributes and index key
- // attributes, which are automatically projected.
- Projection *Projection `type:"structure" required:"true"`
- // Represents the provisioned throughput settings for a specified table or index.
- // The settings can be modified using the UpdateTable operation.
- //
- // For current minimum and maximum provisioned throughput values, see Limits
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
- // in the Amazon DynamoDB Developer Guide.
- ProvisionedThroughput *ProvisionedThroughput `type:"structure" required:"true"`
- metadataGlobalSecondaryIndex `json:"-" xml:"-"`
- }
- type metadataGlobalSecondaryIndex struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s GlobalSecondaryIndex) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GlobalSecondaryIndex) GoString() string {
- return s.String()
- }
- // Represents the properties of a global secondary index.
- type GlobalSecondaryIndexDescription struct {
- // Indicates whether the index is currently backfilling. Backfilling is the
- // process of reading items from the table and determining whether they can
- // be added to the index. (Not all items will qualify: For example, a hash key
- // attribute cannot have any duplicates.) If an item can be added to the index,
- // DynamoDB will do so. After all items have been processed, the backfilling
- // operation is complete and Backfilling is false.
- //
- // For indexes that were created during a CreateTable operation, the Backfilling
- // attribute does not appear in the DescribeTable output.
- Backfilling *bool `type:"boolean"`
- // The Amazon Resource Name (ARN) that uniquely identifies the index.
- IndexArn *string `type:"string"`
- // The name of the global secondary index.
- IndexName *string `type:"string"`
- // The total size of the specified index, in bytes. DynamoDB updates this value
- // approximately every six hours. Recent changes might not be reflected in this
- // value.
- IndexSizeBytes *int64 `type:"long"`
- // The current state of the global secondary index:
- //
- // CREATING - The index is being created.
- //
- // UPDATING - The index is being updated.
- //
- // DELETING - The index is being deleted.
- //
- // ACTIVE - The index is ready for use.
- IndexStatus *string `type:"string" enum:"IndexStatus"`
- // The number of items in the specified index. DynamoDB updates this value approximately
- // every six hours. Recent changes might not be reflected in this value.
- ItemCount *int64 `type:"long"`
- // The complete key schema for the global secondary index, consisting of one
- // or more pairs of attribute names and key types (HASH or RANGE).
- KeySchema []*KeySchemaElement `type:"list"`
- // Represents attributes that are copied (projected) from the table into an
- // index. These are in addition to the primary key attributes and index key
- // attributes, which are automatically projected.
- Projection *Projection `type:"structure"`
- // Represents the provisioned throughput settings for the table, consisting
- // of read and write capacity units, along with data about increases and decreases.
- ProvisionedThroughput *ProvisionedThroughputDescription `type:"structure"`
- metadataGlobalSecondaryIndexDescription `json:"-" xml:"-"`
- }
- type metadataGlobalSecondaryIndexDescription struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s GlobalSecondaryIndexDescription) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GlobalSecondaryIndexDescription) GoString() string {
- return s.String()
- }
- // Represents one of the following:
- //
- // A new global secondary index to be added to an existing table.
- //
- // New provisioned throughput parameters for an existing global secondary index.
- //
- // An existing global secondary index to be removed from an existing table.
- type GlobalSecondaryIndexUpdate struct {
- // The parameters required for creating a global secondary index on an existing
- // table:
- //
- // IndexName
- //
- // KeySchema
- //
- // AttributeDefinitions
- //
- // Projection
- //
- // ProvisionedThroughput
- Create *CreateGlobalSecondaryIndexAction `type:"structure"`
- // The name of an existing global secondary index to be removed.
- Delete *DeleteGlobalSecondaryIndexAction `type:"structure"`
- // The name of an existing global secondary index, along with new provisioned
- // throughput settings to be applied to that index.
- Update *UpdateGlobalSecondaryIndexAction `type:"structure"`
- metadataGlobalSecondaryIndexUpdate `json:"-" xml:"-"`
- }
- type metadataGlobalSecondaryIndexUpdate struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s GlobalSecondaryIndexUpdate) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s GlobalSecondaryIndexUpdate) GoString() string {
- return s.String()
- }
- // Information about item collections, if any, that were affected by the operation.
- // ItemCollectionMetrics is only returned if the request asked for it. If the
- // table does not have any local secondary indexes, this information is not
- // returned in the response.
- type ItemCollectionMetrics struct {
- // The hash key value of the item collection. This value is the same as the
- // hash key of the item.
- ItemCollectionKey map[string]*AttributeValue `type:"map"`
- // An estimate of item collection size, in gigabytes. This value is a two-element
- // array containing a lower bound and an upper bound for the estimate. The estimate
- // includes the size of all the items in the table, plus the size of all attributes
- // projected into all of the local secondary indexes on that table. Use this
- // estimate to measure whether a local secondary index is approaching its size
- // limit.
- //
- // The estimate is subject to change over time; therefore, do not rely on the
- // precision or accuracy of the estimate.
- SizeEstimateRangeGB []*float64 `type:"list"`
- metadataItemCollectionMetrics `json:"-" xml:"-"`
- }
- type metadataItemCollectionMetrics struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s ItemCollectionMetrics) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ItemCollectionMetrics) GoString() string {
- return s.String()
- }
- // Represents a single element of a key schema. A key schema specifies the attributes
- // that make up the primary key of a table, or the key attributes of an index.
- //
- // A KeySchemaElement represents exactly one attribute of the primary key.
- // For example, a hash type primary key would be represented by one KeySchemaElement.
- // A hash-and-range type primary key would require one KeySchemaElement for
- // the hash attribute, and another KeySchemaElement for the range attribute.
- type KeySchemaElement struct {
- // The name of a key attribute.
- AttributeName *string `type:"string" required:"true"`
- // The attribute data, consisting of the data type and the attribute value itself.
- KeyType *string `type:"string" required:"true" enum:"KeyType"`
- metadataKeySchemaElement `json:"-" xml:"-"`
- }
- type metadataKeySchemaElement struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s KeySchemaElement) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s KeySchemaElement) GoString() string {
- return s.String()
- }
- // Represents a set of primary keys and, for each key, the attributes to retrieve
- // from the table.
- //
- // For each primary key, you must provide all of the key attributes. For example,
- // with a hash type primary key, you only need to provide the hash attribute.
- // For a hash-and-range type primary key, you must provide both the hash attribute
- // and the range attribute.
- type KeysAndAttributes struct {
- // One or more attributes to retrieve from the table or index. If no attribute
- // names are specified then all attributes will be returned. If any of the specified
- // attributes are not found, they will not appear in the result.
- AttributesToGet []*string `type:"list"`
- // The consistency of a read operation. If set to true, then a strongly consistent
- // read is used; otherwise, an eventually consistent read is used.
- ConsistentRead *bool `type:"boolean"`
- // One or more substitution tokens for attribute names in an expression. The
- // following are some use cases for using ExpressionAttributeNames:
- //
- // To access an attribute whose name conflicts with a DynamoDB reserved word.
- //
- // To create a placeholder for repeating occurrences of an attribute name
- // in an expression.
- //
- // To prevent special characters in an attribute name from being misinterpreted
- // in an expression.
- //
- // Use the # character in an expression to dereference an attribute name.
- // For example, consider the following attribute name:
- //
- // Percentile
- //
- // The name of this attribute conflicts with a reserved word, so it cannot
- // be used directly in an expression. (For the complete list of reserved words,
- // see Reserved Words (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
- // in the Amazon DynamoDB Developer Guide). To work around this, you could specify
- // the following for ExpressionAttributeNames:
- //
- // {"#P":"Percentile"}
- //
- // You could then use this substitution in an expression, as in this example:
- //
- // #P = :val
- //
- // Tokens that begin with the : character are expression attribute values,
- // which are placeholders for the actual value at runtime.
- //
- // For more information on expression attribute names, see Accessing Item Attributes
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
- // in the Amazon DynamoDB Developer Guide.
- ExpressionAttributeNames map[string]*string `type:"map"`
- // The primary key attribute values that define the items and the attributes
- // associated with the items.
- Keys []map[string]*AttributeValue `type:"list" required:"true"`
- // A string that identifies one or more attributes to retrieve from the table.
- // These attributes can include scalars, sets, or elements of a JSON document.
- // The attributes in the ProjectionExpression must be separated by commas.
- //
- // If no attribute names are specified, then all attributes will be returned.
- // If any of the requested attributes are not found, they will not appear in
- // the result.
- //
- // For more information, see Accessing Item Attributes (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // ProjectionExpression replaces the legacy AttributesToGet parameter.
- ProjectionExpression *string `type:"string"`
- metadataKeysAndAttributes `json:"-" xml:"-"`
- }
- type metadataKeysAndAttributes struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s KeysAndAttributes) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s KeysAndAttributes) GoString() string {
- return s.String()
- }
- // Represents the input of a ListTables operation.
- type ListTablesInput struct {
- // The first table name that this operation will evaluate. Use the value that
- // was returned for LastEvaluatedTableName in a previous operation, so that
- // you can obtain the next page of results.
- ExclusiveStartTableName *string `type:"string"`
- // A maximum number of table names to return. If this parameter is not specified,
- // the limit is 100.
- Limit *int64 `type:"integer"`
- metadataListTablesInput `json:"-" xml:"-"`
- }
- type metadataListTablesInput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s ListTablesInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListTablesInput) GoString() string {
- return s.String()
- }
- // Represents the output of a ListTables operation.
- type ListTablesOutput struct {
- // The name of the last table in the current page of results. Use this value
- // as the ExclusiveStartTableName in a new request to obtain the next page of
- // results, until all the table names are returned.
- //
- // If you do not receive a LastEvaluatedTableName value in the response, this
- // means that there are no more table names to be retrieved.
- LastEvaluatedTableName *string `type:"string"`
- // The names of the tables associated with the current account at the current
- // endpoint. The maximum size of this array is 100.
- //
- // If LastEvaluatedTableName also appears in the output, you can use this value
- // as the ExclusiveStartTableName parameter in a subsequent ListTables request
- // and obtain the next page of results.
- TableNames []*string `type:"list"`
- metadataListTablesOutput `json:"-" xml:"-"`
- }
- type metadataListTablesOutput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s ListTablesOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListTablesOutput) GoString() string {
- return s.String()
- }
- // Represents the properties of a local secondary index.
- type LocalSecondaryIndex struct {
- // The name of the local secondary index. The name must be unique among all
- // other indexes on this table.
- IndexName *string `type:"string" required:"true"`
- // The complete key schema for the local secondary index, consisting of one
- // or more pairs of attribute names and key types (HASH or RANGE).
- KeySchema []*KeySchemaElement `type:"list" required:"true"`
- // Represents attributes that are copied (projected) from the table into an
- // index. These are in addition to the primary key attributes and index key
- // attributes, which are automatically projected.
- Projection *Projection `type:"structure" required:"true"`
- metadataLocalSecondaryIndex `json:"-" xml:"-"`
- }
- type metadataLocalSecondaryIndex struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s LocalSecondaryIndex) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s LocalSecondaryIndex) GoString() string {
- return s.String()
- }
- // Represents the properties of a local secondary index.
- type LocalSecondaryIndexDescription struct {
- // The Amazon Resource Name (ARN) that uniquely identifies the index.
- IndexArn *string `type:"string"`
- // Represents the name of the local secondary index.
- IndexName *string `type:"string"`
- // The total size of the specified index, in bytes. DynamoDB updates this value
- // approximately every six hours. Recent changes might not be reflected in this
- // value.
- IndexSizeBytes *int64 `type:"long"`
- // The number of items in the specified index. DynamoDB updates this value approximately
- // every six hours. Recent changes might not be reflected in this value.
- ItemCount *int64 `type:"long"`
- // The complete index key schema, which consists of one or more pairs of attribute
- // names and key types (HASH or RANGE).
- KeySchema []*KeySchemaElement `type:"list"`
- // Represents attributes that are copied (projected) from the table into an
- // index. These are in addition to the primary key attributes and index key
- // attributes, which are automatically projected.
- Projection *Projection `type:"structure"`
- metadataLocalSecondaryIndexDescription `json:"-" xml:"-"`
- }
- type metadataLocalSecondaryIndexDescription struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s LocalSecondaryIndexDescription) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s LocalSecondaryIndexDescription) GoString() string {
- return s.String()
- }
- // Represents attributes that are copied (projected) from the table into an
- // index. These are in addition to the primary key attributes and index key
- // attributes, which are automatically projected.
- type Projection struct {
- // Represents the non-key attribute names which will be projected into the index.
- //
- // For local secondary indexes, the total count of NonKeyAttributes summed
- // across all of the local secondary indexes, must not exceed 20. If you project
- // the same attribute into two different indexes, this counts as two distinct
- // attributes when determining the total.
- NonKeyAttributes []*string `type:"list"`
- // The set of attributes that are projected into the index:
- //
- // KEYS_ONLY - Only the index and primary keys are projected into the index.
- //
- // INCLUDE - Only the specified table attributes are projected into the index.
- // The list of projected attributes are in NonKeyAttributes.
- //
- // ALL - All of the table attributes are projected into the index.
- ProjectionType *string `type:"string" enum:"ProjectionType"`
- metadataProjection `json:"-" xml:"-"`
- }
- type metadataProjection struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s Projection) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s Projection) GoString() string {
- return s.String()
- }
- // Represents the provisioned throughput settings for a specified table or index.
- // The settings can be modified using the UpdateTable operation.
- //
- // For current minimum and maximum provisioned throughput values, see Limits
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
- // in the Amazon DynamoDB Developer Guide.
- type ProvisionedThroughput struct {
- // The maximum number of strongly consistent reads consumed per second before
- // DynamoDB returns a ThrottlingException. For more information, see Specifying
- // Read and Write Requirements (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput)
- // in the Amazon DynamoDB Developer Guide.
- ReadCapacityUnits *int64 `type:"long" required:"true"`
- // The maximum number of writes consumed per second before DynamoDB returns
- // a ThrottlingException. For more information, see Specifying Read and Write
- // Requirements (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput)
- // in the Amazon DynamoDB Developer Guide.
- WriteCapacityUnits *int64 `type:"long" required:"true"`
- metadataProvisionedThroughput `json:"-" xml:"-"`
- }
- type metadataProvisionedThroughput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s ProvisionedThroughput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ProvisionedThroughput) GoString() string {
- return s.String()
- }
- // Represents the provisioned throughput settings for the table, consisting
- // of read and write capacity units, along with data about increases and decreases.
- type ProvisionedThroughputDescription struct {
- // The date and time of the last provisioned throughput decrease for this table.
- LastDecreaseDateTime *time.Time `type:"timestamp" timestampFormat:"unix"`
- // The date and time of the last provisioned throughput increase for this table.
- LastIncreaseDateTime *time.Time `type:"timestamp" timestampFormat:"unix"`
- // The number of provisioned throughput decreases for this table during this
- // UTC calendar day. For current maximums on provisioned throughput decreases,
- // see Limits (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
- // in the Amazon DynamoDB Developer Guide.
- NumberOfDecreasesToday *int64 `type:"long"`
- // The maximum number of strongly consistent reads consumed per second before
- // DynamoDB returns a ThrottlingException. Eventually consistent reads require
- // less effort than strongly consistent reads, so a setting of 50 ReadCapacityUnits
- // per second provides 100 eventually consistent ReadCapacityUnits per second.
- ReadCapacityUnits *int64 `type:"long"`
- // The maximum number of writes consumed per second before DynamoDB returns
- // a ThrottlingException.
- WriteCapacityUnits *int64 `type:"long"`
- metadataProvisionedThroughputDescription `json:"-" xml:"-"`
- }
- type metadataProvisionedThroughputDescription struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s ProvisionedThroughputDescription) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ProvisionedThroughputDescription) GoString() string {
- return s.String()
- }
- // Represents the input of a PutItem operation.
- type PutItemInput struct {
- // A condition that must be satisfied in order for a conditional PutItem operation
- // to succeed.
- //
- // An expression can contain any of the following:
- //
- // Functions: attribute_exists | attribute_not_exists | attribute_type |
- // contains | begins_with | size
- //
- // These function names are case-sensitive.
- //
- // Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN
- //
- // Logical operators: AND | OR | NOT
- //
- // For more information on condition expressions, see Specifying Conditions
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // ConditionExpression replaces the legacy ConditionalOperator and Expected
- // parameters.
- ConditionExpression *string `type:"string"`
- // This is a legacy parameter, for backward compatibility. New applications
- // should use ConditionExpression instead. Do not combine legacy parameters
- // and expression parameters in a single API call; otherwise, DynamoDB will
- // return a ValidationException exception.
- //
- // A logical operator to apply to the conditions in the Expected map:
- //
- // AND - If all of the conditions evaluate to true, then the entire map evaluates
- // to true.
- //
- // OR - If at least one of the conditions evaluate to true, then the entire
- // map evaluates to true.
- //
- // If you omit ConditionalOperator, then AND is the default.
- //
- // The operation will succeed only if the entire map evaluates to true.
- //
- // This parameter does not support attributes of type List or Map.
- ConditionalOperator *string `type:"string" enum:"ConditionalOperator"`
- // This is a legacy parameter, for backward compatibility. New applications
- // should use ConditionExpression instead. Do not combine legacy parameters
- // and expression parameters in a single API call; otherwise, DynamoDB will
- // return a ValidationException exception.
- //
- // A map of attribute/condition pairs. Expected provides a conditional block
- // for the PutItem operation.
- //
- // This parameter does not support attributes of type List or Map.
- //
- // Each element of Expected consists of an attribute name, a comparison operator,
- // and one or more values. DynamoDB compares the attribute with the value(s)
- // you supplied, using the comparison operator. For each Expected element, the
- // result of the evaluation is either true or false.
- //
- // If you specify more than one element in the Expected map, then by default
- // all of the conditions must evaluate to true. In other words, the conditions
- // are ANDed together. (You can use the ConditionalOperator parameter to OR
- // the conditions instead. If you do this, then at least one of the conditions
- // must evaluate to true, rather than all of them.)
- //
- // If the Expected map evaluates to true, then the conditional operation succeeds;
- // otherwise, it fails.
- //
- // Expected contains the following:
- //
- // AttributeValueList - One or more values to evaluate against the supplied
- // attribute. The number of values in the list depends on the ComparisonOperator
- // being used.
- //
- // For type Number, value comparisons are numeric.
- //
- // String value comparisons for greater than, equals, or less than are based
- // on ASCII character code values. For example, a is greater than A, and a is
- // greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.
- //
- // For type Binary, DynamoDB treats each byte of the binary data as unsigned
- // when it compares binary values.
- //
- // ComparisonOperator - A comparator for evaluating attributes in the AttributeValueList.
- // When performing the comparison, DynamoDB uses strongly consistent reads.
- //
- // The following comparison operators are available:
- //
- // EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS
- // | BEGINS_WITH | IN | BETWEEN
- //
- // The following are descriptions of each comparison operator.
- //
- // EQ : Equal. EQ is supported for all datatypes, including lists and maps.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, Binary, String Set, Number Set, or Binary Set. If an item contains
- // an AttributeValue element of a different type than the one provided in the
- // request, the value does not match. For example, {"S":"6"} does not equal
- // {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}.
- //
- // NE : Not equal. NE is supported for all datatypes, including lists and
- // maps.
- //
- // AttributeValueList can contain only one AttributeValue of type String, Number,
- // Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue
- // of a different type than the one provided in the request, the value does
- // not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not equal {"NS":["6", "2", "1"]}.
- //
- // LE : Less than or equal.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // LT : Less than.
- //
- // AttributeValueList can contain only one AttributeValue of type String, Number,
- // or Binary (not a set type). If an item contains an AttributeValue element
- // of a different type than the one provided in the request, the value does
- // not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // GE : Greater than or equal.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // GT : Greater than.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // NOT_NULL : The attribute exists. NOT_NULL is supported for all datatypes,
- // including lists and maps.
- //
- // This operator tests for the existence of an attribute, not its data type.
- // If the data type of attribute "a" is null, and you evaluate it using NOT_NULL,
- // the result is a Boolean true. This result is because the attribute "a" exists;
- // its data type is not relevant to the NOT_NULL comparison operator.
- //
- // NULL : The attribute does not exist. NULL is supported for all datatypes,
- // including lists and maps.
- //
- // This operator tests for the nonexistence of an attribute, not its data type.
- // If the data type of attribute "a" is null, and you evaluate it using NULL,
- // the result is a Boolean false. This is because the attribute "a" exists;
- // its data type is not relevant to the NULL comparison operator.
- //
- // CONTAINS : Checks for a subsequence, or value in a set.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If the target attribute of the comparison
- // is of type String, then the operator checks for a substring match. If the
- // target attribute of the comparison is of type Binary, then the operator looks
- // for a subsequence of the target that matches the input. If the target attribute
- // of the comparison is a set ("SS", "NS", or "BS"), then the operator evaluates
- // to true if it finds an exact match with any member of the set.
- //
- // CONTAINS is supported for lists: When evaluating "a CONTAINS b", "a" can
- // be a list; however, "b" cannot be a set, a map, or a list.
- //
- // NOT_CONTAINS : Checks for absence of a subsequence, or absence of a value
- // in a set.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If the target attribute of the comparison
- // is a String, then the operator checks for the absence of a substring match.
- // If the target attribute of the comparison is Binary, then the operator checks
- // for the absence of a subsequence of the target that matches the input. If
- // the target attribute of the comparison is a set ("SS", "NS", or "BS"), then
- // the operator evaluates to true if it does not find an exact match with any
- // member of the set.
- //
- // NOT_CONTAINS is supported for lists: When evaluating "a NOT CONTAINS b",
- // "a" can be a list; however, "b" cannot be a set, a map, or a list.
- //
- // BEGINS_WITH : Checks for a prefix.
- //
- // AttributeValueList can contain only one AttributeValue of type String or
- // Binary (not a Number or a set type). The target attribute of the comparison
- // must be of type String or Binary (not a Number or a set type).
- //
- // IN : Checks for matching elements within two sets.
- //
- // AttributeValueList can contain one or more AttributeValue elements of type
- // String, Number, or Binary (not a set type). These attributes are compared
- // against an existing set type attribute of an item. If any elements of the
- // input set are present in the item attribute, the expression evaluates to
- // true.
- //
- // BETWEEN : Greater than or equal to the first value, and less than or equal
- // to the second value.
- //
- // AttributeValueList must contain two AttributeValue elements of the same
- // type, either String, Number, or Binary (not a set type). A target attribute
- // matches if the target value is greater than, or equal to, the first element
- // and less than, or equal to, the second element. If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not compare to {"N":"6"}. Also,
- // {"N":"6"} does not compare to {"NS":["6", "2", "1"]}
- //
- // For usage examples of AttributeValueList and ComparisonOperator, see
- // Legacy Conditional Parameters (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // For backward compatibility with previous DynamoDB releases, the following
- // parameters can be used instead of AttributeValueList and ComparisonOperator:
- //
- // Value - A value for DynamoDB to compare with an attribute.
- //
- // Exists - A Boolean value that causes DynamoDB to evaluate the value before
- // attempting the conditional operation:
- //
- // If Exists is true, DynamoDB will check to see if that attribute value
- // already exists in the table. If it is found, then the condition evaluates
- // to true; otherwise the condition evaluate to false.
- //
- // If Exists is false, DynamoDB assumes that the attribute value does not
- // exist in the table. If in fact the value does not exist, then the assumption
- // is valid and the condition evaluates to true. If the value is found, despite
- // the assumption that it does not exist, the condition evaluates to false.
- //
- // Note that the default value for Exists is true.
- //
- // The Value and Exists parameters are incompatible with AttributeValueList
- // and ComparisonOperator. Note that if you use both sets of parameters at once,
- // DynamoDB will return a ValidationException exception.
- Expected map[string]*ExpectedAttributeValue `type:"map"`
- // One or more substitution tokens for attribute names in an expression. The
- // following are some use cases for using ExpressionAttributeNames:
- //
- // To access an attribute whose name conflicts with a DynamoDB reserved word.
- //
- // To create a placeholder for repeating occurrences of an attribute name
- // in an expression.
- //
- // To prevent special characters in an attribute name from being misinterpreted
- // in an expression.
- //
- // Use the # character in an expression to dereference an attribute name.
- // For example, consider the following attribute name:
- //
- // Percentile
- //
- // The name of this attribute conflicts with a reserved word, so it cannot
- // be used directly in an expression. (For the complete list of reserved words,
- // see Reserved Words (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
- // in the Amazon DynamoDB Developer Guide). To work around this, you could specify
- // the following for ExpressionAttributeNames:
- //
- // {"#P":"Percentile"}
- //
- // You could then use this substitution in an expression, as in this example:
- //
- // #P = :val
- //
- // Tokens that begin with the : character are expression attribute values,
- // which are placeholders for the actual value at runtime.
- //
- // For more information on expression attribute names, see Accessing Item Attributes
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
- // in the Amazon DynamoDB Developer Guide.
- ExpressionAttributeNames map[string]*string `type:"map"`
- // One or more values that can be substituted in an expression.
- //
- // Use the : (colon) character in an expression to dereference an attribute
- // value. For example, suppose that you wanted to check whether the value of
- // the ProductStatus attribute was one of the following:
- //
- // Available | Backordered | Discontinued
- //
- // You would first need to specify ExpressionAttributeValues as follows:
- //
- // { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"}
- // }
- //
- // You could then use these values in an expression, such as this:
- //
- // ProductStatus IN (:avail, :back, :disc)
- //
- // For more information on expression attribute values, see Specifying Conditions
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
- // in the Amazon DynamoDB Developer Guide.
- ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
- // A map of attribute name/value pairs, one for each attribute. Only the primary
- // key attributes are required; you can optionally provide other attribute name-value
- // pairs for the item.
- //
- // You must provide all of the attributes for the primary key. For example,
- // with a hash type primary key, you only need to provide the hash attribute.
- // For a hash-and-range type primary key, you must provide both the hash attribute
- // and the range attribute.
- //
- // If you specify any attributes that are part of an index key, then the data
- // types for those attributes must match those of the schema in the table's
- // attribute definition.
- //
- // For more information about primary keys, see Primary Key (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey)
- // in the Amazon DynamoDB Developer Guide.
- //
- // Each element in the Item map is an AttributeValue object.
- Item map[string]*AttributeValue `type:"map" required:"true"`
- // Determines the level of detail about provisioned throughput consumption that
- // is returned in the response:
- //
- // INDEXES - The response includes the aggregate ConsumedCapacity for the
- // operation, together with ConsumedCapacity for each table and secondary index
- // that was accessed.
- //
- // Note that some operations, such as GetItem and BatchGetItem, do not access
- // any indexes at all. In these cases, specifying INDEXES will only return ConsumedCapacity
- // information for table(s).
- //
- // TOTAL - The response includes only the aggregate ConsumedCapacity for the
- // operation.
- //
- // NONE - No ConsumedCapacity details are included in the response.
- ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
- // Determines whether item collection metrics are returned. If set to SIZE,
- // the response includes statistics about item collections, if any, that were
- // modified during the operation are returned in the response. If set to NONE
- // (the default), no statistics are returned.
- ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"`
- // Use ReturnValues if you want to get the item attributes as they appeared
- // before they were updated with the PutItem request. For PutItem, the valid
- // values are:
- //
- // NONE - If ReturnValues is not specified, or if its value is NONE, then
- // nothing is returned. (This setting is the default for ReturnValues.)
- //
- // ALL_OLD - If PutItem overwrote an attribute name-value pair, then the
- // content of the old item is returned.
- //
- // Other "Valid Values" are not relevant to PutItem.
- ReturnValues *string `type:"string" enum:"ReturnValue"`
- // The name of the table to contain the item.
- TableName *string `type:"string" required:"true"`
- metadataPutItemInput `json:"-" xml:"-"`
- }
- type metadataPutItemInput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s PutItemInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutItemInput) GoString() string {
- return s.String()
- }
- // Represents the output of a PutItem operation.
- type PutItemOutput struct {
- // The attribute values as they appeared before the PutItem operation, but only
- // if ReturnValues is specified as ALL_OLD in the request. Each element consists
- // of an attribute name and an attribute value.
- Attributes map[string]*AttributeValue `type:"map"`
- // The capacity units consumed by an operation. The data returned includes the
- // total provisioned throughput consumed, along with statistics for the table
- // and any indexes involved in the operation. ConsumedCapacity is only returned
- // if the request asked for it. For more information, see Provisioned Throughput
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
- // in the Amazon DynamoDB Developer Guide.
- ConsumedCapacity *ConsumedCapacity `type:"structure"`
- // Information about item collections, if any, that were affected by the operation.
- // ItemCollectionMetrics is only returned if the request asked for it. If the
- // table does not have any local secondary indexes, this information is not
- // returned in the response.
- //
- // Each ItemCollectionMetrics element consists of:
- //
- // ItemCollectionKey - The hash key value of the item collection. This is
- // the same as the hash key of the item.
- //
- // SizeEstimateRange - An estimate of item collection size, in gigabytes. This
- // value is a two-element array containing a lower bound and an upper bound
- // for the estimate. The estimate includes the size of all the items in the
- // table, plus the size of all attributes projected into all of the local secondary
- // indexes on that table. Use this estimate to measure whether a local secondary
- // index is approaching its size limit.
- //
- // The estimate is subject to change over time; therefore, do not rely on the
- // precision or accuracy of the estimate.
- ItemCollectionMetrics *ItemCollectionMetrics `type:"structure"`
- metadataPutItemOutput `json:"-" xml:"-"`
- }
- type metadataPutItemOutput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s PutItemOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutItemOutput) GoString() string {
- return s.String()
- }
- // Represents a request to perform a PutItem operation on an item.
- type PutRequest struct {
- // A map of attribute name to attribute values, representing the primary key
- // of an item to be processed by PutItem. All of the table's primary key attributes
- // must be specified, and their data types must match those of the table's key
- // schema. If any attributes are present in the item which are part of an index
- // key schema for the table, their types must match the index key schema.
- Item map[string]*AttributeValue `type:"map" required:"true"`
- metadataPutRequest `json:"-" xml:"-"`
- }
- type metadataPutRequest struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s PutRequest) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutRequest) GoString() string {
- return s.String()
- }
- // Represents the input of a Query operation.
- type QueryInput struct {
- // This is a legacy parameter, for backward compatibility. New applications
- // should use ProjectionExpression instead. Do not combine legacy parameters
- // and expression parameters in a single API call; otherwise, DynamoDB will
- // return a ValidationException exception.
- //
- // This parameter allows you to retrieve attributes of type List or Map; however,
- // it cannot retrieve individual elements within a List or a Map.
- //
- // The names of one or more attributes to retrieve. If no attribute names are
- // provided, then all attributes will be returned. If any of the requested attributes
- // are not found, they will not appear in the result.
- //
- // Note that AttributesToGet has no effect on provisioned throughput consumption.
- // DynamoDB determines capacity units consumed based on item size, not on the
- // amount of data that is returned to an application.
- //
- // You cannot use both AttributesToGet and Select together in a Query request,
- // unless the value for Select is SPECIFIC_ATTRIBUTES. (This usage is equivalent
- // to specifying AttributesToGet without any value for Select.)
- //
- // If you query a local secondary index and request only attributes that are
- // projected into that index, the operation will read only the index and not
- // the table. If any of the requested attributes are not projected into the
- // local secondary index, DynamoDB will fetch each of these attributes from
- // the parent table. This extra fetching incurs additional throughput cost and
- // latency.
- //
- // If you query a global secondary index, you can only request attributes that
- // are projected into the index. Global secondary index queries cannot fetch
- // attributes from the parent table.
- AttributesToGet []*string `type:"list"`
- // This is a legacy parameter, for backward compatibility. New applications
- // should use FilterExpression instead. Do not combine legacy parameters and
- // expression parameters in a single API call; otherwise, DynamoDB will return
- // a ValidationException exception.
- //
- // A logical operator to apply to the conditions in a QueryFilter map:
- //
- // AND - If all of the conditions evaluate to true, then the entire map evaluates
- // to true.
- //
- // OR - If at least one of the conditions evaluate to true, then the entire
- // map evaluates to true.
- //
- // If you omit ConditionalOperator, then AND is the default.
- //
- // The operation will succeed only if the entire map evaluates to true.
- //
- // This parameter does not support attributes of type List or Map.
- ConditionalOperator *string `type:"string" enum:"ConditionalOperator"`
- // Determines the read consistency model: If set to true, then the operation
- // uses strongly consistent reads; otherwise, the operation uses eventually
- // consistent reads.
- //
- // Strongly consistent reads are not supported on global secondary indexes.
- // If you query a global secondary index with ConsistentRead set to true, you
- // will receive a ValidationException.
- ConsistentRead *bool `type:"boolean"`
- // The primary key of the first item that this operation will evaluate. Use
- // the value that was returned for LastEvaluatedKey in the previous operation.
- //
- // The data type for ExclusiveStartKey must be String, Number or Binary. No
- // set data types are allowed.
- ExclusiveStartKey map[string]*AttributeValue `type:"map"`
- // One or more substitution tokens for attribute names in an expression. The
- // following are some use cases for using ExpressionAttributeNames:
- //
- // To access an attribute whose name conflicts with a DynamoDB reserved word.
- //
- // To create a placeholder for repeating occurrences of an attribute name
- // in an expression.
- //
- // To prevent special characters in an attribute name from being misinterpreted
- // in an expression.
- //
- // Use the # character in an expression to dereference an attribute name.
- // For example, consider the following attribute name:
- //
- // Percentile
- //
- // The name of this attribute conflicts with a reserved word, so it cannot
- // be used directly in an expression. (For the complete list of reserved words,
- // see Reserved Words (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
- // in the Amazon DynamoDB Developer Guide). To work around this, you could specify
- // the following for ExpressionAttributeNames:
- //
- // {"#P":"Percentile"}
- //
- // You could then use this substitution in an expression, as in this example:
- //
- // #P = :val
- //
- // Tokens that begin with the : character are expression attribute values,
- // which are placeholders for the actual value at runtime.
- //
- // For more information on expression attribute names, see Accessing Item Attributes
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
- // in the Amazon DynamoDB Developer Guide.
- ExpressionAttributeNames map[string]*string `type:"map"`
- // One or more values that can be substituted in an expression.
- //
- // Use the : (colon) character in an expression to dereference an attribute
- // value. For example, suppose that you wanted to check whether the value of
- // the ProductStatus attribute was one of the following:
- //
- // Available | Backordered | Discontinued
- //
- // You would first need to specify ExpressionAttributeValues as follows:
- //
- // { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"}
- // }
- //
- // You could then use these values in an expression, such as this:
- //
- // ProductStatus IN (:avail, :back, :disc)
- //
- // For more information on expression attribute values, see Specifying Conditions
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
- // in the Amazon DynamoDB Developer Guide.
- ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
- // A string that contains conditions that DynamoDB applies after the Query operation,
- // but before the data is returned to you. Items that do not satisfy the FilterExpression
- // criteria are not returned.
- //
- // A FilterExpression is applied after the items have already been read; the
- // process of filtering does not consume any additional read capacity units.
- //
- // For more information, see Filter Expressions (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#FilteringResults)
- // in the Amazon DynamoDB Developer Guide.
- //
- // FilterExpression replaces the legacy QueryFilter and ConditionalOperator
- // parameters.
- FilterExpression *string `type:"string"`
- // The name of an index to query. This index can be any local secondary index
- // or global secondary index on the table. Note that if you use the IndexName
- // parameter, you must also provide TableName.
- IndexName *string `type:"string"`
- // The condition that specifies the key value(s) for items to be retrieved by
- // the Query action.
- //
- // The condition must perform an equality test on a single hash key value.
- // The condition can also perform one of several comparison tests on a single
- // range key value. Query can use KeyConditionExpression to retrieve one item
- // with a given hash and range key value, or several items that have the same
- // hash key value but different range key values.
- //
- // The hash key equality test is required, and must be specified in the following
- // format:
- //
- // hashAttributeName = :hashval
- //
- // If you also want to provide a range key condition, it must be combined using
- // AND with the hash key condition. Following is an example, using the = comparison
- // operator for the range key:
- //
- // hashAttributeName = :hashval AND rangeAttributeName = :rangeval
- //
- // Valid comparisons for the range key condition are as follows:
- //
- // rangeAttributeName = :rangeval - true if the range key is equal to :rangeval.
- //
- // rangeAttributeName < :rangeval - true if the range key is less than :rangeval.
- //
- // rangeAttributeName <= :rangeval - true if the range key is less than or
- // equal to :rangeval.
- //
- // rangeAttributeName > :rangeval - true if the range key is greater than
- // :rangeval.
- //
- // rangeAttributeName >= :rangeval - true if the range key is greater than
- // or equal to :rangeval.
- //
- // rangeAttributeName BETWEEN :rangeval1 AND :rangeval2 - true if the range
- // key is greater than or equal to :rangeval1, and less than or equal to :rangeval2.
- //
- // begins_with (rangeAttributeName, :rangeval) - true if the range key begins
- // with a particular operand. (You cannot use this function with a range key
- // that is of type Number.) Note that the function name begins_with is case-sensitive.
- //
- // Use the ExpressionAttributeValues parameter to replace tokens such as
- // :hashval and :rangeval with actual values at runtime.
- //
- // You can optionally use the ExpressionAttributeNames parameter to replace
- // the names of the hash and range attributes with placeholder tokens. This
- // option might be necessary if an attribute name conflicts with a DynamoDB
- // reserved word. For example, the following KeyConditionExpression parameter
- // causes an error because Size is a reserved word:
- //
- // Size = :myval To work around this, define a placeholder (such a #S)
- // to represent the attribute name Size. KeyConditionExpression then is as follows:
- //
- // #S = :myval For a list of reserved words, see Reserved Words (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // For more information on ExpressionAttributeNames and ExpressionAttributeValues,
- // see Using Placeholders for Attribute Names and Values (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // KeyConditionExpression replaces the legacy KeyConditions parameter.
- KeyConditionExpression *string `type:"string"`
- // This is a legacy parameter, for backward compatibility. New applications
- // should use KeyConditionExpression instead. Do not combine legacy parameters
- // and expression parameters in a single API call; otherwise, DynamoDB will
- // return a ValidationException exception.
- //
- // The selection criteria for the query. For a query on a table, you can have
- // conditions only on the table primary key attributes. You must provide the
- // hash key attribute name and value as an EQ condition. You can optionally
- // provide a second condition, referring to the range key attribute.
- //
- // If you don't provide a range key condition, all of the items that match
- // the hash key will be retrieved. If a FilterExpression or QueryFilter is present,
- // it will be applied after the items are retrieved.
- //
- // For a query on an index, you can have conditions only on the index key attributes.
- // You must provide the index hash attribute name and value as an EQ condition.
- // You can optionally provide a second condition, referring to the index key
- // range attribute.
- //
- // Each KeyConditions element consists of an attribute name to compare, along
- // with the following:
- //
- // AttributeValueList - One or more values to evaluate against the supplied
- // attribute. The number of values in the list depends on the ComparisonOperator
- // being used.
- //
- // For type Number, value comparisons are numeric.
- //
- // String value comparisons for greater than, equals, or less than are based
- // on ASCII character code values. For example, a is greater than A, and a is
- // greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
- // (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters).
- //
- // For Binary, DynamoDB treats each byte of the binary data as unsigned when
- // it compares binary values.
- //
- // ComparisonOperator - A comparator for evaluating attributes, for example,
- // equals, greater than, less than, and so on.
- //
- // For KeyConditions, only the following comparison operators are supported:
- //
- // EQ | LE | LT | GE | GT | BEGINS_WITH | BETWEEN
- //
- // The following are descriptions of these comparison operators.
- //
- // EQ : Equal.
- //
- // AttributeValueList can contain only one AttributeValue of type String, Number,
- // or Binary (not a set type). If an item contains an AttributeValue element
- // of a different type than the one specified in the request, the value does
- // not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not equal {"NS":["6", "2", "1"]}.
- //
- // LE : Less than or equal.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // LT : Less than.
- //
- // AttributeValueList can contain only one AttributeValue of type String, Number,
- // or Binary (not a set type). If an item contains an AttributeValue element
- // of a different type than the one provided in the request, the value does
- // not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // GE : Greater than or equal.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // GT : Greater than.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // BEGINS_WITH : Checks for a prefix.
- //
- // AttributeValueList can contain only one AttributeValue of type String or
- // Binary (not a Number or a set type). The target attribute of the comparison
- // must be of type String or Binary (not a Number or a set type).
- //
- // BETWEEN : Greater than or equal to the first value, and less than or
- // equal to the second value.
- //
- // AttributeValueList must contain two AttributeValue elements of the same
- // type, either String, Number, or Binary (not a set type). A target attribute
- // matches if the target value is greater than, or equal to, the first element
- // and less than, or equal to, the second element. If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not compare to {"N":"6"}. Also,
- // {"N":"6"} does not compare to {"NS":["6", "2", "1"]}
- //
- // For usage examples of AttributeValueList and ComparisonOperator, see
- // Legacy Conditional Parameters (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.html)
- // in the Amazon DynamoDB Developer Guide.
- KeyConditions map[string]*Condition `type:"map"`
- // The maximum number of items to evaluate (not necessarily the number of matching
- // items). If DynamoDB processes the number of items up to the limit while processing
- // the results, it stops the operation and returns the matching values up to
- // that point, and a key in LastEvaluatedKey to apply in a subsequent operation,
- // so that you can pick up where you left off. Also, if the processed data set
- // size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation
- // and returns the matching values up to the limit, and a key in LastEvaluatedKey
- // to apply in a subsequent operation to continue the operation. For more information,
- // see Query and Scan in the Amazon DynamoDB Developer Guide.
- Limit *int64 `type:"integer"`
- // A string that identifies one or more attributes to retrieve from the table.
- // These attributes can include scalars, sets, or elements of a JSON document.
- // The attributes in the expression must be separated by commas.
- //
- // If no attribute names are specified, then all attributes will be returned.
- // If any of the requested attributes are not found, they will not appear in
- // the result.
- //
- // For more information, see Accessing Item Attributes (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // ProjectionExpression replaces the legacy AttributesToGet parameter.
- ProjectionExpression *string `type:"string"`
- // This is a legacy parameter, for backward compatibility. New applications
- // should use FilterExpression instead. Do not combine legacy parameters and
- // expression parameters in a single API call; otherwise, DynamoDB will return
- // a ValidationException exception.
- //
- // A condition that evaluates the query results after the items are read and
- // returns only the desired values.
- //
- // This parameter does not support attributes of type List or Map.
- //
- // A QueryFilter is applied after the items have already been read; the process
- // of filtering does not consume any additional read capacity units.
- //
- // If you provide more than one condition in the QueryFilter map, then by default
- // all of the conditions must evaluate to true. In other words, the conditions
- // are ANDed together. (You can use the ConditionalOperator parameter to OR
- // the conditions instead. If you do this, then at least one of the conditions
- // must evaluate to true, rather than all of them.)
- //
- // Note that QueryFilter does not allow key attributes. You cannot define a
- // filter condition on a hash key or range key.
- //
- // Each QueryFilter element consists of an attribute name to compare, along
- // with the following:
- //
- // AttributeValueList - One or more values to evaluate against the supplied
- // attribute. The number of values in the list depends on the operator specified
- // in ComparisonOperator.
- //
- // For type Number, value comparisons are numeric.
- //
- // String value comparisons for greater than, equals, or less than are based
- // on ASCII character code values. For example, a is greater than A, and a is
- // greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
- // (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters).
- //
- // For type Binary, DynamoDB treats each byte of the binary data as unsigned
- // when it compares binary values.
- //
- // For information on specifying data types in JSON, see JSON Data Format (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataFormat.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // ComparisonOperator - A comparator for evaluating attributes. For example,
- // equals, greater than, less than, etc.
- //
- // The following comparison operators are available:
- //
- // EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS
- // | BEGINS_WITH | IN | BETWEEN
- //
- // For complete descriptions of all comparison operators, see the Condition
- // (http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html)
- // data type.
- QueryFilter map[string]*Condition `type:"map"`
- // Determines the level of detail about provisioned throughput consumption that
- // is returned in the response:
- //
- // INDEXES - The response includes the aggregate ConsumedCapacity for the
- // operation, together with ConsumedCapacity for each table and secondary index
- // that was accessed.
- //
- // Note that some operations, such as GetItem and BatchGetItem, do not access
- // any indexes at all. In these cases, specifying INDEXES will only return ConsumedCapacity
- // information for table(s).
- //
- // TOTAL - The response includes only the aggregate ConsumedCapacity for the
- // operation.
- //
- // NONE - No ConsumedCapacity details are included in the response.
- ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
- // Specifies the order in which to return the query results - either ascending
- // (true) or descending (false).
- //
- // Items with the same hash key are stored in sorted order by range key .If
- // the range key data type is Number, the results are stored in numeric order.
- // For type String, the results are returned in order of ASCII character code
- // values. For type Binary, DynamoDB treats each byte of the binary data as
- // unsigned.
- //
- // If ScanIndexForward is true, DynamoDB returns the results in order, by range
- // key. This is the default behavior.
- //
- // If ScanIndexForward is false, DynamoDB sorts the results in descending order
- // by range key, and then returns the results to the client.
- ScanIndexForward *bool `type:"boolean"`
- // The attributes to be returned in the result. You can retrieve all item attributes,
- // specific item attributes, the count of matching items, or in the case of
- // an index, some or all of the attributes projected into the index.
- //
- // ALL_ATTRIBUTES - Returns all of the item attributes from the specified
- // table or index. If you query a local secondary index, then for each matching
- // item in the index DynamoDB will fetch the entire item from the parent table.
- // If the index is configured to project all item attributes, then all of the
- // data can be obtained from the local secondary index, and no fetching is required.
- //
- // ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves
- // all attributes that have been projected into the index. If the index is configured
- // to project all attributes, this return value is equivalent to specifying
- // ALL_ATTRIBUTES.
- //
- // COUNT - Returns the number of matching items, rather than the matching
- // items themselves.
- //
- // SPECIFIC_ATTRIBUTES - Returns only the attributes listed in AttributesToGet.
- // This return value is equivalent to specifying AttributesToGet without specifying
- // any value for Select.
- //
- // If you query a local secondary index and request only attributes that are
- // projected into that index, the operation will read only the index and not
- // the table. If any of the requested attributes are not projected into the
- // local secondary index, DynamoDB will fetch each of these attributes from
- // the parent table. This extra fetching incurs additional throughput cost and
- // latency.
- //
- // If you query a global secondary index, you can only request attributes that
- // are projected into the index. Global secondary index queries cannot fetch
- // attributes from the parent table.
- //
- // If neither Select nor AttributesToGet are specified, DynamoDB defaults
- // to ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when
- // accessing an index. You cannot use both Select and AttributesToGet together
- // in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES.
- // (This usage is equivalent to specifying AttributesToGet without any value
- // for Select.)
- //
- // If you use the ProjectionExpression parameter, then the value for Select
- // can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an
- // error.
- Select *string `type:"string" enum:"Select"`
- // The name of the table containing the requested items.
- TableName *string `type:"string" required:"true"`
- metadataQueryInput `json:"-" xml:"-"`
- }
- type metadataQueryInput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s QueryInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s QueryInput) GoString() string {
- return s.String()
- }
- // Represents the output of a Query operation.
- type QueryOutput struct {
- // The capacity units consumed by an operation. The data returned includes the
- // total provisioned throughput consumed, along with statistics for the table
- // and any indexes involved in the operation. ConsumedCapacity is only returned
- // if the request asked for it. For more information, see Provisioned Throughput
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
- // in the Amazon DynamoDB Developer Guide.
- ConsumedCapacity *ConsumedCapacity `type:"structure"`
- // The number of items in the response.
- //
- // If you used a QueryFilter in the request, then Count is the number of items
- // returned after the filter was applied, and ScannedCount is the number of
- // matching items before> the filter was applied.
- //
- // If you did not use a filter in the request, then Count and ScannedCount
- // are the same.
- Count *int64 `type:"integer"`
- // An array of item attributes that match the query criteria. Each element in
- // this array consists of an attribute name and the value for that attribute.
- Items []map[string]*AttributeValue `type:"list"`
- // The primary key of the item where the operation stopped, inclusive of the
- // previous result set. Use this value to start a new operation, excluding this
- // value in the new request.
- //
- // If LastEvaluatedKey is empty, then the "last page" of results has been processed
- // and there is no more data to be retrieved.
- //
- // If LastEvaluatedKey is not empty, it does not necessarily mean that there
- // is more data in the result set. The only way to know when you have reached
- // the end of the result set is when LastEvaluatedKey is empty.
- LastEvaluatedKey map[string]*AttributeValue `type:"map"`
- // The number of items evaluated, before any QueryFilter is applied. A high
- // ScannedCount value with few, or no, Count results indicates an inefficient
- // Query operation. For more information, see Count and ScannedCount (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#Count)
- // in the Amazon DynamoDB Developer Guide.
- //
- // If you did not use a filter in the request, then ScannedCount is the same
- // as Count.
- ScannedCount *int64 `type:"integer"`
- metadataQueryOutput `json:"-" xml:"-"`
- }
- type metadataQueryOutput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s QueryOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s QueryOutput) GoString() string {
- return s.String()
- }
- // Represents the input of a Scan operation.
- type ScanInput struct {
- // This is a legacy parameter, for backward compatibility. New applications
- // should use ProjectionExpression instead. Do not combine legacy parameters
- // and expression parameters in a single API call; otherwise, DynamoDB will
- // return a ValidationException exception.
- //
- // This parameter allows you to retrieve attributes of type List or Map; however,
- // it cannot retrieve individual elements within a List or a Map.
- //
- // The names of one or more attributes to retrieve. If no attribute names are
- // provided, then all attributes will be returned. If any of the requested attributes
- // are not found, they will not appear in the result.
- //
- // Note that AttributesToGet has no effect on provisioned throughput consumption.
- // DynamoDB determines capacity units consumed based on item size, not on the
- // amount of data that is returned to an application.
- AttributesToGet []*string `type:"list"`
- // This is a legacy parameter, for backward compatibility. New applications
- // should use FilterExpression instead. Do not combine legacy parameters and
- // expression parameters in a single API call; otherwise, DynamoDB will return
- // a ValidationException exception.
- //
- // A logical operator to apply to the conditions in a ScanFilter map:
- //
- // AND - If all of the conditions evaluate to true, then the entire map evaluates
- // to true.
- //
- // OR - If at least one of the conditions evaluate to true, then the entire
- // map evaluates to true.
- //
- // If you omit ConditionalOperator, then AND is the default.
- //
- // The operation will succeed only if the entire map evaluates to true.
- //
- // This parameter does not support attributes of type List or Map.
- ConditionalOperator *string `type:"string" enum:"ConditionalOperator"`
- // A Boolean value that determines the read consistency model during the scan:
- //
- // If ConsistentRead is false, then Scan will use eventually consistent reads.
- // The data returned from Scan might not contain the results of other recently
- // completed write operations (PutItem, UpdateItem or DeleteItem). The Scan
- // response might include some stale data.
- //
- // If ConsistentRead is true, then Scan will use strongly consistent reads.
- // All of the write operations that completed before the Scan began are guaranteed
- // to be contained in the Scan response.
- //
- // The default setting for ConsistentRead is false, meaning that eventually
- // consistent reads will be used.
- //
- // Strongly consistent reads are not supported on global secondary indexes.
- // If you scan a global secondary index with ConsistentRead set to true, you
- // will receive a ValidationException.
- ConsistentRead *bool `type:"boolean"`
- // The primary key of the first item that this operation will evaluate. Use
- // the value that was returned for LastEvaluatedKey in the previous operation.
- //
- // The data type for ExclusiveStartKey must be String, Number or Binary. No
- // set data types are allowed.
- //
- // In a parallel scan, a Scan request that includes ExclusiveStartKey must
- // specify the same segment whose previous Scan returned the corresponding value
- // of LastEvaluatedKey.
- ExclusiveStartKey map[string]*AttributeValue `type:"map"`
- // One or more substitution tokens for attribute names in an expression. The
- // following are some use cases for using ExpressionAttributeNames:
- //
- // To access an attribute whose name conflicts with a DynamoDB reserved word.
- //
- // To create a placeholder for repeating occurrences of an attribute name
- // in an expression.
- //
- // To prevent special characters in an attribute name from being misinterpreted
- // in an expression.
- //
- // Use the # character in an expression to dereference an attribute name.
- // For example, consider the following attribute name:
- //
- // Percentile
- //
- // The name of this attribute conflicts with a reserved word, so it cannot
- // be used directly in an expression. (For the complete list of reserved words,
- // see Reserved Words (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
- // in the Amazon DynamoDB Developer Guide). To work around this, you could specify
- // the following for ExpressionAttributeNames:
- //
- // {"#P":"Percentile"}
- //
- // You could then use this substitution in an expression, as in this example:
- //
- // #P = :val
- //
- // Tokens that begin with the : character are expression attribute values,
- // which are placeholders for the actual value at runtime.
- //
- // For more information on expression attribute names, see Accessing Item Attributes
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
- // in the Amazon DynamoDB Developer Guide.
- ExpressionAttributeNames map[string]*string `type:"map"`
- // One or more values that can be substituted in an expression.
- //
- // Use the : (colon) character in an expression to dereference an attribute
- // value. For example, suppose that you wanted to check whether the value of
- // the ProductStatus attribute was one of the following:
- //
- // Available | Backordered | Discontinued
- //
- // You would first need to specify ExpressionAttributeValues as follows:
- //
- // { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"}
- // }
- //
- // You could then use these values in an expression, such as this:
- //
- // ProductStatus IN (:avail, :back, :disc)
- //
- // For more information on expression attribute values, see Specifying Conditions
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
- // in the Amazon DynamoDB Developer Guide.
- ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
- // A string that contains conditions that DynamoDB applies after the Scan operation,
- // but before the data is returned to you. Items that do not satisfy the FilterExpression
- // criteria are not returned.
- //
- // A FilterExpression is applied after the items have already been read; the
- // process of filtering does not consume any additional read capacity units.
- //
- // For more information, see Filter Expressions (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#FilteringResults)
- // in the Amazon DynamoDB Developer Guide.
- //
- // FilterExpression replaces the legacy ScanFilter and ConditionalOperator
- // parameters.
- FilterExpression *string `type:"string"`
- // The name of a secondary index to scan. This index can be any local secondary
- // index or global secondary index. Note that if you use the IndexName parameter,
- // you must also provide TableName.
- IndexName *string `type:"string"`
- // The maximum number of items to evaluate (not necessarily the number of matching
- // items). If DynamoDB processes the number of items up to the limit while processing
- // the results, it stops the operation and returns the matching values up to
- // that point, and a key in LastEvaluatedKey to apply in a subsequent operation,
- // so that you can pick up where you left off. Also, if the processed data set
- // size exceeds 1 MB before DynamoDB reaches this limit, it stops the operation
- // and returns the matching values up to the limit, and a key in LastEvaluatedKey
- // to apply in a subsequent operation to continue the operation. For more information,
- // see Query and Scan in the Amazon DynamoDB Developer Guide.
- Limit *int64 `type:"integer"`
- // A string that identifies one or more attributes to retrieve from the specified
- // table or index. These attributes can include scalars, sets, or elements of
- // a JSON document. The attributes in the expression must be separated by commas.
- //
- // If no attribute names are specified, then all attributes will be returned.
- // If any of the requested attributes are not found, they will not appear in
- // the result.
- //
- // For more information, see Accessing Item Attributes (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // ProjectionExpression replaces the legacy AttributesToGet parameter.
- ProjectionExpression *string `type:"string"`
- // Determines the level of detail about provisioned throughput consumption that
- // is returned in the response:
- //
- // INDEXES - The response includes the aggregate ConsumedCapacity for the
- // operation, together with ConsumedCapacity for each table and secondary index
- // that was accessed.
- //
- // Note that some operations, such as GetItem and BatchGetItem, do not access
- // any indexes at all. In these cases, specifying INDEXES will only return ConsumedCapacity
- // information for table(s).
- //
- // TOTAL - The response includes only the aggregate ConsumedCapacity for the
- // operation.
- //
- // NONE - No ConsumedCapacity details are included in the response.
- ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
- // This is a legacy parameter, for backward compatibility. New applications
- // should use FilterExpression instead. Do not combine legacy parameters and
- // expression parameters in a single API call; otherwise, DynamoDB will return
- // a ValidationException exception.
- //
- // A condition that evaluates the scan results and returns only the desired
- // values.
- //
- // This parameter does not support attributes of type List or Map.
- //
- // If you specify more than one condition in the ScanFilter map, then by default
- // all of the conditions must evaluate to true. In other words, the conditions
- // are ANDed together. (You can use the ConditionalOperator parameter to OR
- // the conditions instead. If you do this, then at least one of the conditions
- // must evaluate to true, rather than all of them.)
- //
- // Each ScanFilter element consists of an attribute name to compare, along
- // with the following:
- //
- // AttributeValueList - One or more values to evaluate against the supplied
- // attribute. The number of values in the list depends on the operator specified
- // in ComparisonOperator .
- //
- // For type Number, value comparisons are numeric.
- //
- // String value comparisons for greater than, equals, or less than are based
- // on ASCII character code values. For example, a is greater than A, and a is
- // greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
- // (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters).
- //
- // For Binary, DynamoDB treats each byte of the binary data as unsigned when
- // it compares binary values.
- //
- // For information on specifying data types in JSON, see JSON Data Format (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataFormat.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // ComparisonOperator - A comparator for evaluating attributes. For example,
- // equals, greater than, less than, etc.
- //
- // The following comparison operators are available:
- //
- // EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS
- // | BEGINS_WITH | IN | BETWEEN
- //
- // For complete descriptions of all comparison operators, see Condition (http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html).
- ScanFilter map[string]*Condition `type:"map"`
- // For a parallel Scan request, Segment identifies an individual segment to
- // be scanned by an application worker.
- //
- // Segment IDs are zero-based, so the first segment is always 0. For example,
- // if you want to use four application threads to scan a table or an index,
- // then the first thread specifies a Segment value of 0, the second thread specifies
- // 1, and so on.
- //
- // The value of LastEvaluatedKey returned from a parallel Scan request must
- // be used as ExclusiveStartKey with the same segment ID in a subsequent Scan
- // operation.
- //
- // The value for Segment must be greater than or equal to 0, and less than
- // the value provided for TotalSegments.
- //
- // If you provide Segment, you must also provide TotalSegments.
- Segment *int64 `type:"integer"`
- // The attributes to be returned in the result. You can retrieve all item attributes,
- // specific item attributes, or the count of matching items.
- //
- // ALL_ATTRIBUTES - Returns all of the item attributes.
- //
- // COUNT - Returns the number of matching items, rather than the matching
- // items themselves.
- //
- // SPECIFIC_ATTRIBUTES - Returns only the attributes listed in AttributesToGet.
- // This return value is equivalent to specifying AttributesToGet without specifying
- // any value for Select.
- //
- // If neither Select nor AttributesToGet are specified, DynamoDB defaults
- // to ALL_ATTRIBUTES. You cannot use both AttributesToGet and Select together
- // in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES.
- // (This usage is equivalent to specifying AttributesToGet without any value
- // for Select.)
- Select *string `type:"string" enum:"Select"`
- // The name of the table containing the requested items; or, if you provide
- // IndexName, the name of the table to which that index belongs.
- TableName *string `type:"string" required:"true"`
- // For a parallel Scan request, TotalSegments represents the total number of
- // segments into which the Scan operation will be divided. The value of TotalSegments
- // corresponds to the number of application workers that will perform the parallel
- // scan. For example, if you want to use four application threads to scan a
- // table or an index, specify a TotalSegments value of 4.
- //
- // The value for TotalSegments must be greater than or equal to 1, and less
- // than or equal to 1000000. If you specify a TotalSegments value of 1, the
- // Scan operation will be sequential rather than parallel.
- //
- // If you specify TotalSegments, you must also specify Segment.
- TotalSegments *int64 `type:"integer"`
- metadataScanInput `json:"-" xml:"-"`
- }
- type metadataScanInput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s ScanInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ScanInput) GoString() string {
- return s.String()
- }
- // Represents the output of a Scan operation.
- type ScanOutput struct {
- // The capacity units consumed by an operation. The data returned includes the
- // total provisioned throughput consumed, along with statistics for the table
- // and any indexes involved in the operation. ConsumedCapacity is only returned
- // if the request asked for it. For more information, see Provisioned Throughput
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
- // in the Amazon DynamoDB Developer Guide.
- ConsumedCapacity *ConsumedCapacity `type:"structure"`
- // The number of items in the response.
- //
- // If you set ScanFilter in the request, then Count is the number of items
- // returned after the filter was applied, and ScannedCount is the number of
- // matching items before the filter was applied.
- //
- // If you did not use a filter in the request, then Count is the same as ScannedCount.
- Count *int64 `type:"integer"`
- // An array of item attributes that match the scan criteria. Each element in
- // this array consists of an attribute name and the value for that attribute.
- Items []map[string]*AttributeValue `type:"list"`
- // The primary key of the item where the operation stopped, inclusive of the
- // previous result set. Use this value to start a new operation, excluding this
- // value in the new request.
- //
- // If LastEvaluatedKey is empty, then the "last page" of results has been processed
- // and there is no more data to be retrieved.
- //
- // If LastEvaluatedKey is not empty, it does not necessarily mean that there
- // is more data in the result set. The only way to know when you have reached
- // the end of the result set is when LastEvaluatedKey is empty.
- LastEvaluatedKey map[string]*AttributeValue `type:"map"`
- // The number of items evaluated, before any ScanFilter is applied. A high ScannedCount
- // value with few, or no, Count results indicates an inefficient Scan operation.
- // For more information, see Count and ScannedCount (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#Count)
- // in the Amazon DynamoDB Developer Guide.
- //
- // If you did not use a filter in the request, then ScannedCount is the same
- // as Count.
- ScannedCount *int64 `type:"integer"`
- metadataScanOutput `json:"-" xml:"-"`
- }
- type metadataScanOutput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s ScanOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ScanOutput) GoString() string {
- return s.String()
- }
- // Represents the DynamoDB Streams configuration for a table in DynamoDB.
- type StreamSpecification struct {
- // Indicates whether DynamoDB Streams is enabled (true) or disabled (false)
- // on the table.
- StreamEnabled *bool `type:"boolean"`
- // The DynamoDB Streams settings for the table. These settings consist of:
- //
- // StreamEnabled - Indicates whether DynamoDB Streams is enabled (true) or
- // disabled (false) on the table.
- //
- // StreamViewType - When an item in the table is modified, StreamViewType
- // determines what information is written to the stream for this table. Valid
- // values for StreamViewType are:
- //
- // KEYS_ONLY - Only the key attributes of the modified item are written to
- // the stream.
- //
- // NEW_IMAGE - The entire item, as it appears after it was modified, is written
- // to the stream.
- //
- // OLD_IMAGE - The entire item, as it appeared before it was modified, is written
- // to the stream.
- //
- // NEW_AND_OLD_IMAGES - Both the new and the old item images of the item are
- // written to the stream.
- StreamViewType *string `type:"string" enum:"StreamViewType"`
- metadataStreamSpecification `json:"-" xml:"-"`
- }
- type metadataStreamSpecification struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s StreamSpecification) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s StreamSpecification) GoString() string {
- return s.String()
- }
- // Represents the properties of a table.
- type TableDescription struct {
- // An array of AttributeDefinition objects. Each of these objects describes
- // one attribute in the table and index key schema.
- //
- // Each AttributeDefinition object in this array is composed of:
- //
- // AttributeName - The name of the attribute.
- //
- // AttributeType - The data type for the attribute.
- AttributeDefinitions []*AttributeDefinition `type:"list"`
- // The date and time when the table was created, in UNIX epoch time (http://www.epochconverter.com/)
- // format.
- CreationDateTime *time.Time `type:"timestamp" timestampFormat:"unix"`
- // The global secondary indexes, if any, on the table. Each index is scoped
- // to a given hash key value. Each element is composed of:
- //
- // Backfilling - If true, then the index is currently in the backfilling
- // phase. Backfilling occurs only when a new global secondary index is added
- // to the table; it is the process by which DynamoDB populates the new index
- // with data from the table. (This attribute does not appear for indexes that
- // were created during a CreateTable operation.)
- //
- // IndexName - The name of the global secondary index.
- //
- // IndexSizeBytes - The total size of the global secondary index, in bytes.
- // DynamoDB updates this value approximately every six hours. Recent changes
- // might not be reflected in this value.
- //
- // IndexStatus - The current status of the global secondary index:
- //
- // CREATING - The index is being created.
- //
- // UPDATING - The index is being updated.
- //
- // DELETING - The index is being deleted.
- //
- // ACTIVE - The index is ready for use.
- //
- // ItemCount - The number of items in the global secondary index. DynamoDB
- // updates this value approximately every six hours. Recent changes might not
- // be reflected in this value.
- //
- // KeySchema - Specifies the complete index key schema. The attribute names
- // in the key schema must be between 1 and 255 characters (inclusive). The key
- // schema must begin with the same hash key attribute as the table.
- //
- // Projection - Specifies attributes that are copied (projected) from the
- // table into the index. These are in addition to the primary key attributes
- // and index key attributes, which are automatically projected. Each attribute
- // specification is composed of:
- //
- // ProjectionType - One of the following:
- //
- // KEYS_ONLY - Only the index and primary keys are projected into the index.
- //
- // INCLUDE - Only the specified table attributes are projected into the index.
- // The list of projected attributes are in NonKeyAttributes.
- //
- // ALL - All of the table attributes are projected into the index.
- //
- // NonKeyAttributes - A list of one or more non-key attribute names that
- // are projected into the secondary index. The total count of attributes provided
- // in NonKeyAttributes, summed across all of the secondary indexes, must not
- // exceed 20. If you project the same attribute into two different indexes,
- // this counts as two distinct attributes when determining the total.
- //
- // ProvisionedThroughput - The provisioned throughput settings for the
- // global secondary index, consisting of read and write capacity units, along
- // with data about increases and decreases.
- //
- // If the table is in the DELETING state, no information about indexes will
- // be returned.
- GlobalSecondaryIndexes []*GlobalSecondaryIndexDescription `type:"list"`
- // The number of items in the specified table. DynamoDB updates this value approximately
- // every six hours. Recent changes might not be reflected in this value.
- ItemCount *int64 `type:"long"`
- // The primary key structure for the table. Each KeySchemaElement consists of:
- //
- // AttributeName - The name of the attribute.
- //
- // KeyType - The key type for the attribute. Can be either HASH or RANGE.
- //
- // For more information about primary keys, see Primary Key (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey)
- // in the Amazon DynamoDB Developer Guide.
- KeySchema []*KeySchemaElement `type:"list"`
- // The Amazon Resource Name (ARN) that uniquely identifies the latest stream
- // for this table.
- LatestStreamArn *string `type:"string"`
- // A timestamp, in ISO 8601 format, for this stream.
- //
- // Note that LatestStreamLabel is not a unique identifier for the stream, because
- // it is possible that a stream from another table might have the same timestamp.
- // However, the combination of the following three elements is guaranteed to
- // be unique:
- //
- // the AWS customer ID.
- //
- // the table name.
- //
- // the StreamLabel.
- LatestStreamLabel *string `type:"string"`
- // Represents one or more local secondary indexes on the table. Each index is
- // scoped to a given hash key value. Tables with one or more local secondary
- // indexes are subject to an item collection size limit, where the amount of
- // data within a given item collection cannot exceed 10 GB. Each element is
- // composed of:
- //
- // IndexName - The name of the local secondary index.
- //
- // KeySchema - Specifies the complete index key schema. The attribute names
- // in the key schema must be between 1 and 255 characters (inclusive). The key
- // schema must begin with the same hash key attribute as the table.
- //
- // Projection - Specifies attributes that are copied (projected) from the
- // table into the index. These are in addition to the primary key attributes
- // and index key attributes, which are automatically projected. Each attribute
- // specification is composed of:
- //
- // ProjectionType - One of the following:
- //
- // KEYS_ONLY - Only the index and primary keys are projected into the index.
- //
- // INCLUDE - Only the specified table attributes are projected into the index.
- // The list of projected attributes are in NonKeyAttributes.
- //
- // ALL - All of the table attributes are projected into the index.
- //
- // NonKeyAttributes - A list of one or more non-key attribute names that
- // are projected into the secondary index. The total count of attributes provided
- // in NonKeyAttributes, summed across all of the secondary indexes, must not
- // exceed 20. If you project the same attribute into two different indexes,
- // this counts as two distinct attributes when determining the total.
- //
- // IndexSizeBytes - Represents the total size of the index, in bytes. DynamoDB
- // updates this value approximately every six hours. Recent changes might not
- // be reflected in this value.
- //
- // ItemCount - Represents the number of items in the index. DynamoDB updates
- // this value approximately every six hours. Recent changes might not be reflected
- // in this value.
- //
- // If the table is in the DELETING state, no information about indexes will
- // be returned.
- LocalSecondaryIndexes []*LocalSecondaryIndexDescription `type:"list"`
- // The provisioned throughput settings for the table, consisting of read and
- // write capacity units, along with data about increases and decreases.
- ProvisionedThroughput *ProvisionedThroughputDescription `type:"structure"`
- // The current DynamoDB Streams configuration for the table.
- StreamSpecification *StreamSpecification `type:"structure"`
- // The Amazon Resource Name (ARN) that uniquely identifies the table.
- TableArn *string `type:"string"`
- // The name of the table.
- TableName *string `type:"string"`
- // The total size of the specified table, in bytes. DynamoDB updates this value
- // approximately every six hours. Recent changes might not be reflected in this
- // value.
- TableSizeBytes *int64 `type:"long"`
- // The current state of the table:
- //
- // CREATING - The table is being created.
- //
- // UPDATING - The table is being updated.
- //
- // DELETING - The table is being deleted.
- //
- // ACTIVE - The table is ready for use.
- TableStatus *string `type:"string" enum:"TableStatus"`
- metadataTableDescription `json:"-" xml:"-"`
- }
- type metadataTableDescription struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s TableDescription) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s TableDescription) GoString() string {
- return s.String()
- }
- // Represents the new provisioned throughput settings to be applied to a global
- // secondary index.
- type UpdateGlobalSecondaryIndexAction struct {
- // The name of the global secondary index to be updated.
- IndexName *string `type:"string" required:"true"`
- // Represents the provisioned throughput settings for a specified table or index.
- // The settings can be modified using the UpdateTable operation.
- //
- // For current minimum and maximum provisioned throughput values, see Limits
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
- // in the Amazon DynamoDB Developer Guide.
- ProvisionedThroughput *ProvisionedThroughput `type:"structure" required:"true"`
- metadataUpdateGlobalSecondaryIndexAction `json:"-" xml:"-"`
- }
- type metadataUpdateGlobalSecondaryIndexAction struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s UpdateGlobalSecondaryIndexAction) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateGlobalSecondaryIndexAction) GoString() string {
- return s.String()
- }
- // Represents the input of an UpdateItem operation.
- type UpdateItemInput struct {
- // This is a legacy parameter, for backward compatibility. New applications
- // should use UpdateExpression instead. Do not combine legacy parameters and
- // expression parameters in a single API call; otherwise, DynamoDB will return
- // a ValidationException exception.
- //
- // This parameter can be used for modifying top-level attributes; however,
- // it does not support individual list or map elements.
- //
- // The names of attributes to be modified, the action to perform on each,
- // and the new value for each. If you are updating an attribute that is an index
- // key attribute for any indexes on that table, the attribute type must match
- // the index key type defined in the AttributesDefinition of the table description.
- // You can use UpdateItem to update any nonkey attributes.
- //
- // Attribute values cannot be null. String and Binary type attributes must
- // have lengths greater than zero. Set type attributes must not be empty. Requests
- // with empty values will be rejected with a ValidationException exception.
- //
- // Each AttributeUpdates element consists of an attribute name to modify, along
- // with the following:
- //
- // Value - The new value, if applicable, for this attribute.
- //
- // Action - A value that specifies how to perform the update. This action
- // is only valid for an existing attribute whose data type is Number or is a
- // set; do not use ADD for other data types.
- //
- // If an item with the specified primary key is found in the table, the following
- // values perform the following actions:
- //
- // PUT - Adds the specified attribute to the item. If the attribute already
- // exists, it is replaced by the new value.
- //
- // DELETE - Removes the attribute and its value, if no value is specified
- // for DELETE. The data type of the specified value must match the existing
- // value's data type.
- //
- // If a set of values is specified, then those values are subtracted from the
- // old set. For example, if the attribute value was the set [a,b,c] and the
- // DELETE action specifies [a,c], then the final attribute value is [b]. Specifying
- // an empty set is an error.
- //
- // ADD - Adds the specified value to the item, if the attribute does not
- // already exist. If the attribute does exist, then the behavior of ADD depends
- // on the data type of the attribute:
- //
- // If the existing attribute is a number, and if Value is also a number,
- // then Value is mathematically added to the existing attribute. If Value is
- // a negative number, then it is subtracted from the existing attribute.
- //
- // If you use ADD to increment or decrement a number value for an item that
- // doesn't exist before the update, DynamoDB uses 0 as the initial value.
- //
- // Similarly, if you use ADD for an existing item to increment or decrement
- // an attribute value that doesn't exist before the update, DynamoDB uses 0
- // as the initial value. For example, suppose that the item you want to update
- // doesn't have an attribute named itemcount, but you decide to ADD the number
- // 3 to this attribute anyway. DynamoDB will create the itemcount attribute,
- // set its initial value to 0, and finally add 3 to it. The result will be a
- // new itemcount attribute, with a value of 3.
- //
- // If the existing data type is a set, and if Value is also a set, then
- // Value is appended to the existing set. For example, if the attribute value
- // is the set [1,2], and the ADD action specified [3], then the final attribute
- // value is [1,2,3]. An error occurs if an ADD action is specified for a set
- // attribute and the attribute type specified does not match the existing set
- // type.
- //
- // Both sets must have the same primitive data type. For example, if the existing
- // data type is a set of strings, Value must also be a set of strings.
- //
- // If no item with the specified key is found in the table, the following
- // values perform the following actions:
- //
- // PUT - Causes DynamoDB to create a new item with the specified primary
- // key, and then adds the attribute.
- //
- // DELETE - Nothing happens, because attributes cannot be deleted from a
- // nonexistent item. The operation succeeds, but DynamoDB does not create a
- // new item.
- //
- // ADD - Causes DynamoDB to create an item with the supplied primary key
- // and number (or set of numbers) for the attribute value. The only data types
- // allowed are Number and Number Set.
- //
- // If you provide any attributes that are part of an index key, then the
- // data types for those attributes must match those of the schema in the table's
- // attribute definition.
- AttributeUpdates map[string]*AttributeValueUpdate `type:"map"`
- // A condition that must be satisfied in order for a conditional update to succeed.
- //
- // An expression can contain any of the following:
- //
- // Functions: attribute_exists | attribute_not_exists | attribute_type |
- // contains | begins_with | size
- //
- // These function names are case-sensitive.
- //
- // Comparison operators: = | <> | < | > | <= | >= | BETWEEN | IN
- //
- // Logical operators: AND | OR | NOT
- //
- // For more information on condition expressions, see Specifying Conditions
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // ConditionExpression replaces the legacy ConditionalOperator and Expected
- // parameters.
- ConditionExpression *string `type:"string"`
- // This is a legacy parameter, for backward compatibility. New applications
- // should use ConditionExpression instead. Do not combine legacy parameters
- // and expression parameters in a single API call; otherwise, DynamoDB will
- // return a ValidationException exception.
- //
- // A logical operator to apply to the conditions in the Expected map:
- //
- // AND - If all of the conditions evaluate to true, then the entire map evaluates
- // to true.
- //
- // OR - If at least one of the conditions evaluate to true, then the entire
- // map evaluates to true.
- //
- // If you omit ConditionalOperator, then AND is the default.
- //
- // The operation will succeed only if the entire map evaluates to true.
- //
- // This parameter does not support attributes of type List or Map.
- ConditionalOperator *string `type:"string" enum:"ConditionalOperator"`
- // This is a legacy parameter, for backward compatibility. New applications
- // should use ConditionExpression instead. Do not combine legacy parameters
- // and expression parameters in a single API call; otherwise, DynamoDB will
- // return a ValidationException exception.
- //
- // A map of attribute/condition pairs. Expected provides a conditional block
- // for the UpdateItem operation.
- //
- // Each element of Expected consists of an attribute name, a comparison operator,
- // and one or more values. DynamoDB compares the attribute with the value(s)
- // you supplied, using the comparison operator. For each Expected element, the
- // result of the evaluation is either true or false.
- //
- // If you specify more than one element in the Expected map, then by default
- // all of the conditions must evaluate to true. In other words, the conditions
- // are ANDed together. (You can use the ConditionalOperator parameter to OR
- // the conditions instead. If you do this, then at least one of the conditions
- // must evaluate to true, rather than all of them.)
- //
- // If the Expected map evaluates to true, then the conditional operation succeeds;
- // otherwise, it fails.
- //
- // Expected contains the following:
- //
- // AttributeValueList - One or more values to evaluate against the supplied
- // attribute. The number of values in the list depends on the ComparisonOperator
- // being used.
- //
- // For type Number, value comparisons are numeric.
- //
- // String value comparisons for greater than, equals, or less than are based
- // on ASCII character code values. For example, a is greater than A, and a is
- // greater than B. For a list of code values, see http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.
- //
- // For type Binary, DynamoDB treats each byte of the binary data as unsigned
- // when it compares binary values.
- //
- // ComparisonOperator - A comparator for evaluating attributes in the AttributeValueList.
- // When performing the comparison, DynamoDB uses strongly consistent reads.
- //
- // The following comparison operators are available:
- //
- // EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS
- // | BEGINS_WITH | IN | BETWEEN
- //
- // The following are descriptions of each comparison operator.
- //
- // EQ : Equal. EQ is supported for all datatypes, including lists and maps.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, Binary, String Set, Number Set, or Binary Set. If an item contains
- // an AttributeValue element of a different type than the one provided in the
- // request, the value does not match. For example, {"S":"6"} does not equal
- // {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", "2", "1"]}.
- //
- // NE : Not equal. NE is supported for all datatypes, including lists and
- // maps.
- //
- // AttributeValueList can contain only one AttributeValue of type String, Number,
- // Binary, String Set, Number Set, or Binary Set. If an item contains an AttributeValue
- // of a different type than the one provided in the request, the value does
- // not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not equal {"NS":["6", "2", "1"]}.
- //
- // LE : Less than or equal.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // LT : Less than.
- //
- // AttributeValueList can contain only one AttributeValue of type String, Number,
- // or Binary (not a set type). If an item contains an AttributeValue element
- // of a different type than the one provided in the request, the value does
- // not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // GE : Greater than or equal.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // GT : Greater than.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not equal {"N":"6"}. Also, {"N":"6"}
- // does not compare to {"NS":["6", "2", "1"]}.
- //
- // NOT_NULL : The attribute exists. NOT_NULL is supported for all datatypes,
- // including lists and maps.
- //
- // This operator tests for the existence of an attribute, not its data type.
- // If the data type of attribute "a" is null, and you evaluate it using NOT_NULL,
- // the result is a Boolean true. This result is because the attribute "a" exists;
- // its data type is not relevant to the NOT_NULL comparison operator.
- //
- // NULL : The attribute does not exist. NULL is supported for all datatypes,
- // including lists and maps.
- //
- // This operator tests for the nonexistence of an attribute, not its data type.
- // If the data type of attribute "a" is null, and you evaluate it using NULL,
- // the result is a Boolean false. This is because the attribute "a" exists;
- // its data type is not relevant to the NULL comparison operator.
- //
- // CONTAINS : Checks for a subsequence, or value in a set.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If the target attribute of the comparison
- // is of type String, then the operator checks for a substring match. If the
- // target attribute of the comparison is of type Binary, then the operator looks
- // for a subsequence of the target that matches the input. If the target attribute
- // of the comparison is a set ("SS", "NS", or "BS"), then the operator evaluates
- // to true if it finds an exact match with any member of the set.
- //
- // CONTAINS is supported for lists: When evaluating "a CONTAINS b", "a" can
- // be a list; however, "b" cannot be a set, a map, or a list.
- //
- // NOT_CONTAINS : Checks for absence of a subsequence, or absence of a value
- // in a set.
- //
- // AttributeValueList can contain only one AttributeValue element of type String,
- // Number, or Binary (not a set type). If the target attribute of the comparison
- // is a String, then the operator checks for the absence of a substring match.
- // If the target attribute of the comparison is Binary, then the operator checks
- // for the absence of a subsequence of the target that matches the input. If
- // the target attribute of the comparison is a set ("SS", "NS", or "BS"), then
- // the operator evaluates to true if it does not find an exact match with any
- // member of the set.
- //
- // NOT_CONTAINS is supported for lists: When evaluating "a NOT CONTAINS b",
- // "a" can be a list; however, "b" cannot be a set, a map, or a list.
- //
- // BEGINS_WITH : Checks for a prefix.
- //
- // AttributeValueList can contain only one AttributeValue of type String or
- // Binary (not a Number or a set type). The target attribute of the comparison
- // must be of type String or Binary (not a Number or a set type).
- //
- // IN : Checks for matching elements within two sets.
- //
- // AttributeValueList can contain one or more AttributeValue elements of type
- // String, Number, or Binary (not a set type). These attributes are compared
- // against an existing set type attribute of an item. If any elements of the
- // input set are present in the item attribute, the expression evaluates to
- // true.
- //
- // BETWEEN : Greater than or equal to the first value, and less than or equal
- // to the second value.
- //
- // AttributeValueList must contain two AttributeValue elements of the same
- // type, either String, Number, or Binary (not a set type). A target attribute
- // matches if the target value is greater than, or equal to, the first element
- // and less than, or equal to, the second element. If an item contains an AttributeValue
- // element of a different type than the one provided in the request, the value
- // does not match. For example, {"S":"6"} does not compare to {"N":"6"}. Also,
- // {"N":"6"} does not compare to {"NS":["6", "2", "1"]}
- //
- // For usage examples of AttributeValueList and ComparisonOperator, see
- // Legacy Conditional Parameters (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // For backward compatibility with previous DynamoDB releases, the following
- // parameters can be used instead of AttributeValueList and ComparisonOperator:
- //
- // Value - A value for DynamoDB to compare with an attribute.
- //
- // Exists - A Boolean value that causes DynamoDB to evaluate the value before
- // attempting the conditional operation:
- //
- // If Exists is true, DynamoDB will check to see if that attribute value
- // already exists in the table. If it is found, then the condition evaluates
- // to true; otherwise the condition evaluate to false.
- //
- // If Exists is false, DynamoDB assumes that the attribute value does not
- // exist in the table. If in fact the value does not exist, then the assumption
- // is valid and the condition evaluates to true. If the value is found, despite
- // the assumption that it does not exist, the condition evaluates to false.
- //
- // Note that the default value for Exists is true.
- //
- // The Value and Exists parameters are incompatible with AttributeValueList
- // and ComparisonOperator. Note that if you use both sets of parameters at once,
- // DynamoDB will return a ValidationException exception.
- //
- // This parameter does not support attributes of type List or Map.
- Expected map[string]*ExpectedAttributeValue `type:"map"`
- // One or more substitution tokens for attribute names in an expression. The
- // following are some use cases for using ExpressionAttributeNames:
- //
- // To access an attribute whose name conflicts with a DynamoDB reserved word.
- //
- // To create a placeholder for repeating occurrences of an attribute name
- // in an expression.
- //
- // To prevent special characters in an attribute name from being misinterpreted
- // in an expression.
- //
- // Use the # character in an expression to dereference an attribute name.
- // For example, consider the following attribute name:
- //
- // Percentile
- //
- // The name of this attribute conflicts with a reserved word, so it cannot
- // be used directly in an expression. (For the complete list of reserved words,
- // see Reserved Words (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html)
- // in the Amazon DynamoDB Developer Guide). To work around this, you could specify
- // the following for ExpressionAttributeNames:
- //
- // {"#P":"Percentile"}
- //
- // You could then use this substitution in an expression, as in this example:
- //
- // #P = :val
- //
- // Tokens that begin with the : character are expression attribute values,
- // which are placeholders for the actual value at runtime.
- //
- // For more information on expression attribute names, see Accessing Item Attributes
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html)
- // in the Amazon DynamoDB Developer Guide.
- ExpressionAttributeNames map[string]*string `type:"map"`
- // One or more values that can be substituted in an expression.
- //
- // Use the : (colon) character in an expression to dereference an attribute
- // value. For example, suppose that you wanted to check whether the value of
- // the ProductStatus attribute was one of the following:
- //
- // Available | Backordered | Discontinued
- //
- // You would first need to specify ExpressionAttributeValues as follows:
- //
- // { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"}
- // }
- //
- // You could then use these values in an expression, such as this:
- //
- // ProductStatus IN (:avail, :back, :disc)
- //
- // For more information on expression attribute values, see Specifying Conditions
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html)
- // in the Amazon DynamoDB Developer Guide.
- ExpressionAttributeValues map[string]*AttributeValue `type:"map"`
- // The primary key of the item to be updated. Each element consists of an attribute
- // name and a value for that attribute.
- //
- // For the primary key, you must provide all of the attributes. For example,
- // with a hash type primary key, you only need to provide the hash attribute.
- // For a hash-and-range type primary key, you must provide both the hash attribute
- // and the range attribute.
- Key map[string]*AttributeValue `type:"map" required:"true"`
- // Determines the level of detail about provisioned throughput consumption that
- // is returned in the response:
- //
- // INDEXES - The response includes the aggregate ConsumedCapacity for the
- // operation, together with ConsumedCapacity for each table and secondary index
- // that was accessed.
- //
- // Note that some operations, such as GetItem and BatchGetItem, do not access
- // any indexes at all. In these cases, specifying INDEXES will only return ConsumedCapacity
- // information for table(s).
- //
- // TOTAL - The response includes only the aggregate ConsumedCapacity for the
- // operation.
- //
- // NONE - No ConsumedCapacity details are included in the response.
- ReturnConsumedCapacity *string `type:"string" enum:"ReturnConsumedCapacity"`
- // Determines whether item collection metrics are returned. If set to SIZE,
- // the response includes statistics about item collections, if any, that were
- // modified during the operation are returned in the response. If set to NONE
- // (the default), no statistics are returned.
- ReturnItemCollectionMetrics *string `type:"string" enum:"ReturnItemCollectionMetrics"`
- // Use ReturnValues if you want to get the item attributes as they appeared
- // either before or after they were updated. For UpdateItem, the valid values
- // are:
- //
- // NONE - If ReturnValues is not specified, or if its value is NONE, then
- // nothing is returned. (This setting is the default for ReturnValues.)
- //
- // ALL_OLD - If UpdateItem overwrote an attribute name-value pair, then the
- // content of the old item is returned.
- //
- // UPDATED_OLD - The old versions of only the updated attributes are returned.
- //
- // ALL_NEW - All of the attributes of the new version of the item are returned.
- //
- // UPDATED_NEW - The new versions of only the updated attributes are returned.
- ReturnValues *string `type:"string" enum:"ReturnValue"`
- // The name of the table containing the item to update.
- TableName *string `type:"string" required:"true"`
- // An expression that defines one or more attributes to be updated, the action
- // to be performed on them, and new value(s) for them.
- //
- // The following action values are available for UpdateExpression.
- //
- // SET - Adds one or more attributes and values to an item. If any of these
- // attribute already exist, they are replaced by the new values. You can also
- // use SET to add or subtract from an attribute that is of type Number. For
- // example: SET myNum = myNum + :val
- //
- // SET supports the following functions:
- //
- // if_not_exists (path, operand) - if the item does not contain an attribute
- // at the specified path, then if_not_exists evaluates to operand; otherwise,
- // it evaluates to path. You can use this function to avoid overwriting an attribute
- // that may already be present in the item.
- //
- // list_append (operand, operand) - evaluates to a list with a new element
- // added to it. You can append the new element to the start or the end of the
- // list by reversing the order of the operands.
- //
- // These function names are case-sensitive.
- //
- // REMOVE - Removes one or more attributes from an item.
- //
- // ADD - Adds the specified value to the item, if the attribute does not
- // already exist. If the attribute does exist, then the behavior of ADD depends
- // on the data type of the attribute:
- //
- // If the existing attribute is a number, and if Value is also a number,
- // then Value is mathematically added to the existing attribute. If Value is
- // a negative number, then it is subtracted from the existing attribute.
- //
- // If you use ADD to increment or decrement a number value for an item that
- // doesn't exist before the update, DynamoDB uses 0 as the initial value.
- //
- // Similarly, if you use ADD for an existing item to increment or decrement
- // an attribute value that doesn't exist before the update, DynamoDB uses 0
- // as the initial value. For example, suppose that the item you want to update
- // doesn't have an attribute named itemcount, but you decide to ADD the number
- // 3 to this attribute anyway. DynamoDB will create the itemcount attribute,
- // set its initial value to 0, and finally add 3 to it. The result will be a
- // new itemcount attribute in the item, with a value of 3.
- //
- // If the existing data type is a set and if Value is also a set, then Value
- // is added to the existing set. For example, if the attribute value is the
- // set [1,2], and the ADD action specified [3], then the final attribute value
- // is [1,2,3]. An error occurs if an ADD action is specified for a set attribute
- // and the attribute type specified does not match the existing set type.
- //
- // Both sets must have the same primitive data type. For example, if the existing
- // data type is a set of strings, the Value must also be a set of strings.
- //
- // The ADD action only supports Number and set data types. In addition, ADD
- // can only be used on top-level attributes, not nested attributes.
- //
- // DELETE - Deletes an element from a set.
- //
- // If a set of values is specified, then those values are subtracted from the
- // old set. For example, if the attribute value was the set [a,b,c] and the
- // DELETE action specifies [a,c], then the final attribute value is [b]. Specifying
- // an empty set is an error.
- //
- // The DELETE action only supports set data types. In addition, DELETE can
- // only be used on top-level attributes, not nested attributes.
- //
- // You can have many actions in a single expression, such as the following:
- // SET a=:value1, b=:value2 DELETE :value3, :value4, :value5
- //
- // For more information on update expressions, see Modifying Items and Attributes
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html)
- // in the Amazon DynamoDB Developer Guide.
- //
- // UpdateExpression replaces the legacy AttributeUpdates parameter.
- UpdateExpression *string `type:"string"`
- metadataUpdateItemInput `json:"-" xml:"-"`
- }
- type metadataUpdateItemInput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s UpdateItemInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateItemInput) GoString() string {
- return s.String()
- }
- // Represents the output of an UpdateItem operation.
- type UpdateItemOutput struct {
- // A map of attribute values as they appeared before the UpdateItem operation.
- // This map only appears if ReturnValues was specified as something other than
- // NONE in the request. Each element represents one attribute.
- Attributes map[string]*AttributeValue `type:"map"`
- // The capacity units consumed by an operation. The data returned includes the
- // total provisioned throughput consumed, along with statistics for the table
- // and any indexes involved in the operation. ConsumedCapacity is only returned
- // if the request asked for it. For more information, see Provisioned Throughput
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html)
- // in the Amazon DynamoDB Developer Guide.
- ConsumedCapacity *ConsumedCapacity `type:"structure"`
- // Information about item collections, if any, that were affected by the operation.
- // ItemCollectionMetrics is only returned if the request asked for it. If the
- // table does not have any local secondary indexes, this information is not
- // returned in the response.
- ItemCollectionMetrics *ItemCollectionMetrics `type:"structure"`
- metadataUpdateItemOutput `json:"-" xml:"-"`
- }
- type metadataUpdateItemOutput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s UpdateItemOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateItemOutput) GoString() string {
- return s.String()
- }
- // Represents the input of an UpdateTable operation.
- type UpdateTableInput struct {
- // An array of attributes that describe the key schema for the table and indexes.
- // If you are adding a new global secondary index to the table, AttributeDefinitions
- // must include the key element(s) of the new index.
- AttributeDefinitions []*AttributeDefinition `type:"list"`
- // An array of one or more global secondary indexes for the table. For each
- // index in the array, you can request one action:
- //
- // Create - add a new global secondary index to the table.
- //
- // Update - modify the provisioned throughput settings of an existing global
- // secondary index.
- //
- // Delete - remove a global secondary index from the table.
- //
- // For more information, see Managing Global Secondary Indexes (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html)
- // in the Amazon DynamoDB Developer Guide.
- GlobalSecondaryIndexUpdates []*GlobalSecondaryIndexUpdate `type:"list"`
- // Represents the provisioned throughput settings for a specified table or index.
- // The settings can be modified using the UpdateTable operation.
- //
- // For current minimum and maximum provisioned throughput values, see Limits
- // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html)
- // in the Amazon DynamoDB Developer Guide.
- ProvisionedThroughput *ProvisionedThroughput `type:"structure"`
- // Represents the DynamoDB Streams configuration for the table.
- //
- // You will receive a ResourceInUseException if you attempt to enable a stream
- // on a table that already has a stream, or if you attempt to disable a stream
- // on a table which does not have a stream.
- StreamSpecification *StreamSpecification `type:"structure"`
- // The name of the table to be updated.
- TableName *string `type:"string" required:"true"`
- metadataUpdateTableInput `json:"-" xml:"-"`
- }
- type metadataUpdateTableInput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s UpdateTableInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateTableInput) GoString() string {
- return s.String()
- }
- // Represents the output of an UpdateTable operation.
- type UpdateTableOutput struct {
- // Represents the properties of a table.
- TableDescription *TableDescription `type:"structure"`
- metadataUpdateTableOutput `json:"-" xml:"-"`
- }
- type metadataUpdateTableOutput struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s UpdateTableOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateTableOutput) GoString() string {
- return s.String()
- }
- // Represents an operation to perform - either DeleteItem or PutItem. You can
- // only request one of these operations, not both, in a single WriteRequest.
- // If you do need to perform both of these operations, you will need to provide
- // two separate WriteRequest objects.
- type WriteRequest struct {
- // A request to perform a DeleteItem operation.
- DeleteRequest *DeleteRequest `type:"structure"`
- // A request to perform a PutItem operation.
- PutRequest *PutRequest `type:"structure"`
- metadataWriteRequest `json:"-" xml:"-"`
- }
- type metadataWriteRequest struct {
- SDKShapeTraits bool `type:"structure"`
- }
- // String returns the string representation
- func (s WriteRequest) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s WriteRequest) GoString() string {
- return s.String()
- }
- const (
- // @enum AttributeAction
- AttributeActionAdd = "ADD"
- // @enum AttributeAction
- AttributeActionPut = "PUT"
- // @enum AttributeAction
- AttributeActionDelete = "DELETE"
- )
- const (
- // @enum ComparisonOperator
- ComparisonOperatorEq = "EQ"
- // @enum ComparisonOperator
- ComparisonOperatorNe = "NE"
- // @enum ComparisonOperator
- ComparisonOperatorIn = "IN"
- // @enum ComparisonOperator
- ComparisonOperatorLe = "LE"
- // @enum ComparisonOperator
- ComparisonOperatorLt = "LT"
- // @enum ComparisonOperator
- ComparisonOperatorGe = "GE"
- // @enum ComparisonOperator
- ComparisonOperatorGt = "GT"
- // @enum ComparisonOperator
- ComparisonOperatorBetween = "BETWEEN"
- // @enum ComparisonOperator
- ComparisonOperatorNotNull = "NOT_NULL"
- // @enum ComparisonOperator
- ComparisonOperatorNull = "NULL"
- // @enum ComparisonOperator
- ComparisonOperatorContains = "CONTAINS"
- // @enum ComparisonOperator
- ComparisonOperatorNotContains = "NOT_CONTAINS"
- // @enum ComparisonOperator
- ComparisonOperatorBeginsWith = "BEGINS_WITH"
- )
- const (
- // @enum ConditionalOperator
- ConditionalOperatorAnd = "AND"
- // @enum ConditionalOperator
- ConditionalOperatorOr = "OR"
- )
- const (
- // @enum IndexStatus
- IndexStatusCreating = "CREATING"
- // @enum IndexStatus
- IndexStatusUpdating = "UPDATING"
- // @enum IndexStatus
- IndexStatusDeleting = "DELETING"
- // @enum IndexStatus
- IndexStatusActive = "ACTIVE"
- )
- const (
- // @enum KeyType
- KeyTypeHash = "HASH"
- // @enum KeyType
- KeyTypeRange = "RANGE"
- )
- const (
- // @enum ProjectionType
- ProjectionTypeAll = "ALL"
- // @enum ProjectionType
- ProjectionTypeKeysOnly = "KEYS_ONLY"
- // @enum ProjectionType
- ProjectionTypeInclude = "INCLUDE"
- )
- // Determines the level of detail about provisioned throughput consumption that
- // is returned in the response:
- //
- // INDEXES - The response includes the aggregate ConsumedCapacity for the
- // operation, together with ConsumedCapacity for each table and secondary index
- // that was accessed.
- //
- // Note that some operations, such as GetItem and BatchGetItem, do not access
- // any indexes at all. In these cases, specifying INDEXES will only return ConsumedCapacity
- // information for table(s).
- //
- // TOTAL - The response includes only the aggregate ConsumedCapacity for the
- // operation.
- //
- // NONE - No ConsumedCapacity details are included in the response.
- const (
- // @enum ReturnConsumedCapacity
- ReturnConsumedCapacityIndexes = "INDEXES"
- // @enum ReturnConsumedCapacity
- ReturnConsumedCapacityTotal = "TOTAL"
- // @enum ReturnConsumedCapacity
- ReturnConsumedCapacityNone = "NONE"
- )
- const (
- // @enum ReturnItemCollectionMetrics
- ReturnItemCollectionMetricsSize = "SIZE"
- // @enum ReturnItemCollectionMetrics
- ReturnItemCollectionMetricsNone = "NONE"
- )
- const (
- // @enum ReturnValue
- ReturnValueNone = "NONE"
- // @enum ReturnValue
- ReturnValueAllOld = "ALL_OLD"
- // @enum ReturnValue
- ReturnValueUpdatedOld = "UPDATED_OLD"
- // @enum ReturnValue
- ReturnValueAllNew = "ALL_NEW"
- // @enum ReturnValue
- ReturnValueUpdatedNew = "UPDATED_NEW"
- )
- const (
- // @enum ScalarAttributeType
- ScalarAttributeTypeS = "S"
- // @enum ScalarAttributeType
- ScalarAttributeTypeN = "N"
- // @enum ScalarAttributeType
- ScalarAttributeTypeB = "B"
- )
- const (
- // @enum Select
- SelectAllAttributes = "ALL_ATTRIBUTES"
- // @enum Select
- SelectAllProjectedAttributes = "ALL_PROJECTED_ATTRIBUTES"
- // @enum Select
- SelectSpecificAttributes = "SPECIFIC_ATTRIBUTES"
- // @enum Select
- SelectCount = "COUNT"
- )
- const (
- // @enum StreamViewType
- StreamViewTypeNewImage = "NEW_IMAGE"
- // @enum StreamViewType
- StreamViewTypeOldImage = "OLD_IMAGE"
- // @enum StreamViewType
- StreamViewTypeNewAndOldImages = "NEW_AND_OLD_IMAGES"
- // @enum StreamViewType
- StreamViewTypeKeysOnly = "KEYS_ONLY"
- )
- const (
- // @enum TableStatus
- TableStatusCreating = "CREATING"
- // @enum TableStatus
- TableStatusUpdating = "UPDATING"
- // @enum TableStatus
- TableStatusDeleting = "DELETING"
- // @enum TableStatus
- TableStatusActive = "ACTIVE"
- )
|