api.go 195 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941
  1. // THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
  2. // Package elastictranscoder provides a client for Amazon Elastic Transcoder.
  3. package elastictranscoder
  4. import (
  5. "fmt"
  6. "github.com/aws/aws-sdk-go/aws/awsutil"
  7. "github.com/aws/aws-sdk-go/aws/request"
  8. )
  9. const opCancelJob = "CancelJob"
  10. // CancelJobRequest generates a "aws/request.Request" representing the
  11. // client's request for the CancelJob operation. The "output" return
  12. // value can be used to capture response data after the request's "Send" method
  13. // is called.
  14. //
  15. // Creating a request object using this method should be used when you want to inject
  16. // custom logic into the request's lifecycle using a custom handler, or if you want to
  17. // access properties on the request object before or after sending the request. If
  18. // you just want the service response, call the CancelJob method directly
  19. // instead.
  20. //
  21. // Note: You must call the "Send" method on the returned request object in order
  22. // to execute the request.
  23. //
  24. // // Example sending a request using the CancelJobRequest method.
  25. // req, resp := client.CancelJobRequest(params)
  26. //
  27. // err := req.Send()
  28. // if err == nil { // resp is now filled
  29. // fmt.Println(resp)
  30. // }
  31. //
  32. func (c *ElasticTranscoder) CancelJobRequest(input *CancelJobInput) (req *request.Request, output *CancelJobOutput) {
  33. op := &request.Operation{
  34. Name: opCancelJob,
  35. HTTPMethod: "DELETE",
  36. HTTPPath: "/2012-09-25/jobs/{Id}",
  37. }
  38. if input == nil {
  39. input = &CancelJobInput{}
  40. }
  41. req = c.newRequest(op, input, output)
  42. output = &CancelJobOutput{}
  43. req.Data = output
  44. return
  45. }
  46. // The CancelJob operation cancels an unfinished job.
  47. //
  48. // You can only cancel a job that has a status of Submitted. To prevent a pipeline
  49. // from starting to process a job while you're getting the job identifier, use
  50. // UpdatePipelineStatus to temporarily pause the pipeline.
  51. func (c *ElasticTranscoder) CancelJob(input *CancelJobInput) (*CancelJobOutput, error) {
  52. req, out := c.CancelJobRequest(input)
  53. err := req.Send()
  54. return out, err
  55. }
  56. const opCreateJob = "CreateJob"
  57. // CreateJobRequest generates a "aws/request.Request" representing the
  58. // client's request for the CreateJob operation. The "output" return
  59. // value can be used to capture response data after the request's "Send" method
  60. // is called.
  61. //
  62. // Creating a request object using this method should be used when you want to inject
  63. // custom logic into the request's lifecycle using a custom handler, or if you want to
  64. // access properties on the request object before or after sending the request. If
  65. // you just want the service response, call the CreateJob method directly
  66. // instead.
  67. //
  68. // Note: You must call the "Send" method on the returned request object in order
  69. // to execute the request.
  70. //
  71. // // Example sending a request using the CreateJobRequest method.
  72. // req, resp := client.CreateJobRequest(params)
  73. //
  74. // err := req.Send()
  75. // if err == nil { // resp is now filled
  76. // fmt.Println(resp)
  77. // }
  78. //
  79. func (c *ElasticTranscoder) CreateJobRequest(input *CreateJobInput) (req *request.Request, output *CreateJobResponse) {
  80. op := &request.Operation{
  81. Name: opCreateJob,
  82. HTTPMethod: "POST",
  83. HTTPPath: "/2012-09-25/jobs",
  84. }
  85. if input == nil {
  86. input = &CreateJobInput{}
  87. }
  88. req = c.newRequest(op, input, output)
  89. output = &CreateJobResponse{}
  90. req.Data = output
  91. return
  92. }
  93. // When you create a job, Elastic Transcoder returns JSON data that includes
  94. // the values that you specified plus information about the job that is created.
  95. //
  96. // If you have specified more than one output for your jobs (for example, one
  97. // output for the Kindle Fire and another output for the Apple iPhone 4s), you
  98. // currently must use the Elastic Transcoder API to list the jobs (as opposed
  99. // to the AWS Console).
  100. func (c *ElasticTranscoder) CreateJob(input *CreateJobInput) (*CreateJobResponse, error) {
  101. req, out := c.CreateJobRequest(input)
  102. err := req.Send()
  103. return out, err
  104. }
  105. const opCreatePipeline = "CreatePipeline"
  106. // CreatePipelineRequest generates a "aws/request.Request" representing the
  107. // client's request for the CreatePipeline operation. The "output" return
  108. // value can be used to capture response data after the request's "Send" method
  109. // is called.
  110. //
  111. // Creating a request object using this method should be used when you want to inject
  112. // custom logic into the request's lifecycle using a custom handler, or if you want to
  113. // access properties on the request object before or after sending the request. If
  114. // you just want the service response, call the CreatePipeline method directly
  115. // instead.
  116. //
  117. // Note: You must call the "Send" method on the returned request object in order
  118. // to execute the request.
  119. //
  120. // // Example sending a request using the CreatePipelineRequest method.
  121. // req, resp := client.CreatePipelineRequest(params)
  122. //
  123. // err := req.Send()
  124. // if err == nil { // resp is now filled
  125. // fmt.Println(resp)
  126. // }
  127. //
  128. func (c *ElasticTranscoder) CreatePipelineRequest(input *CreatePipelineInput) (req *request.Request, output *CreatePipelineOutput) {
  129. op := &request.Operation{
  130. Name: opCreatePipeline,
  131. HTTPMethod: "POST",
  132. HTTPPath: "/2012-09-25/pipelines",
  133. }
  134. if input == nil {
  135. input = &CreatePipelineInput{}
  136. }
  137. req = c.newRequest(op, input, output)
  138. output = &CreatePipelineOutput{}
  139. req.Data = output
  140. return
  141. }
  142. // The CreatePipeline operation creates a pipeline with settings that you specify.
  143. func (c *ElasticTranscoder) CreatePipeline(input *CreatePipelineInput) (*CreatePipelineOutput, error) {
  144. req, out := c.CreatePipelineRequest(input)
  145. err := req.Send()
  146. return out, err
  147. }
  148. const opCreatePreset = "CreatePreset"
  149. // CreatePresetRequest generates a "aws/request.Request" representing the
  150. // client's request for the CreatePreset operation. The "output" return
  151. // value can be used to capture response data after the request's "Send" method
  152. // is called.
  153. //
  154. // Creating a request object using this method should be used when you want to inject
  155. // custom logic into the request's lifecycle using a custom handler, or if you want to
  156. // access properties on the request object before or after sending the request. If
  157. // you just want the service response, call the CreatePreset method directly
  158. // instead.
  159. //
  160. // Note: You must call the "Send" method on the returned request object in order
  161. // to execute the request.
  162. //
  163. // // Example sending a request using the CreatePresetRequest method.
  164. // req, resp := client.CreatePresetRequest(params)
  165. //
  166. // err := req.Send()
  167. // if err == nil { // resp is now filled
  168. // fmt.Println(resp)
  169. // }
  170. //
  171. func (c *ElasticTranscoder) CreatePresetRequest(input *CreatePresetInput) (req *request.Request, output *CreatePresetOutput) {
  172. op := &request.Operation{
  173. Name: opCreatePreset,
  174. HTTPMethod: "POST",
  175. HTTPPath: "/2012-09-25/presets",
  176. }
  177. if input == nil {
  178. input = &CreatePresetInput{}
  179. }
  180. req = c.newRequest(op, input, output)
  181. output = &CreatePresetOutput{}
  182. req.Data = output
  183. return
  184. }
  185. // The CreatePreset operation creates a preset with settings that you specify.
  186. //
  187. // Elastic Transcoder checks the CreatePreset settings to ensure that they
  188. // meet Elastic Transcoder requirements and to determine whether they comply
  189. // with H.264 standards. If your settings are not valid for Elastic Transcoder,
  190. // Elastic Transcoder returns an HTTP 400 response (ValidationException) and
  191. // does not create the preset. If the settings are valid for Elastic Transcoder
  192. // but aren't strictly compliant with the H.264 standard, Elastic Transcoder
  193. // creates the preset and returns a warning message in the response. This helps
  194. // you determine whether your settings comply with the H.264 standard while
  195. // giving you greater flexibility with respect to the video that Elastic Transcoder
  196. // produces. Elastic Transcoder uses the H.264 video-compression format. For
  197. // more information, see the International Telecommunication Union publication
  198. // Recommendation ITU-T H.264: Advanced video coding for generic audiovisual
  199. // services.
  200. func (c *ElasticTranscoder) CreatePreset(input *CreatePresetInput) (*CreatePresetOutput, error) {
  201. req, out := c.CreatePresetRequest(input)
  202. err := req.Send()
  203. return out, err
  204. }
  205. const opDeletePipeline = "DeletePipeline"
  206. // DeletePipelineRequest generates a "aws/request.Request" representing the
  207. // client's request for the DeletePipeline operation. The "output" return
  208. // value can be used to capture response data after the request's "Send" method
  209. // is called.
  210. //
  211. // Creating a request object using this method should be used when you want to inject
  212. // custom logic into the request's lifecycle using a custom handler, or if you want to
  213. // access properties on the request object before or after sending the request. If
  214. // you just want the service response, call the DeletePipeline method directly
  215. // instead.
  216. //
  217. // Note: You must call the "Send" method on the returned request object in order
  218. // to execute the request.
  219. //
  220. // // Example sending a request using the DeletePipelineRequest method.
  221. // req, resp := client.DeletePipelineRequest(params)
  222. //
  223. // err := req.Send()
  224. // if err == nil { // resp is now filled
  225. // fmt.Println(resp)
  226. // }
  227. //
  228. func (c *ElasticTranscoder) DeletePipelineRequest(input *DeletePipelineInput) (req *request.Request, output *DeletePipelineOutput) {
  229. op := &request.Operation{
  230. Name: opDeletePipeline,
  231. HTTPMethod: "DELETE",
  232. HTTPPath: "/2012-09-25/pipelines/{Id}",
  233. }
  234. if input == nil {
  235. input = &DeletePipelineInput{}
  236. }
  237. req = c.newRequest(op, input, output)
  238. output = &DeletePipelineOutput{}
  239. req.Data = output
  240. return
  241. }
  242. // The DeletePipeline operation removes a pipeline.
  243. //
  244. // You can only delete a pipeline that has never been used or that is not
  245. // currently in use (doesn't contain any active jobs). If the pipeline is currently
  246. // in use, DeletePipeline returns an error.
  247. func (c *ElasticTranscoder) DeletePipeline(input *DeletePipelineInput) (*DeletePipelineOutput, error) {
  248. req, out := c.DeletePipelineRequest(input)
  249. err := req.Send()
  250. return out, err
  251. }
  252. const opDeletePreset = "DeletePreset"
  253. // DeletePresetRequest generates a "aws/request.Request" representing the
  254. // client's request for the DeletePreset operation. The "output" return
  255. // value can be used to capture response data after the request's "Send" method
  256. // is called.
  257. //
  258. // Creating a request object using this method should be used when you want to inject
  259. // custom logic into the request's lifecycle using a custom handler, or if you want to
  260. // access properties on the request object before or after sending the request. If
  261. // you just want the service response, call the DeletePreset method directly
  262. // instead.
  263. //
  264. // Note: You must call the "Send" method on the returned request object in order
  265. // to execute the request.
  266. //
  267. // // Example sending a request using the DeletePresetRequest method.
  268. // req, resp := client.DeletePresetRequest(params)
  269. //
  270. // err := req.Send()
  271. // if err == nil { // resp is now filled
  272. // fmt.Println(resp)
  273. // }
  274. //
  275. func (c *ElasticTranscoder) DeletePresetRequest(input *DeletePresetInput) (req *request.Request, output *DeletePresetOutput) {
  276. op := &request.Operation{
  277. Name: opDeletePreset,
  278. HTTPMethod: "DELETE",
  279. HTTPPath: "/2012-09-25/presets/{Id}",
  280. }
  281. if input == nil {
  282. input = &DeletePresetInput{}
  283. }
  284. req = c.newRequest(op, input, output)
  285. output = &DeletePresetOutput{}
  286. req.Data = output
  287. return
  288. }
  289. // The DeletePreset operation removes a preset that you've added in an AWS region.
  290. //
  291. // You can't delete the default presets that are included with Elastic Transcoder.
  292. func (c *ElasticTranscoder) DeletePreset(input *DeletePresetInput) (*DeletePresetOutput, error) {
  293. req, out := c.DeletePresetRequest(input)
  294. err := req.Send()
  295. return out, err
  296. }
  297. const opListJobsByPipeline = "ListJobsByPipeline"
  298. // ListJobsByPipelineRequest generates a "aws/request.Request" representing the
  299. // client's request for the ListJobsByPipeline operation. The "output" return
  300. // value can be used to capture response data after the request's "Send" method
  301. // is called.
  302. //
  303. // Creating a request object using this method should be used when you want to inject
  304. // custom logic into the request's lifecycle using a custom handler, or if you want to
  305. // access properties on the request object before or after sending the request. If
  306. // you just want the service response, call the ListJobsByPipeline method directly
  307. // instead.
  308. //
  309. // Note: You must call the "Send" method on the returned request object in order
  310. // to execute the request.
  311. //
  312. // // Example sending a request using the ListJobsByPipelineRequest method.
  313. // req, resp := client.ListJobsByPipelineRequest(params)
  314. //
  315. // err := req.Send()
  316. // if err == nil { // resp is now filled
  317. // fmt.Println(resp)
  318. // }
  319. //
  320. func (c *ElasticTranscoder) ListJobsByPipelineRequest(input *ListJobsByPipelineInput) (req *request.Request, output *ListJobsByPipelineOutput) {
  321. op := &request.Operation{
  322. Name: opListJobsByPipeline,
  323. HTTPMethod: "GET",
  324. HTTPPath: "/2012-09-25/jobsByPipeline/{PipelineId}",
  325. Paginator: &request.Paginator{
  326. InputTokens: []string{"PageToken"},
  327. OutputTokens: []string{"NextPageToken"},
  328. LimitToken: "",
  329. TruncationToken: "",
  330. },
  331. }
  332. if input == nil {
  333. input = &ListJobsByPipelineInput{}
  334. }
  335. req = c.newRequest(op, input, output)
  336. output = &ListJobsByPipelineOutput{}
  337. req.Data = output
  338. return
  339. }
  340. // The ListJobsByPipeline operation gets a list of the jobs currently in a pipeline.
  341. //
  342. // Elastic Transcoder returns all of the jobs currently in the specified pipeline.
  343. // The response body contains one element for each job that satisfies the search
  344. // criteria.
  345. func (c *ElasticTranscoder) ListJobsByPipeline(input *ListJobsByPipelineInput) (*ListJobsByPipelineOutput, error) {
  346. req, out := c.ListJobsByPipelineRequest(input)
  347. err := req.Send()
  348. return out, err
  349. }
  350. // ListJobsByPipelinePages iterates over the pages of a ListJobsByPipeline operation,
  351. // calling the "fn" function with the response data for each page. To stop
  352. // iterating, return false from the fn function.
  353. //
  354. // See ListJobsByPipeline method for more information on how to use this operation.
  355. //
  356. // Note: This operation can generate multiple requests to a service.
  357. //
  358. // // Example iterating over at most 3 pages of a ListJobsByPipeline operation.
  359. // pageNum := 0
  360. // err := client.ListJobsByPipelinePages(params,
  361. // func(page *ListJobsByPipelineOutput, lastPage bool) bool {
  362. // pageNum++
  363. // fmt.Println(page)
  364. // return pageNum <= 3
  365. // })
  366. //
  367. func (c *ElasticTranscoder) ListJobsByPipelinePages(input *ListJobsByPipelineInput, fn func(p *ListJobsByPipelineOutput, lastPage bool) (shouldContinue bool)) error {
  368. page, _ := c.ListJobsByPipelineRequest(input)
  369. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  370. return page.EachPage(func(p interface{}, lastPage bool) bool {
  371. return fn(p.(*ListJobsByPipelineOutput), lastPage)
  372. })
  373. }
  374. const opListJobsByStatus = "ListJobsByStatus"
  375. // ListJobsByStatusRequest generates a "aws/request.Request" representing the
  376. // client's request for the ListJobsByStatus operation. The "output" return
  377. // value can be used to capture response data after the request's "Send" method
  378. // is called.
  379. //
  380. // Creating a request object using this method should be used when you want to inject
  381. // custom logic into the request's lifecycle using a custom handler, or if you want to
  382. // access properties on the request object before or after sending the request. If
  383. // you just want the service response, call the ListJobsByStatus method directly
  384. // instead.
  385. //
  386. // Note: You must call the "Send" method on the returned request object in order
  387. // to execute the request.
  388. //
  389. // // Example sending a request using the ListJobsByStatusRequest method.
  390. // req, resp := client.ListJobsByStatusRequest(params)
  391. //
  392. // err := req.Send()
  393. // if err == nil { // resp is now filled
  394. // fmt.Println(resp)
  395. // }
  396. //
  397. func (c *ElasticTranscoder) ListJobsByStatusRequest(input *ListJobsByStatusInput) (req *request.Request, output *ListJobsByStatusOutput) {
  398. op := &request.Operation{
  399. Name: opListJobsByStatus,
  400. HTTPMethod: "GET",
  401. HTTPPath: "/2012-09-25/jobsByStatus/{Status}",
  402. Paginator: &request.Paginator{
  403. InputTokens: []string{"PageToken"},
  404. OutputTokens: []string{"NextPageToken"},
  405. LimitToken: "",
  406. TruncationToken: "",
  407. },
  408. }
  409. if input == nil {
  410. input = &ListJobsByStatusInput{}
  411. }
  412. req = c.newRequest(op, input, output)
  413. output = &ListJobsByStatusOutput{}
  414. req.Data = output
  415. return
  416. }
  417. // The ListJobsByStatus operation gets a list of jobs that have a specified
  418. // status. The response body contains one element for each job that satisfies
  419. // the search criteria.
  420. func (c *ElasticTranscoder) ListJobsByStatus(input *ListJobsByStatusInput) (*ListJobsByStatusOutput, error) {
  421. req, out := c.ListJobsByStatusRequest(input)
  422. err := req.Send()
  423. return out, err
  424. }
  425. // ListJobsByStatusPages iterates over the pages of a ListJobsByStatus operation,
  426. // calling the "fn" function with the response data for each page. To stop
  427. // iterating, return false from the fn function.
  428. //
  429. // See ListJobsByStatus method for more information on how to use this operation.
  430. //
  431. // Note: This operation can generate multiple requests to a service.
  432. //
  433. // // Example iterating over at most 3 pages of a ListJobsByStatus operation.
  434. // pageNum := 0
  435. // err := client.ListJobsByStatusPages(params,
  436. // func(page *ListJobsByStatusOutput, lastPage bool) bool {
  437. // pageNum++
  438. // fmt.Println(page)
  439. // return pageNum <= 3
  440. // })
  441. //
  442. func (c *ElasticTranscoder) ListJobsByStatusPages(input *ListJobsByStatusInput, fn func(p *ListJobsByStatusOutput, lastPage bool) (shouldContinue bool)) error {
  443. page, _ := c.ListJobsByStatusRequest(input)
  444. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  445. return page.EachPage(func(p interface{}, lastPage bool) bool {
  446. return fn(p.(*ListJobsByStatusOutput), lastPage)
  447. })
  448. }
  449. const opListPipelines = "ListPipelines"
  450. // ListPipelinesRequest generates a "aws/request.Request" representing the
  451. // client's request for the ListPipelines operation. The "output" return
  452. // value can be used to capture response data after the request's "Send" method
  453. // is called.
  454. //
  455. // Creating a request object using this method should be used when you want to inject
  456. // custom logic into the request's lifecycle using a custom handler, or if you want to
  457. // access properties on the request object before or after sending the request. If
  458. // you just want the service response, call the ListPipelines method directly
  459. // instead.
  460. //
  461. // Note: You must call the "Send" method on the returned request object in order
  462. // to execute the request.
  463. //
  464. // // Example sending a request using the ListPipelinesRequest method.
  465. // req, resp := client.ListPipelinesRequest(params)
  466. //
  467. // err := req.Send()
  468. // if err == nil { // resp is now filled
  469. // fmt.Println(resp)
  470. // }
  471. //
  472. func (c *ElasticTranscoder) ListPipelinesRequest(input *ListPipelinesInput) (req *request.Request, output *ListPipelinesOutput) {
  473. op := &request.Operation{
  474. Name: opListPipelines,
  475. HTTPMethod: "GET",
  476. HTTPPath: "/2012-09-25/pipelines",
  477. Paginator: &request.Paginator{
  478. InputTokens: []string{"PageToken"},
  479. OutputTokens: []string{"NextPageToken"},
  480. LimitToken: "",
  481. TruncationToken: "",
  482. },
  483. }
  484. if input == nil {
  485. input = &ListPipelinesInput{}
  486. }
  487. req = c.newRequest(op, input, output)
  488. output = &ListPipelinesOutput{}
  489. req.Data = output
  490. return
  491. }
  492. // The ListPipelines operation gets a list of the pipelines associated with
  493. // the current AWS account.
  494. func (c *ElasticTranscoder) ListPipelines(input *ListPipelinesInput) (*ListPipelinesOutput, error) {
  495. req, out := c.ListPipelinesRequest(input)
  496. err := req.Send()
  497. return out, err
  498. }
  499. // ListPipelinesPages iterates over the pages of a ListPipelines operation,
  500. // calling the "fn" function with the response data for each page. To stop
  501. // iterating, return false from the fn function.
  502. //
  503. // See ListPipelines method for more information on how to use this operation.
  504. //
  505. // Note: This operation can generate multiple requests to a service.
  506. //
  507. // // Example iterating over at most 3 pages of a ListPipelines operation.
  508. // pageNum := 0
  509. // err := client.ListPipelinesPages(params,
  510. // func(page *ListPipelinesOutput, lastPage bool) bool {
  511. // pageNum++
  512. // fmt.Println(page)
  513. // return pageNum <= 3
  514. // })
  515. //
  516. func (c *ElasticTranscoder) ListPipelinesPages(input *ListPipelinesInput, fn func(p *ListPipelinesOutput, lastPage bool) (shouldContinue bool)) error {
  517. page, _ := c.ListPipelinesRequest(input)
  518. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  519. return page.EachPage(func(p interface{}, lastPage bool) bool {
  520. return fn(p.(*ListPipelinesOutput), lastPage)
  521. })
  522. }
  523. const opListPresets = "ListPresets"
  524. // ListPresetsRequest generates a "aws/request.Request" representing the
  525. // client's request for the ListPresets operation. The "output" return
  526. // value can be used to capture response data after the request's "Send" method
  527. // is called.
  528. //
  529. // Creating a request object using this method should be used when you want to inject
  530. // custom logic into the request's lifecycle using a custom handler, or if you want to
  531. // access properties on the request object before or after sending the request. If
  532. // you just want the service response, call the ListPresets method directly
  533. // instead.
  534. //
  535. // Note: You must call the "Send" method on the returned request object in order
  536. // to execute the request.
  537. //
  538. // // Example sending a request using the ListPresetsRequest method.
  539. // req, resp := client.ListPresetsRequest(params)
  540. //
  541. // err := req.Send()
  542. // if err == nil { // resp is now filled
  543. // fmt.Println(resp)
  544. // }
  545. //
  546. func (c *ElasticTranscoder) ListPresetsRequest(input *ListPresetsInput) (req *request.Request, output *ListPresetsOutput) {
  547. op := &request.Operation{
  548. Name: opListPresets,
  549. HTTPMethod: "GET",
  550. HTTPPath: "/2012-09-25/presets",
  551. Paginator: &request.Paginator{
  552. InputTokens: []string{"PageToken"},
  553. OutputTokens: []string{"NextPageToken"},
  554. LimitToken: "",
  555. TruncationToken: "",
  556. },
  557. }
  558. if input == nil {
  559. input = &ListPresetsInput{}
  560. }
  561. req = c.newRequest(op, input, output)
  562. output = &ListPresetsOutput{}
  563. req.Data = output
  564. return
  565. }
  566. // The ListPresets operation gets a list of the default presets included with
  567. // Elastic Transcoder and the presets that you've added in an AWS region.
  568. func (c *ElasticTranscoder) ListPresets(input *ListPresetsInput) (*ListPresetsOutput, error) {
  569. req, out := c.ListPresetsRequest(input)
  570. err := req.Send()
  571. return out, err
  572. }
  573. // ListPresetsPages iterates over the pages of a ListPresets operation,
  574. // calling the "fn" function with the response data for each page. To stop
  575. // iterating, return false from the fn function.
  576. //
  577. // See ListPresets method for more information on how to use this operation.
  578. //
  579. // Note: This operation can generate multiple requests to a service.
  580. //
  581. // // Example iterating over at most 3 pages of a ListPresets operation.
  582. // pageNum := 0
  583. // err := client.ListPresetsPages(params,
  584. // func(page *ListPresetsOutput, lastPage bool) bool {
  585. // pageNum++
  586. // fmt.Println(page)
  587. // return pageNum <= 3
  588. // })
  589. //
  590. func (c *ElasticTranscoder) ListPresetsPages(input *ListPresetsInput, fn func(p *ListPresetsOutput, lastPage bool) (shouldContinue bool)) error {
  591. page, _ := c.ListPresetsRequest(input)
  592. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  593. return page.EachPage(func(p interface{}, lastPage bool) bool {
  594. return fn(p.(*ListPresetsOutput), lastPage)
  595. })
  596. }
  597. const opReadJob = "ReadJob"
  598. // ReadJobRequest generates a "aws/request.Request" representing the
  599. // client's request for the ReadJob operation. The "output" return
  600. // value can be used to capture response data after the request's "Send" method
  601. // is called.
  602. //
  603. // Creating a request object using this method should be used when you want to inject
  604. // custom logic into the request's lifecycle using a custom handler, or if you want to
  605. // access properties on the request object before or after sending the request. If
  606. // you just want the service response, call the ReadJob method directly
  607. // instead.
  608. //
  609. // Note: You must call the "Send" method on the returned request object in order
  610. // to execute the request.
  611. //
  612. // // Example sending a request using the ReadJobRequest method.
  613. // req, resp := client.ReadJobRequest(params)
  614. //
  615. // err := req.Send()
  616. // if err == nil { // resp is now filled
  617. // fmt.Println(resp)
  618. // }
  619. //
  620. func (c *ElasticTranscoder) ReadJobRequest(input *ReadJobInput) (req *request.Request, output *ReadJobOutput) {
  621. op := &request.Operation{
  622. Name: opReadJob,
  623. HTTPMethod: "GET",
  624. HTTPPath: "/2012-09-25/jobs/{Id}",
  625. }
  626. if input == nil {
  627. input = &ReadJobInput{}
  628. }
  629. req = c.newRequest(op, input, output)
  630. output = &ReadJobOutput{}
  631. req.Data = output
  632. return
  633. }
  634. // The ReadJob operation returns detailed information about a job.
  635. func (c *ElasticTranscoder) ReadJob(input *ReadJobInput) (*ReadJobOutput, error) {
  636. req, out := c.ReadJobRequest(input)
  637. err := req.Send()
  638. return out, err
  639. }
  640. const opReadPipeline = "ReadPipeline"
  641. // ReadPipelineRequest generates a "aws/request.Request" representing the
  642. // client's request for the ReadPipeline operation. The "output" return
  643. // value can be used to capture response data after the request's "Send" method
  644. // is called.
  645. //
  646. // Creating a request object using this method should be used when you want to inject
  647. // custom logic into the request's lifecycle using a custom handler, or if you want to
  648. // access properties on the request object before or after sending the request. If
  649. // you just want the service response, call the ReadPipeline method directly
  650. // instead.
  651. //
  652. // Note: You must call the "Send" method on the returned request object in order
  653. // to execute the request.
  654. //
  655. // // Example sending a request using the ReadPipelineRequest method.
  656. // req, resp := client.ReadPipelineRequest(params)
  657. //
  658. // err := req.Send()
  659. // if err == nil { // resp is now filled
  660. // fmt.Println(resp)
  661. // }
  662. //
  663. func (c *ElasticTranscoder) ReadPipelineRequest(input *ReadPipelineInput) (req *request.Request, output *ReadPipelineOutput) {
  664. op := &request.Operation{
  665. Name: opReadPipeline,
  666. HTTPMethod: "GET",
  667. HTTPPath: "/2012-09-25/pipelines/{Id}",
  668. }
  669. if input == nil {
  670. input = &ReadPipelineInput{}
  671. }
  672. req = c.newRequest(op, input, output)
  673. output = &ReadPipelineOutput{}
  674. req.Data = output
  675. return
  676. }
  677. // The ReadPipeline operation gets detailed information about a pipeline.
  678. func (c *ElasticTranscoder) ReadPipeline(input *ReadPipelineInput) (*ReadPipelineOutput, error) {
  679. req, out := c.ReadPipelineRequest(input)
  680. err := req.Send()
  681. return out, err
  682. }
  683. const opReadPreset = "ReadPreset"
  684. // ReadPresetRequest generates a "aws/request.Request" representing the
  685. // client's request for the ReadPreset operation. The "output" return
  686. // value can be used to capture response data after the request's "Send" method
  687. // is called.
  688. //
  689. // Creating a request object using this method should be used when you want to inject
  690. // custom logic into the request's lifecycle using a custom handler, or if you want to
  691. // access properties on the request object before or after sending the request. If
  692. // you just want the service response, call the ReadPreset method directly
  693. // instead.
  694. //
  695. // Note: You must call the "Send" method on the returned request object in order
  696. // to execute the request.
  697. //
  698. // // Example sending a request using the ReadPresetRequest method.
  699. // req, resp := client.ReadPresetRequest(params)
  700. //
  701. // err := req.Send()
  702. // if err == nil { // resp is now filled
  703. // fmt.Println(resp)
  704. // }
  705. //
  706. func (c *ElasticTranscoder) ReadPresetRequest(input *ReadPresetInput) (req *request.Request, output *ReadPresetOutput) {
  707. op := &request.Operation{
  708. Name: opReadPreset,
  709. HTTPMethod: "GET",
  710. HTTPPath: "/2012-09-25/presets/{Id}",
  711. }
  712. if input == nil {
  713. input = &ReadPresetInput{}
  714. }
  715. req = c.newRequest(op, input, output)
  716. output = &ReadPresetOutput{}
  717. req.Data = output
  718. return
  719. }
  720. // The ReadPreset operation gets detailed information about a preset.
  721. func (c *ElasticTranscoder) ReadPreset(input *ReadPresetInput) (*ReadPresetOutput, error) {
  722. req, out := c.ReadPresetRequest(input)
  723. err := req.Send()
  724. return out, err
  725. }
  726. const opTestRole = "TestRole"
  727. // TestRoleRequest generates a "aws/request.Request" representing the
  728. // client's request for the TestRole operation. The "output" return
  729. // value can be used to capture response data after the request's "Send" method
  730. // is called.
  731. //
  732. // Creating a request object using this method should be used when you want to inject
  733. // custom logic into the request's lifecycle using a custom handler, or if you want to
  734. // access properties on the request object before or after sending the request. If
  735. // you just want the service response, call the TestRole method directly
  736. // instead.
  737. //
  738. // Note: You must call the "Send" method on the returned request object in order
  739. // to execute the request.
  740. //
  741. // // Example sending a request using the TestRoleRequest method.
  742. // req, resp := client.TestRoleRequest(params)
  743. //
  744. // err := req.Send()
  745. // if err == nil { // resp is now filled
  746. // fmt.Println(resp)
  747. // }
  748. //
  749. func (c *ElasticTranscoder) TestRoleRequest(input *TestRoleInput) (req *request.Request, output *TestRoleOutput) {
  750. op := &request.Operation{
  751. Name: opTestRole,
  752. HTTPMethod: "POST",
  753. HTTPPath: "/2012-09-25/roleTests",
  754. }
  755. if input == nil {
  756. input = &TestRoleInput{}
  757. }
  758. req = c.newRequest(op, input, output)
  759. output = &TestRoleOutput{}
  760. req.Data = output
  761. return
  762. }
  763. // The TestRole operation tests the IAM role used to create the pipeline.
  764. //
  765. // The TestRole action lets you determine whether the IAM role you are using
  766. // has sufficient permissions to let Elastic Transcoder perform tasks associated
  767. // with the transcoding process. The action attempts to assume the specified
  768. // IAM role, checks read access to the input and output buckets, and tries to
  769. // send a test notification to Amazon SNS topics that you specify.
  770. func (c *ElasticTranscoder) TestRole(input *TestRoleInput) (*TestRoleOutput, error) {
  771. req, out := c.TestRoleRequest(input)
  772. err := req.Send()
  773. return out, err
  774. }
  775. const opUpdatePipeline = "UpdatePipeline"
  776. // UpdatePipelineRequest generates a "aws/request.Request" representing the
  777. // client's request for the UpdatePipeline operation. The "output" return
  778. // value can be used to capture response data after the request's "Send" method
  779. // is called.
  780. //
  781. // Creating a request object using this method should be used when you want to inject
  782. // custom logic into the request's lifecycle using a custom handler, or if you want to
  783. // access properties on the request object before or after sending the request. If
  784. // you just want the service response, call the UpdatePipeline method directly
  785. // instead.
  786. //
  787. // Note: You must call the "Send" method on the returned request object in order
  788. // to execute the request.
  789. //
  790. // // Example sending a request using the UpdatePipelineRequest method.
  791. // req, resp := client.UpdatePipelineRequest(params)
  792. //
  793. // err := req.Send()
  794. // if err == nil { // resp is now filled
  795. // fmt.Println(resp)
  796. // }
  797. //
  798. func (c *ElasticTranscoder) UpdatePipelineRequest(input *UpdatePipelineInput) (req *request.Request, output *UpdatePipelineOutput) {
  799. op := &request.Operation{
  800. Name: opUpdatePipeline,
  801. HTTPMethod: "PUT",
  802. HTTPPath: "/2012-09-25/pipelines/{Id}",
  803. }
  804. if input == nil {
  805. input = &UpdatePipelineInput{}
  806. }
  807. req = c.newRequest(op, input, output)
  808. output = &UpdatePipelineOutput{}
  809. req.Data = output
  810. return
  811. }
  812. // Use the UpdatePipeline operation to update settings for a pipeline. When
  813. // you change pipeline settings, your changes take effect immediately. Jobs
  814. // that you have already submitted and that Elastic Transcoder has not started
  815. // to process are affected in addition to jobs that you submit after you change
  816. // settings.
  817. func (c *ElasticTranscoder) UpdatePipeline(input *UpdatePipelineInput) (*UpdatePipelineOutput, error) {
  818. req, out := c.UpdatePipelineRequest(input)
  819. err := req.Send()
  820. return out, err
  821. }
  822. const opUpdatePipelineNotifications = "UpdatePipelineNotifications"
  823. // UpdatePipelineNotificationsRequest generates a "aws/request.Request" representing the
  824. // client's request for the UpdatePipelineNotifications operation. The "output" return
  825. // value can be used to capture response data after the request's "Send" method
  826. // is called.
  827. //
  828. // Creating a request object using this method should be used when you want to inject
  829. // custom logic into the request's lifecycle using a custom handler, or if you want to
  830. // access properties on the request object before or after sending the request. If
  831. // you just want the service response, call the UpdatePipelineNotifications method directly
  832. // instead.
  833. //
  834. // Note: You must call the "Send" method on the returned request object in order
  835. // to execute the request.
  836. //
  837. // // Example sending a request using the UpdatePipelineNotificationsRequest method.
  838. // req, resp := client.UpdatePipelineNotificationsRequest(params)
  839. //
  840. // err := req.Send()
  841. // if err == nil { // resp is now filled
  842. // fmt.Println(resp)
  843. // }
  844. //
  845. func (c *ElasticTranscoder) UpdatePipelineNotificationsRequest(input *UpdatePipelineNotificationsInput) (req *request.Request, output *UpdatePipelineNotificationsOutput) {
  846. op := &request.Operation{
  847. Name: opUpdatePipelineNotifications,
  848. HTTPMethod: "POST",
  849. HTTPPath: "/2012-09-25/pipelines/{Id}/notifications",
  850. }
  851. if input == nil {
  852. input = &UpdatePipelineNotificationsInput{}
  853. }
  854. req = c.newRequest(op, input, output)
  855. output = &UpdatePipelineNotificationsOutput{}
  856. req.Data = output
  857. return
  858. }
  859. // With the UpdatePipelineNotifications operation, you can update Amazon Simple
  860. // Notification Service (Amazon SNS) notifications for a pipeline.
  861. //
  862. // When you update notifications for a pipeline, Elastic Transcoder returns
  863. // the values that you specified in the request.
  864. func (c *ElasticTranscoder) UpdatePipelineNotifications(input *UpdatePipelineNotificationsInput) (*UpdatePipelineNotificationsOutput, error) {
  865. req, out := c.UpdatePipelineNotificationsRequest(input)
  866. err := req.Send()
  867. return out, err
  868. }
  869. const opUpdatePipelineStatus = "UpdatePipelineStatus"
  870. // UpdatePipelineStatusRequest generates a "aws/request.Request" representing the
  871. // client's request for the UpdatePipelineStatus operation. The "output" return
  872. // value can be used to capture response data after the request's "Send" method
  873. // is called.
  874. //
  875. // Creating a request object using this method should be used when you want to inject
  876. // custom logic into the request's lifecycle using a custom handler, or if you want to
  877. // access properties on the request object before or after sending the request. If
  878. // you just want the service response, call the UpdatePipelineStatus method directly
  879. // instead.
  880. //
  881. // Note: You must call the "Send" method on the returned request object in order
  882. // to execute the request.
  883. //
  884. // // Example sending a request using the UpdatePipelineStatusRequest method.
  885. // req, resp := client.UpdatePipelineStatusRequest(params)
  886. //
  887. // err := req.Send()
  888. // if err == nil { // resp is now filled
  889. // fmt.Println(resp)
  890. // }
  891. //
  892. func (c *ElasticTranscoder) UpdatePipelineStatusRequest(input *UpdatePipelineStatusInput) (req *request.Request, output *UpdatePipelineStatusOutput) {
  893. op := &request.Operation{
  894. Name: opUpdatePipelineStatus,
  895. HTTPMethod: "POST",
  896. HTTPPath: "/2012-09-25/pipelines/{Id}/status",
  897. }
  898. if input == nil {
  899. input = &UpdatePipelineStatusInput{}
  900. }
  901. req = c.newRequest(op, input, output)
  902. output = &UpdatePipelineStatusOutput{}
  903. req.Data = output
  904. return
  905. }
  906. // The UpdatePipelineStatus operation pauses or reactivates a pipeline, so that
  907. // the pipeline stops or restarts the processing of jobs.
  908. //
  909. // Changing the pipeline status is useful if you want to cancel one or more
  910. // jobs. You can't cancel jobs after Elastic Transcoder has started processing
  911. // them; if you pause the pipeline to which you submitted the jobs, you have
  912. // more time to get the job IDs for the jobs that you want to cancel, and to
  913. // send a CancelJob request.
  914. func (c *ElasticTranscoder) UpdatePipelineStatus(input *UpdatePipelineStatusInput) (*UpdatePipelineStatusOutput, error) {
  915. req, out := c.UpdatePipelineStatusRequest(input)
  916. err := req.Send()
  917. return out, err
  918. }
  919. // The file to be used as album art. There can be multiple artworks associated
  920. // with an audio file, to a maximum of 20.
  921. //
  922. // To remove artwork or leave the artwork empty, you can either set Artwork
  923. // to null, or set the Merge Policy to "Replace" and use an empty Artwork array.
  924. //
  925. // To pass through existing artwork unchanged, set the Merge Policy to "Prepend",
  926. // "Append", or "Fallback", and use an empty Artwork array.
  927. type Artwork struct {
  928. _ struct{} `type:"structure"`
  929. // The format of album art, if any. Valid formats are .jpg and .png.
  930. AlbumArtFormat *string `type:"string"`
  931. // The encryption settings, if any, that you want Elastic Transcoder to apply
  932. // to your artwork.
  933. Encryption *Encryption `type:"structure"`
  934. // The name of the file to be used as album art. To determine which Amazon S3
  935. // bucket contains the specified file, Elastic Transcoder checks the pipeline
  936. // specified by PipelineId; the InputBucket object in that pipeline identifies
  937. // the bucket.
  938. //
  939. // If the file name includes a prefix, for example, cooking/pie.jpg, include
  940. // the prefix in the key. If the file isn't in the specified bucket, Elastic
  941. // Transcoder returns an error.
  942. InputKey *string `min:"1" type:"string"`
  943. // The maximum height of the output album art in pixels. If you specify auto,
  944. // Elastic Transcoder uses 600 as the default value. If you specify a numeric
  945. // value, enter an even integer between 32 and 3072, inclusive.
  946. MaxHeight *string `type:"string"`
  947. // The maximum width of the output album art in pixels. If you specify auto,
  948. // Elastic Transcoder uses 600 as the default value. If you specify a numeric
  949. // value, enter an even integer between 32 and 4096, inclusive.
  950. MaxWidth *string `type:"string"`
  951. // When you set PaddingPolicy to Pad, Elastic Transcoder may add white bars
  952. // to the top and bottom and/or left and right sides of the output album art
  953. // to make the total size of the output art match the values that you specified
  954. // for MaxWidth and MaxHeight.
  955. PaddingPolicy *string `type:"string"`
  956. // Specify one of the following values to control scaling of the output album
  957. // art:
  958. //
  959. // Fit: Elastic Transcoder scales the output art so it matches the value
  960. // that you specified in either MaxWidth or MaxHeight without exceeding the
  961. // other value. Fill: Elastic Transcoder scales the output art so it matches
  962. // the value that you specified in either MaxWidth or MaxHeight and matches
  963. // or exceeds the other value. Elastic Transcoder centers the output art and
  964. // then crops it in the dimension (if any) that exceeds the maximum value.
  965. // Stretch: Elastic Transcoder stretches the output art to match the values
  966. // that you specified for MaxWidth and MaxHeight. If the relative proportions
  967. // of the input art and the output art are different, the output art will be
  968. // distorted. Keep: Elastic Transcoder does not scale the output art. If either
  969. // dimension of the input art exceeds the values that you specified for MaxWidth
  970. // and MaxHeight, Elastic Transcoder crops the output art. ShrinkToFit: Elastic
  971. // Transcoder scales the output art down so that its dimensions match the values
  972. // that you specified for at least one of MaxWidth and MaxHeight without exceeding
  973. // either value. If you specify this option, Elastic Transcoder does not scale
  974. // the art up. ShrinkToFill Elastic Transcoder scales the output art down so
  975. // that its dimensions match the values that you specified for at least one
  976. // of MaxWidth and MaxHeight without dropping below either value. If you specify
  977. // this option, Elastic Transcoder does not scale the art up.
  978. SizingPolicy *string `type:"string"`
  979. }
  980. // String returns the string representation
  981. func (s Artwork) String() string {
  982. return awsutil.Prettify(s)
  983. }
  984. // GoString returns the string representation
  985. func (s Artwork) GoString() string {
  986. return s.String()
  987. }
  988. // Validate inspects the fields of the type to determine if they are valid.
  989. func (s *Artwork) Validate() error {
  990. invalidParams := request.ErrInvalidParams{Context: "Artwork"}
  991. if s.InputKey != nil && len(*s.InputKey) < 1 {
  992. invalidParams.Add(request.NewErrParamMinLen("InputKey", 1))
  993. }
  994. if invalidParams.Len() > 0 {
  995. return invalidParams
  996. }
  997. return nil
  998. }
  999. // Options associated with your audio codec.
  1000. type AudioCodecOptions struct {
  1001. _ struct{} `type:"structure"`
  1002. // You can only choose an audio bit depth when you specify flac or pcm for the
  1003. // value of Audio:Codec.
  1004. //
  1005. // The bit depth of a sample is how many bits of information are included in
  1006. // the audio samples. The higher the bit depth, the better the audio, but the
  1007. // larger the file.
  1008. //
  1009. // Valid values are 16 and 24.
  1010. //
  1011. // The most common bit depth is 24.
  1012. BitDepth *string `type:"string"`
  1013. // You can only choose an audio bit order when you specify pcm for the value
  1014. // of Audio:Codec.
  1015. //
  1016. // The order the bits of a PCM sample are stored in.
  1017. //
  1018. // The supported value is LittleEndian.
  1019. BitOrder *string `type:"string"`
  1020. // You can only choose an audio profile when you specify AAC for the value of
  1021. // Audio:Codec.
  1022. //
  1023. // Specify the AAC profile for the output file. Elastic Transcoder supports
  1024. // the following profiles:
  1025. //
  1026. // auto: If you specify auto, Elastic Transcoder will select the profile based
  1027. // on the bit rate selected for the output file. AAC-LC: The most common AAC
  1028. // profile. Use for bit rates larger than 64 kbps. HE-AAC: Not supported on
  1029. // some older players and devices. Use for bit rates between 40 and 80 kbps.
  1030. // HE-AACv2: Not supported on some players and devices. Use for bit rates less
  1031. // than 48 kbps. All outputs in a Smooth playlist must have the same value
  1032. // for Profile.
  1033. //
  1034. // If you created any presets before AAC profiles were added, Elastic Transcoder
  1035. // automatically updated your presets to use AAC-LC. You can change the value
  1036. // as required.
  1037. Profile *string `type:"string"`
  1038. // You can only choose whether an audio sample is signed when you specify pcm
  1039. // for the value of Audio:Codec.
  1040. //
  1041. // Whether audio samples are represented with negative and positive numbers
  1042. // (signed) or only positive numbers (unsigned).
  1043. //
  1044. // The supported value is Signed.
  1045. Signed *string `type:"string"`
  1046. }
  1047. // String returns the string representation
  1048. func (s AudioCodecOptions) String() string {
  1049. return awsutil.Prettify(s)
  1050. }
  1051. // GoString returns the string representation
  1052. func (s AudioCodecOptions) GoString() string {
  1053. return s.String()
  1054. }
  1055. // Parameters required for transcoding audio.
  1056. type AudioParameters struct {
  1057. _ struct{} `type:"structure"`
  1058. // The method of organizing audio channels and tracks. Use Audio:Channels to
  1059. // specify the number of channels in your output, and Audio:AudioPackingMode
  1060. // to specify the number of tracks and their relation to the channels. If you
  1061. // do not specify an Audio:AudioPackingMode, Elastic Transcoder uses SingleTrack.
  1062. //
  1063. // The following values are valid:
  1064. //
  1065. // SingleTrack, OneChannelPerTrack, and OneChannelPerTrackWithMosTo8Tracks
  1066. //
  1067. // When you specify SingleTrack, Elastic Transcoder creates a single track
  1068. // for your output. The track can have up to eight channels. Use SingleTrack
  1069. // for all non-mxf containers.
  1070. //
  1071. // The outputs of SingleTrack for a specific channel value and inputs are as
  1072. // follows:
  1073. //
  1074. // 0 channels with any input: Audio omitted from the output 1, 2, or auto
  1075. // channels with no audio input: Audio omitted from the output 1 channel with
  1076. // any input with audio: One track with one channel, downmixed if necessary
  1077. // 2 channels with one track with one channel: One track with two identical
  1078. // channels 2 or auto channels with two tracks with one channel each: One track
  1079. // with two channels 2 or auto channels with one track with two channels: One
  1080. // track with two channels 2 channels with one track with multiple channels:
  1081. // One track with two channels auto channels with one track with one channel:
  1082. // One track with one channel auto channels with one track with multiple channels:
  1083. // One track with multiple channels When you specify OneChannelPerTrack, Elastic
  1084. // Transcoder creates a new track for every channel in your output. Your output
  1085. // can have up to eight single-channel tracks.
  1086. //
  1087. // The outputs of OneChannelPerTrack for a specific channel value and inputs
  1088. // are as follows:
  1089. //
  1090. // 0 channels with any input: Audio omitted from the output 1, 2, or auto
  1091. // channels with no audio input: Audio omitted from the output 1 channel with
  1092. // any input with audio: One track with one channel, downmixed if necessary
  1093. // 2 channels with one track with one channel: Two tracks with one identical
  1094. // channel each 2 or auto channels with two tracks with one channel each: Two
  1095. // tracks with one channel each 2 or auto channels with one track with two
  1096. // channels: Two tracks with one channel each 2 channels with one track with
  1097. // multiple channels: Two tracks with one channel each auto channels with one
  1098. // track with one channel: One track with one channel auto channels with one
  1099. // track with multiple channels: Up to eight tracks with one channel each When
  1100. // you specify OneChannelPerTrackWithMosTo8Tracks, Elastic Transcoder creates
  1101. // eight single-channel tracks for your output. All tracks that do not contain
  1102. // audio data from an input channel are MOS, or Mit Out Sound, tracks.
  1103. //
  1104. // The outputs of OneChannelPerTrackWithMosTo8Tracks for a specific channel
  1105. // value and inputs are as follows:
  1106. //
  1107. // 0 channels with any input: Audio omitted from the output 1, 2, or auto
  1108. // channels with no audio input: Audio omitted from the output 1 channel with
  1109. // any input with audio: One track with one channel, downmixed if necessary,
  1110. // plus six MOS tracks 2 channels with one track with one channel: Two tracks
  1111. // with one identical channel each, plus six MOS tracks 2 or auto channels
  1112. // with two tracks with one channel each: Two tracks with one channel each,
  1113. // plus six MOS tracks 2 or auto channels with one track with two channels:
  1114. // Two tracks with one channel each, plus six MOS tracks 2 channels with one
  1115. // track with multiple channels: Two tracks with one channel each, plus six
  1116. // MOS tracks auto channels with one track with one channel: One track with
  1117. // one channel, plus seven MOS tracks auto channels with one track with multiple
  1118. // channels: Up to eight tracks with one channel each, plus MOS tracks until
  1119. // there are eight tracks in all
  1120. AudioPackingMode *string `type:"string"`
  1121. // The bit rate of the audio stream in the output file, in kilobits/second.
  1122. // Enter an integer between 64 and 320, inclusive.
  1123. BitRate *string `type:"string"`
  1124. // The number of audio channels in the output file. The following values are
  1125. // valid:
  1126. //
  1127. // auto, 0, 1, 2
  1128. //
  1129. // One channel carries the information played by a single speaker. For example,
  1130. // a stereo track with two channels sends one channel to the left speaker, and
  1131. // the other channel to the right speaker. The output channels are organized
  1132. // into tracks. If you want Elastic Transcoder to automatically detect the number
  1133. // of audio channels in the input file and use that value for the output file,
  1134. // select auto.
  1135. //
  1136. // The output of a specific channel value and inputs are as follows:
  1137. //
  1138. // auto channel specified, with any input: Pass through up to eight input
  1139. // channels. 0 channels specified, with any input: Audio omitted from the output.
  1140. // 1 channel specified, with at least one input channel: Mono sound. 2 channels
  1141. // specified, with any input: Two identical mono channels or stereo. For more
  1142. // information about tracks, see Audio:AudioPackingMode. For more information
  1143. // about how Elastic Transcoder organizes channels and tracks, see Audio:AudioPackingMode.
  1144. Channels *string `type:"string"`
  1145. // The audio codec for the output file. Valid values include aac, flac, mp2,
  1146. // mp3, pcm, and vorbis.
  1147. Codec *string `type:"string"`
  1148. // If you specified AAC for Audio:Codec, this is the AAC compression profile
  1149. // to use. Valid values include:
  1150. //
  1151. // auto, AAC-LC, HE-AAC, HE-AACv2
  1152. //
  1153. // If you specify auto, Elastic Transcoder chooses a profile based on the bit
  1154. // rate of the output file.
  1155. CodecOptions *AudioCodecOptions `type:"structure"`
  1156. // The sample rate of the audio stream in the output file, in Hertz. Valid values
  1157. // include:
  1158. //
  1159. // auto, 22050, 32000, 44100, 48000, 96000
  1160. //
  1161. // If you specify auto, Elastic Transcoder automatically detects the sample
  1162. // rate.
  1163. SampleRate *string `type:"string"`
  1164. }
  1165. // String returns the string representation
  1166. func (s AudioParameters) String() string {
  1167. return awsutil.Prettify(s)
  1168. }
  1169. // GoString returns the string representation
  1170. func (s AudioParameters) GoString() string {
  1171. return s.String()
  1172. }
  1173. // The CancelJobRequest structure.
  1174. type CancelJobInput struct {
  1175. _ struct{} `type:"structure"`
  1176. // The identifier of the job that you want to cancel.
  1177. //
  1178. // To get a list of the jobs (including their jobId) that have a status of
  1179. // Submitted, use the ListJobsByStatus API action.
  1180. Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
  1181. }
  1182. // String returns the string representation
  1183. func (s CancelJobInput) String() string {
  1184. return awsutil.Prettify(s)
  1185. }
  1186. // GoString returns the string representation
  1187. func (s CancelJobInput) GoString() string {
  1188. return s.String()
  1189. }
  1190. // Validate inspects the fields of the type to determine if they are valid.
  1191. func (s *CancelJobInput) Validate() error {
  1192. invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
  1193. if s.Id == nil {
  1194. invalidParams.Add(request.NewErrParamRequired("Id"))
  1195. }
  1196. if invalidParams.Len() > 0 {
  1197. return invalidParams
  1198. }
  1199. return nil
  1200. }
  1201. // The response body contains a JSON object. If the job is successfully canceled,
  1202. // the value of Success is true.
  1203. type CancelJobOutput struct {
  1204. _ struct{} `type:"structure"`
  1205. }
  1206. // String returns the string representation
  1207. func (s CancelJobOutput) String() string {
  1208. return awsutil.Prettify(s)
  1209. }
  1210. // GoString returns the string representation
  1211. func (s CancelJobOutput) GoString() string {
  1212. return s.String()
  1213. }
  1214. // The file format of the output captions. If you leave this value blank, Elastic
  1215. // Transcoder returns an error.
  1216. type CaptionFormat struct {
  1217. _ struct{} `type:"structure"`
  1218. // The encryption settings, if any, that you want Elastic Transcoder to apply
  1219. // to your caption formats.
  1220. Encryption *Encryption `type:"structure"`
  1221. // The format you specify determines whether Elastic Transcoder generates an
  1222. // embedded or sidecar caption for this output.
  1223. //
  1224. // Valid Embedded Caption Formats:
  1225. //
  1226. // for FLAC: None
  1227. //
  1228. // For MP3: None
  1229. //
  1230. // For MP4: mov-text
  1231. //
  1232. // For MPEG-TS: None
  1233. //
  1234. // For ogg: None
  1235. //
  1236. // For webm: None
  1237. //
  1238. // Valid Sidecar Caption Formats: Elastic Transcoder supports dfxp (first
  1239. // div element only), scc, srt, and webvtt. If you want ttml or smpte-tt compatible
  1240. // captions, specify dfxp as your output format.
  1241. //
  1242. // For FMP4: dfxp
  1243. //
  1244. // Non-FMP4 outputs: All sidecar types
  1245. //
  1246. // fmp4 captions have an extension of .ismt
  1247. Format *string `type:"string"`
  1248. // The prefix for caption filenames, in the form description-{language}, where:
  1249. //
  1250. // description is a description of the video. {language} is a literal value
  1251. // that Elastic Transcoder replaces with the two- or three-letter code for the
  1252. // language of the caption in the output file names. If you don't include {language}
  1253. // in the file name pattern, Elastic Transcoder automatically appends "{language}"
  1254. // to the value that you specify for the description. In addition, Elastic Transcoder
  1255. // automatically appends the count to the end of the segment files.
  1256. //
  1257. // For example, suppose you're transcoding into srt format. When you enter
  1258. // "Sydney-{language}-sunrise", and the language of the captions is English
  1259. // (en), the name of the first caption file will be Sydney-en-sunrise00000.srt.
  1260. Pattern *string `type:"string"`
  1261. }
  1262. // String returns the string representation
  1263. func (s CaptionFormat) String() string {
  1264. return awsutil.Prettify(s)
  1265. }
  1266. // GoString returns the string representation
  1267. func (s CaptionFormat) GoString() string {
  1268. return s.String()
  1269. }
  1270. // A source file for the input sidecar captions used during the transcoding
  1271. // process.
  1272. type CaptionSource struct {
  1273. _ struct{} `type:"structure"`
  1274. // The encryption settings, if any, that you want Elastic Transcoder to apply
  1275. // to your caption sources.
  1276. Encryption *Encryption `type:"structure"`
  1277. // The name of the sidecar caption file that you want Elastic Transcoder to
  1278. // include in the output file.
  1279. Key *string `min:"1" type:"string"`
  1280. // The label of the caption shown in the player when choosing a language. We
  1281. // recommend that you put the caption language name here, in the language of
  1282. // the captions.
  1283. Label *string `min:"1" type:"string"`
  1284. // A string that specifies the language of the caption. Specify this as one
  1285. // of:
  1286. //
  1287. // 2-character ISO 639-1 code
  1288. //
  1289. // 3-character ISO 639-2 code
  1290. //
  1291. // For more information on ISO language codes and language names, see the
  1292. // List of ISO 639-1 codes.
  1293. Language *string `min:"1" type:"string"`
  1294. // For clip generation or captions that do not start at the same time as the
  1295. // associated video file, the TimeOffset tells Elastic Transcoder how much of
  1296. // the video to encode before including captions.
  1297. //
  1298. // Specify the TimeOffset in the form [+-]SS.sss or [+-]HH:mm:SS.ss.
  1299. TimeOffset *string `type:"string"`
  1300. }
  1301. // String returns the string representation
  1302. func (s CaptionSource) String() string {
  1303. return awsutil.Prettify(s)
  1304. }
  1305. // GoString returns the string representation
  1306. func (s CaptionSource) GoString() string {
  1307. return s.String()
  1308. }
  1309. // Validate inspects the fields of the type to determine if they are valid.
  1310. func (s *CaptionSource) Validate() error {
  1311. invalidParams := request.ErrInvalidParams{Context: "CaptionSource"}
  1312. if s.Key != nil && len(*s.Key) < 1 {
  1313. invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  1314. }
  1315. if s.Label != nil && len(*s.Label) < 1 {
  1316. invalidParams.Add(request.NewErrParamMinLen("Label", 1))
  1317. }
  1318. if s.Language != nil && len(*s.Language) < 1 {
  1319. invalidParams.Add(request.NewErrParamMinLen("Language", 1))
  1320. }
  1321. if invalidParams.Len() > 0 {
  1322. return invalidParams
  1323. }
  1324. return nil
  1325. }
  1326. // The captions to be created, if any.
  1327. type Captions struct {
  1328. _ struct{} `type:"structure"`
  1329. // The array of file formats for the output captions. If you leave this value
  1330. // blank, Elastic Transcoder returns an error.
  1331. CaptionFormats []*CaptionFormat `type:"list"`
  1332. // Source files for the input sidecar captions used during the transcoding process.
  1333. // To omit all sidecar captions, leave CaptionSources blank.
  1334. CaptionSources []*CaptionSource `type:"list"`
  1335. // A policy that determines how Elastic Transcoder handles the existence of
  1336. // multiple captions.
  1337. //
  1338. // MergeOverride: Elastic Transcoder transcodes both embedded and sidecar
  1339. // captions into outputs. If captions for a language are embedded in the input
  1340. // file and also appear in a sidecar file, Elastic Transcoder uses the sidecar
  1341. // captions and ignores the embedded captions for that language.
  1342. //
  1343. // MergeRetain: Elastic Transcoder transcodes both embedded and sidecar captions
  1344. // into outputs. If captions for a language are embedded in the input file and
  1345. // also appear in a sidecar file, Elastic Transcoder uses the embedded captions
  1346. // and ignores the sidecar captions for that language. If CaptionSources is
  1347. // empty, Elastic Transcoder omits all sidecar captions from the output files.
  1348. //
  1349. // Override: Elastic Transcoder transcodes only the sidecar captions that you
  1350. // specify in CaptionSources.
  1351. //
  1352. // MergePolicy cannot be null.
  1353. MergePolicy *string `type:"string"`
  1354. }
  1355. // String returns the string representation
  1356. func (s Captions) String() string {
  1357. return awsutil.Prettify(s)
  1358. }
  1359. // GoString returns the string representation
  1360. func (s Captions) GoString() string {
  1361. return s.String()
  1362. }
  1363. // Validate inspects the fields of the type to determine if they are valid.
  1364. func (s *Captions) Validate() error {
  1365. invalidParams := request.ErrInvalidParams{Context: "Captions"}
  1366. if s.CaptionSources != nil {
  1367. for i, v := range s.CaptionSources {
  1368. if v == nil {
  1369. continue
  1370. }
  1371. if err := v.Validate(); err != nil {
  1372. invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CaptionSources", i), err.(request.ErrInvalidParams))
  1373. }
  1374. }
  1375. }
  1376. if invalidParams.Len() > 0 {
  1377. return invalidParams
  1378. }
  1379. return nil
  1380. }
  1381. // Settings for one clip in a composition. All jobs in a playlist must have
  1382. // the same clip settings.
  1383. type Clip struct {
  1384. _ struct{} `type:"structure"`
  1385. // Settings that determine when a clip begins and how long it lasts.
  1386. TimeSpan *TimeSpan `type:"structure"`
  1387. }
  1388. // String returns the string representation
  1389. func (s Clip) String() string {
  1390. return awsutil.Prettify(s)
  1391. }
  1392. // GoString returns the string representation
  1393. func (s Clip) GoString() string {
  1394. return s.String()
  1395. }
  1396. // The CreateJobRequest structure.
  1397. type CreateJobInput struct {
  1398. _ struct{} `type:"structure"`
  1399. // A section of the request body that provides information about the file that
  1400. // is being transcoded.
  1401. Input *JobInput `type:"structure" required:"true"`
  1402. // The CreateJobOutput structure.
  1403. Output *CreateJobOutput `type:"structure"`
  1404. // The value, if any, that you want Elastic Transcoder to prepend to the names
  1405. // of all files that this job creates, including output files, thumbnails, and
  1406. // playlists.
  1407. OutputKeyPrefix *string `min:"1" type:"string"`
  1408. // A section of the request body that provides information about the transcoded
  1409. // (target) files. We recommend that you use the Outputs syntax instead of the
  1410. // Output syntax.
  1411. Outputs []*CreateJobOutput `type:"list"`
  1412. // The Id of the pipeline that you want Elastic Transcoder to use for transcoding.
  1413. // The pipeline determines several settings, including the Amazon S3 bucket
  1414. // from which Elastic Transcoder gets the files to transcode and the bucket
  1415. // into which Elastic Transcoder puts the transcoded files.
  1416. PipelineId *string `type:"string" required:"true"`
  1417. // If you specify a preset in PresetId for which the value of Container is fmp4
  1418. // (Fragmented MP4) or ts (MPEG-TS), Playlists contains information about the
  1419. // master playlists that you want Elastic Transcoder to create.
  1420. //
  1421. // The maximum number of master playlists in a job is 30.
  1422. Playlists []*CreateJobPlaylist `type:"list"`
  1423. // User-defined metadata that you want to associate with an Elastic Transcoder
  1424. // job. You specify metadata in key/value pairs, and you can add up to 10 key/value
  1425. // pairs per job. Elastic Transcoder does not guarantee that key/value pairs
  1426. // will be returned in the same order in which you specify them.
  1427. UserMetadata map[string]*string `type:"map"`
  1428. }
  1429. // String returns the string representation
  1430. func (s CreateJobInput) String() string {
  1431. return awsutil.Prettify(s)
  1432. }
  1433. // GoString returns the string representation
  1434. func (s CreateJobInput) GoString() string {
  1435. return s.String()
  1436. }
  1437. // Validate inspects the fields of the type to determine if they are valid.
  1438. func (s *CreateJobInput) Validate() error {
  1439. invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
  1440. if s.Input == nil {
  1441. invalidParams.Add(request.NewErrParamRequired("Input"))
  1442. }
  1443. if s.OutputKeyPrefix != nil && len(*s.OutputKeyPrefix) < 1 {
  1444. invalidParams.Add(request.NewErrParamMinLen("OutputKeyPrefix", 1))
  1445. }
  1446. if s.PipelineId == nil {
  1447. invalidParams.Add(request.NewErrParamRequired("PipelineId"))
  1448. }
  1449. if s.Input != nil {
  1450. if err := s.Input.Validate(); err != nil {
  1451. invalidParams.AddNested("Input", err.(request.ErrInvalidParams))
  1452. }
  1453. }
  1454. if s.Output != nil {
  1455. if err := s.Output.Validate(); err != nil {
  1456. invalidParams.AddNested("Output", err.(request.ErrInvalidParams))
  1457. }
  1458. }
  1459. if s.Outputs != nil {
  1460. for i, v := range s.Outputs {
  1461. if v == nil {
  1462. continue
  1463. }
  1464. if err := v.Validate(); err != nil {
  1465. invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Outputs", i), err.(request.ErrInvalidParams))
  1466. }
  1467. }
  1468. }
  1469. if s.Playlists != nil {
  1470. for i, v := range s.Playlists {
  1471. if v == nil {
  1472. continue
  1473. }
  1474. if err := v.Validate(); err != nil {
  1475. invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Playlists", i), err.(request.ErrInvalidParams))
  1476. }
  1477. }
  1478. }
  1479. if invalidParams.Len() > 0 {
  1480. return invalidParams
  1481. }
  1482. return nil
  1483. }
  1484. // The CreateJobOutput structure.
  1485. type CreateJobOutput struct {
  1486. _ struct{} `type:"structure"`
  1487. // Information about the album art that you want Elastic Transcoder to add to
  1488. // the file during transcoding. You can specify up to twenty album artworks
  1489. // for each output. Settings for each artwork must be defined in the job for
  1490. // the current output.
  1491. AlbumArt *JobAlbumArt `type:"structure"`
  1492. // You can configure Elastic Transcoder to transcode captions, or subtitles,
  1493. // from one format to another. All captions must be in UTF-8. Elastic Transcoder
  1494. // supports two types of captions:
  1495. //
  1496. // Embedded: Embedded captions are included in the same file as the audio
  1497. // and video. Elastic Transcoder supports only one embedded caption per language,
  1498. // to a maximum of 300 embedded captions per file.
  1499. //
  1500. // Valid input values include: CEA-608 (EIA-608, first non-empty channel only),
  1501. // CEA-708 (EIA-708, first non-empty channel only), and mov-text
  1502. //
  1503. // Valid outputs include: mov-text
  1504. //
  1505. // Elastic Transcoder supports a maximum of one embedded format per output.
  1506. //
  1507. // Sidecar: Sidecar captions are kept in a separate metadata file from the
  1508. // audio and video data. Sidecar captions require a player that is capable of
  1509. // understanding the relationship between the video file and the sidecar file.
  1510. // Elastic Transcoder supports only one sidecar caption per language, to a maximum
  1511. // of 20 sidecar captions per file.
  1512. //
  1513. // Valid input values include: dfxp (first div element only), ebu-tt, scc,
  1514. // smpt, srt, ttml (first div element only), and webvtt
  1515. //
  1516. // Valid outputs include: dfxp (first div element only), scc, srt, and webvtt.
  1517. //
  1518. // If you want ttml or smpte-tt compatible captions, specify dfxp as your
  1519. // output format.
  1520. //
  1521. // Elastic Transcoder does not support OCR (Optical Character Recognition),
  1522. // does not accept pictures as a valid input for captions, and is not available
  1523. // for audio-only transcoding. Elastic Transcoder does not preserve text formatting
  1524. // (for example, italics) during the transcoding process.
  1525. //
  1526. // To remove captions or leave the captions empty, set Captions to null. To
  1527. // pass through existing captions unchanged, set the MergePolicy to MergeRetain,
  1528. // and pass in a null CaptionSources array.
  1529. //
  1530. // For more information on embedded files, see the Subtitles Wikipedia page.
  1531. //
  1532. // For more information on sidecar files, see the Extensible Metadata Platform
  1533. // and Sidecar file Wikipedia pages.
  1534. Captions *Captions `type:"structure"`
  1535. // You can create an output file that contains an excerpt from the input file.
  1536. // This excerpt, called a clip, can come from the beginning, middle, or end
  1537. // of the file. The Composition object contains settings for the clips that
  1538. // make up an output file. For the current release, you can only specify settings
  1539. // for a single clip per output file. The Composition object cannot be null.
  1540. Composition []*Clip `type:"list"`
  1541. // You can specify encryption settings for any output files that you want to
  1542. // use for a transcoding job. This includes the output file and any watermarks,
  1543. // thumbnails, album art, or captions that you want to use. You must specify
  1544. // encryption settings for each file individually.
  1545. Encryption *Encryption `type:"structure"`
  1546. // The name to assign to the transcoded file. Elastic Transcoder saves the file
  1547. // in the Amazon S3 bucket specified by the OutputBucket object in the pipeline
  1548. // that is specified by the pipeline ID. If a file with the specified name already
  1549. // exists in the output bucket, the job fails.
  1550. Key *string `min:"1" type:"string"`
  1551. // The Id of the preset to use for this job. The preset determines the audio,
  1552. // video, and thumbnail settings that Elastic Transcoder uses for transcoding.
  1553. PresetId *string `type:"string"`
  1554. // The number of degrees clockwise by which you want Elastic Transcoder to rotate
  1555. // the output relative to the input. Enter one of the following values: auto,
  1556. // 0, 90, 180, 270. The value auto generally works only if the file that you're
  1557. // transcoding contains rotation metadata.
  1558. Rotate *string `type:"string"`
  1559. // (Outputs in Fragmented MP4 or MPEG-TS format only.If you specify a preset
  1560. // in PresetId for which the value of Container is fmp4 (Fragmented MP4) or
  1561. // ts (MPEG-TS), SegmentDuration is the target maximum duration of each segment
  1562. // in seconds. For HLSv3 format playlists, each media segment is stored in a
  1563. // separate .ts file. For HLSv4 and Smooth playlists, all media segments for
  1564. // an output are stored in a single file. Each segment is approximately the
  1565. // length of the SegmentDuration, though individual segments might be shorter
  1566. // or longer.
  1567. //
  1568. // The range of valid values is 1 to 60 seconds. If the duration of the video
  1569. // is not evenly divisible by SegmentDuration, the duration of the last segment
  1570. // is the remainder of total length/SegmentDuration.
  1571. //
  1572. // Elastic Transcoder creates an output-specific playlist for each output HLS
  1573. // output that you specify in OutputKeys. To add an output to the master playlist
  1574. // for this job, include it in the OutputKeys of the associated playlist.
  1575. SegmentDuration *string `type:"string"`
  1576. // The encryption settings, if any, that you want Elastic Transcoder to apply
  1577. // to your thumbnail.
  1578. ThumbnailEncryption *Encryption `type:"structure"`
  1579. // Whether you want Elastic Transcoder to create thumbnails for your videos
  1580. // and, if so, how you want Elastic Transcoder to name the files.
  1581. //
  1582. // If you don't want Elastic Transcoder to create thumbnails, specify "".
  1583. //
  1584. // If you do want Elastic Transcoder to create thumbnails, specify the information
  1585. // that you want to include in the file name for each thumbnail. You can specify
  1586. // the following values in any sequence:
  1587. //
  1588. // {count} (Required): If you want to create thumbnails, you must include
  1589. // {count} in the ThumbnailPattern object. Wherever you specify {count}, Elastic
  1590. // Transcoder adds a five-digit sequence number (beginning with 00001) to thumbnail
  1591. // file names. The number indicates where a given thumbnail appears in the sequence
  1592. // of thumbnails for a transcoded file.
  1593. //
  1594. // If you specify a literal value and/or {resolution} but you omit {count},
  1595. // Elastic Transcoder returns a validation error and does not create the job.
  1596. // Literal values (Optional): You can specify literal values anywhere in
  1597. // the ThumbnailPattern object. For example, you can include them as a file
  1598. // name prefix or as a delimiter between {resolution} and {count}.
  1599. //
  1600. // {resolution} (Optional): If you want Elastic Transcoder to include the
  1601. // resolution in the file name, include {resolution} in the ThumbnailPattern
  1602. // object.
  1603. //
  1604. // When creating thumbnails, Elastic Transcoder automatically saves the files
  1605. // in the format (.jpg or .png) that appears in the preset that you specified
  1606. // in the PresetID value of CreateJobOutput. Elastic Transcoder also appends
  1607. // the applicable file name extension.
  1608. ThumbnailPattern *string `type:"string"`
  1609. // Information about the watermarks that you want Elastic Transcoder to add
  1610. // to the video during transcoding. You can specify up to four watermarks for
  1611. // each output. Settings for each watermark must be defined in the preset for
  1612. // the current output.
  1613. Watermarks []*JobWatermark `type:"list"`
  1614. }
  1615. // String returns the string representation
  1616. func (s CreateJobOutput) String() string {
  1617. return awsutil.Prettify(s)
  1618. }
  1619. // GoString returns the string representation
  1620. func (s CreateJobOutput) GoString() string {
  1621. return s.String()
  1622. }
  1623. // Validate inspects the fields of the type to determine if they are valid.
  1624. func (s *CreateJobOutput) Validate() error {
  1625. invalidParams := request.ErrInvalidParams{Context: "CreateJobOutput"}
  1626. if s.Key != nil && len(*s.Key) < 1 {
  1627. invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  1628. }
  1629. if s.AlbumArt != nil {
  1630. if err := s.AlbumArt.Validate(); err != nil {
  1631. invalidParams.AddNested("AlbumArt", err.(request.ErrInvalidParams))
  1632. }
  1633. }
  1634. if s.Captions != nil {
  1635. if err := s.Captions.Validate(); err != nil {
  1636. invalidParams.AddNested("Captions", err.(request.ErrInvalidParams))
  1637. }
  1638. }
  1639. if s.Watermarks != nil {
  1640. for i, v := range s.Watermarks {
  1641. if v == nil {
  1642. continue
  1643. }
  1644. if err := v.Validate(); err != nil {
  1645. invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Watermarks", i), err.(request.ErrInvalidParams))
  1646. }
  1647. }
  1648. }
  1649. if invalidParams.Len() > 0 {
  1650. return invalidParams
  1651. }
  1652. return nil
  1653. }
  1654. // Information about the master playlist.
  1655. type CreateJobPlaylist struct {
  1656. _ struct{} `type:"structure"`
  1657. // The format of the output playlist. Valid formats include HLSv3, HLSv4, and
  1658. // Smooth.
  1659. Format *string `type:"string"`
  1660. // The HLS content protection settings, if any, that you want Elastic Transcoder
  1661. // to apply to the output files associated with this playlist.
  1662. HlsContentProtection *HlsContentProtection `type:"structure"`
  1663. // The name that you want Elastic Transcoder to assign to the master playlist,
  1664. // for example, nyc-vacation.m3u8. If the name includes a / character, the section
  1665. // of the name before the last / must be identical for all Name objects. If
  1666. // you create more than one master playlist, the values of all Name objects
  1667. // must be unique.
  1668. //
  1669. // Note: Elastic Transcoder automatically appends the relevant file extension
  1670. // to the file name (.m3u8 for HLSv3 and HLSv4 playlists, and .ism and .ismc
  1671. // for Smooth playlists). If you include a file extension in Name, the file
  1672. // name will have two extensions.
  1673. Name *string `min:"1" type:"string"`
  1674. // For each output in this job that you want to include in a master playlist,
  1675. // the value of the Outputs:Key object.
  1676. //
  1677. // If your output is not HLS or does not have a segment duration set, the
  1678. // name of the output file is a concatenation of OutputKeyPrefix and Outputs:Key:
  1679. //
  1680. // OutputKeyPrefixOutputs:Key
  1681. //
  1682. // If your output is HLSv3 and has a segment duration set, or is not included
  1683. // in a playlist, Elastic Transcoder creates an output playlist file with a
  1684. // file extension of .m3u8, and a series of .ts files that include a five-digit
  1685. // sequential counter beginning with 00000:
  1686. //
  1687. // OutputKeyPrefixOutputs:Key.m3u8
  1688. //
  1689. // OutputKeyPrefixOutputs:Key00000.ts
  1690. //
  1691. // If your output is HLSv4, has a segment duration set, and is included in
  1692. // an HLSv4 playlist, Elastic Transcoder creates an output playlist file with
  1693. // a file extension of _v4.m3u8. If the output is video, Elastic Transcoder
  1694. // also creates an output file with an extension of _iframe.m3u8:
  1695. //
  1696. // OutputKeyPrefixOutputs:Key_v4.m3u8
  1697. //
  1698. // OutputKeyPrefixOutputs:Key_iframe.m3u8
  1699. //
  1700. // OutputKeyPrefixOutputs:Key.ts
  1701. //
  1702. // Elastic Transcoder automatically appends the relevant file extension to
  1703. // the file name. If you include a file extension in Output Key, the file name
  1704. // will have two extensions.
  1705. //
  1706. // If you include more than one output in a playlist, any segment duration
  1707. // settings, clip settings, or caption settings must be the same for all outputs
  1708. // in the playlist. For Smooth playlists, the Audio:Profile, Video:Profile,
  1709. // and Video:FrameRate to Video:KeyframesMaxDist ratio must be the same for
  1710. // all outputs.
  1711. OutputKeys []*string `type:"list"`
  1712. // The DRM settings, if any, that you want Elastic Transcoder to apply to the
  1713. // output files associated with this playlist.
  1714. PlayReadyDrm *PlayReadyDrm `type:"structure"`
  1715. }
  1716. // String returns the string representation
  1717. func (s CreateJobPlaylist) String() string {
  1718. return awsutil.Prettify(s)
  1719. }
  1720. // GoString returns the string representation
  1721. func (s CreateJobPlaylist) GoString() string {
  1722. return s.String()
  1723. }
  1724. // Validate inspects the fields of the type to determine if they are valid.
  1725. func (s *CreateJobPlaylist) Validate() error {
  1726. invalidParams := request.ErrInvalidParams{Context: "CreateJobPlaylist"}
  1727. if s.Name != nil && len(*s.Name) < 1 {
  1728. invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  1729. }
  1730. if s.PlayReadyDrm != nil {
  1731. if err := s.PlayReadyDrm.Validate(); err != nil {
  1732. invalidParams.AddNested("PlayReadyDrm", err.(request.ErrInvalidParams))
  1733. }
  1734. }
  1735. if invalidParams.Len() > 0 {
  1736. return invalidParams
  1737. }
  1738. return nil
  1739. }
  1740. // The CreateJobResponse structure.
  1741. type CreateJobResponse struct {
  1742. _ struct{} `type:"structure"`
  1743. // A section of the response body that provides information about the job that
  1744. // is created.
  1745. Job *Job `type:"structure"`
  1746. }
  1747. // String returns the string representation
  1748. func (s CreateJobResponse) String() string {
  1749. return awsutil.Prettify(s)
  1750. }
  1751. // GoString returns the string representation
  1752. func (s CreateJobResponse) GoString() string {
  1753. return s.String()
  1754. }
  1755. // The CreatePipelineRequest structure.
  1756. type CreatePipelineInput struct {
  1757. _ struct{} `type:"structure"`
  1758. // The AWS Key Management Service (AWS KMS) key that you want to use with this
  1759. // pipeline.
  1760. //
  1761. // If you use either S3 or S3-AWS-KMS as your Encryption:Mode, you don't need
  1762. // to provide a key with your job because a default key, known as an AWS-KMS
  1763. // key, is created for you automatically. You need to provide an AWS-KMS key
  1764. // only if you want to use a non-default AWS-KMS key, or if you are using an
  1765. // Encryption:Mode of AES-PKCS7, AES-CTR, or AES-GCM.
  1766. AwsKmsKeyArn *string `type:"string"`
  1767. // The optional ContentConfig object specifies information about the Amazon
  1768. // S3 bucket in which you want Elastic Transcoder to save transcoded files and
  1769. // playlists: which bucket to use, which users you want to have access to the
  1770. // files, the type of access you want users to have, and the storage class that
  1771. // you want to assign to the files.
  1772. //
  1773. // If you specify values for ContentConfig, you must also specify values for
  1774. // ThumbnailConfig.
  1775. //
  1776. // If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket
  1777. // object.
  1778. //
  1779. // Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save
  1780. // transcoded files and playlists. Permissions (Optional): The Permissions object
  1781. // specifies which users you want to have access to transcoded files and the
  1782. // type of access you want them to have. You can grant permissions to a maximum
  1783. // of 30 users and/or predefined Amazon S3 groups. Grantee Type: Specify the
  1784. // type of value that appears in the Grantee object: Canonical: The value in
  1785. // the Grantee object is either the canonical user ID for an AWS account or
  1786. // an origin access identity for an Amazon CloudFront distribution. For more
  1787. // information about canonical user IDs, see Access Control List (ACL) Overview
  1788. // in the Amazon Simple Storage Service Developer Guide. For more information
  1789. // about using CloudFront origin access identities to require that users use
  1790. // CloudFront URLs instead of Amazon S3 URLs, see Using an Origin Access Identity
  1791. // to Restrict Access to Your Amazon S3 Content. A canonical user ID is not
  1792. // the same as an AWS account number. Email: The value in the Grantee object
  1793. // is the registered email address of an AWS account. Group: The value in the
  1794. // Grantee object is one of the following predefined Amazon S3 groups: AllUsers,
  1795. // AuthenticatedUsers, or LogDelivery. Grantee: The AWS user or group that
  1796. // you want to have access to transcoded files and playlists. To identify the
  1797. // user or group, you can specify the canonical user ID for an AWS account,
  1798. // an origin access identity for a CloudFront distribution, the registered email
  1799. // address of an AWS account, or a predefined Amazon S3 group Access: The
  1800. // permission that you want to give to the AWS user that you specified in Grantee.
  1801. // Permissions are granted on the files that Elastic Transcoder adds to the
  1802. // bucket, including playlists and video files. Valid values include: READ:
  1803. // The grantee can read the objects and metadata for objects that Elastic Transcoder
  1804. // adds to the Amazon S3 bucket. READ_ACP: The grantee can read the object ACL
  1805. // for objects that Elastic Transcoder adds to the Amazon S3 bucket. WRITE_ACP:
  1806. // The grantee can write the ACL for the objects that Elastic Transcoder adds
  1807. // to the Amazon S3 bucket. FULL_CONTROL: The grantee has READ, READ_ACP, and
  1808. // WRITE_ACP permissions for the objects that Elastic Transcoder adds to the
  1809. // Amazon S3 bucket. StorageClass: The Amazon S3 storage class, Standard
  1810. // or ReducedRedundancy, that you want Elastic Transcoder to assign to the video
  1811. // files and playlists that it stores in your Amazon S3 bucket.
  1812. ContentConfig *PipelineOutputConfig `type:"structure"`
  1813. // The Amazon S3 bucket in which you saved the media files that you want to
  1814. // transcode.
  1815. InputBucket *string `type:"string" required:"true"`
  1816. // The name of the pipeline. We recommend that the name be unique within the
  1817. // AWS account, but uniqueness is not enforced.
  1818. //
  1819. // Constraints: Maximum 40 characters.
  1820. Name *string `min:"1" type:"string" required:"true"`
  1821. // The Amazon Simple Notification Service (Amazon SNS) topic that you want to
  1822. // notify to report job status.
  1823. //
  1824. // To receive notifications, you must also subscribe to the new topic in the
  1825. // Amazon SNS console. Progressing: The topic ARN for the Amazon Simple Notification
  1826. // Service (Amazon SNS) topic that you want to notify when Elastic Transcoder
  1827. // has started to process a job in this pipeline. This is the ARN that Amazon
  1828. // SNS returned when you created the topic. For more information, see Create
  1829. // a Topic in the Amazon Simple Notification Service Developer Guide. Completed:
  1830. // The topic ARN for the Amazon SNS topic that you want to notify when Elastic
  1831. // Transcoder has finished processing a job in this pipeline. This is the ARN
  1832. // that Amazon SNS returned when you created the topic. Warning: The topic ARN
  1833. // for the Amazon SNS topic that you want to notify when Elastic Transcoder
  1834. // encounters a warning condition while processing a job in this pipeline. This
  1835. // is the ARN that Amazon SNS returned when you created the topic. Error: The
  1836. // topic ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder
  1837. // encounters an error condition while processing a job in this pipeline. This
  1838. // is the ARN that Amazon SNS returned when you created the topic.
  1839. Notifications *Notifications `type:"structure"`
  1840. // The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded
  1841. // files. (Use this, or use ContentConfig:Bucket plus ThumbnailConfig:Bucket.)
  1842. //
  1843. // Specify this value when all of the following are true: You want to save
  1844. // transcoded files, thumbnails (if any), and playlists (if any) together in
  1845. // one bucket. You do not want to specify the users or groups who have access
  1846. // to the transcoded files, thumbnails, and playlists. You do not want to specify
  1847. // the permissions that Elastic Transcoder grants to the files. When Elastic
  1848. // Transcoder saves files in OutputBucket, it grants full control over the files
  1849. // only to the AWS account that owns the role that is specified by Role. You
  1850. // want to associate the transcoded files and thumbnails with the Amazon S3
  1851. // Standard storage class.
  1852. //
  1853. // If you want to save transcoded files and playlists in one bucket and thumbnails
  1854. // in another bucket, specify which users can access the transcoded files or
  1855. // the permissions the users have, or change the Amazon S3 storage class, omit
  1856. // OutputBucket and specify values for ContentConfig and ThumbnailConfig instead.
  1857. OutputBucket *string `type:"string"`
  1858. // The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder
  1859. // to use to create the pipeline.
  1860. Role *string `type:"string" required:"true"`
  1861. // The ThumbnailConfig object specifies several values, including the Amazon
  1862. // S3 bucket in which you want Elastic Transcoder to save thumbnail files, which
  1863. // users you want to have access to the files, the type of access you want users
  1864. // to have, and the storage class that you want to assign to the files.
  1865. //
  1866. // If you specify values for ContentConfig, you must also specify values for
  1867. // ThumbnailConfig even if you don't want to create thumbnails.
  1868. //
  1869. // If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket
  1870. // object.
  1871. //
  1872. // Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save
  1873. // thumbnail files. Permissions (Optional): The Permissions object specifies
  1874. // which users and/or predefined Amazon S3 groups you want to have access to
  1875. // thumbnail files, and the type of access you want them to have. You can grant
  1876. // permissions to a maximum of 30 users and/or predefined Amazon S3 groups.
  1877. // GranteeType: Specify the type of value that appears in the Grantee object:
  1878. // Canonical: The value in the Grantee object is either the canonical user
  1879. // ID for an AWS account or an origin access identity for an Amazon CloudFront
  1880. // distribution. A canonical user ID is not the same as an AWS account number.
  1881. // Email: The value in the Grantee object is the registered email address of
  1882. // an AWS account. Group: The value in the Grantee object is one of the following
  1883. // predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
  1884. // Grantee: The AWS user or group that you want to have access to thumbnail
  1885. // files. To identify the user or group, you can specify the canonical user
  1886. // ID for an AWS account, an origin access identity for a CloudFront distribution,
  1887. // the registered email address of an AWS account, or a predefined Amazon S3
  1888. // group. Access: The permission that you want to give to the AWS user that
  1889. // you specified in Grantee. Permissions are granted on the thumbnail files
  1890. // that Elastic Transcoder adds to the bucket. Valid values include: READ:
  1891. // The grantee can read the thumbnails and metadata for objects that Elastic
  1892. // Transcoder adds to the Amazon S3 bucket. READ_ACP: The grantee can read the
  1893. // object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
  1894. // WRITE_ACP: The grantee can write the ACL for the thumbnails that Elastic
  1895. // Transcoder adds to the Amazon S3 bucket. FULL_CONTROL: The grantee has READ,
  1896. // READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder
  1897. // adds to the Amazon S3 bucket. StorageClass: The Amazon S3 storage class,
  1898. // Standard or ReducedRedundancy, that you want Elastic Transcoder to assign
  1899. // to the thumbnails that it stores in your Amazon S3 bucket.
  1900. ThumbnailConfig *PipelineOutputConfig `type:"structure"`
  1901. }
  1902. // String returns the string representation
  1903. func (s CreatePipelineInput) String() string {
  1904. return awsutil.Prettify(s)
  1905. }
  1906. // GoString returns the string representation
  1907. func (s CreatePipelineInput) GoString() string {
  1908. return s.String()
  1909. }
  1910. // Validate inspects the fields of the type to determine if they are valid.
  1911. func (s *CreatePipelineInput) Validate() error {
  1912. invalidParams := request.ErrInvalidParams{Context: "CreatePipelineInput"}
  1913. if s.InputBucket == nil {
  1914. invalidParams.Add(request.NewErrParamRequired("InputBucket"))
  1915. }
  1916. if s.Name == nil {
  1917. invalidParams.Add(request.NewErrParamRequired("Name"))
  1918. }
  1919. if s.Name != nil && len(*s.Name) < 1 {
  1920. invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  1921. }
  1922. if s.Role == nil {
  1923. invalidParams.Add(request.NewErrParamRequired("Role"))
  1924. }
  1925. if s.ContentConfig != nil {
  1926. if err := s.ContentConfig.Validate(); err != nil {
  1927. invalidParams.AddNested("ContentConfig", err.(request.ErrInvalidParams))
  1928. }
  1929. }
  1930. if s.ThumbnailConfig != nil {
  1931. if err := s.ThumbnailConfig.Validate(); err != nil {
  1932. invalidParams.AddNested("ThumbnailConfig", err.(request.ErrInvalidParams))
  1933. }
  1934. }
  1935. if invalidParams.Len() > 0 {
  1936. return invalidParams
  1937. }
  1938. return nil
  1939. }
  1940. // When you create a pipeline, Elastic Transcoder returns the values that you
  1941. // specified in the request.
  1942. type CreatePipelineOutput struct {
  1943. _ struct{} `type:"structure"`
  1944. // A section of the response body that provides information about the pipeline
  1945. // that is created.
  1946. Pipeline *Pipeline `type:"structure"`
  1947. // Elastic Transcoder returns a warning if the resources used by your pipeline
  1948. // are not in the same region as the pipeline.
  1949. //
  1950. // Using resources in the same region, such as your Amazon S3 buckets, Amazon
  1951. // SNS notification topics, and AWS KMS key, reduces processing time and prevents
  1952. // cross-regional charges.
  1953. Warnings []*Warning `type:"list"`
  1954. }
  1955. // String returns the string representation
  1956. func (s CreatePipelineOutput) String() string {
  1957. return awsutil.Prettify(s)
  1958. }
  1959. // GoString returns the string representation
  1960. func (s CreatePipelineOutput) GoString() string {
  1961. return s.String()
  1962. }
  1963. // The CreatePresetRequest structure.
  1964. type CreatePresetInput struct {
  1965. _ struct{} `type:"structure"`
  1966. // A section of the request body that specifies the audio parameters.
  1967. Audio *AudioParameters `type:"structure"`
  1968. // The container type for the output file. Valid values include flac, flv, fmp4,
  1969. // gif, mp3, mp4, mpg, mxf, oga, ogg, ts, and webm.
  1970. Container *string `type:"string" required:"true"`
  1971. // A description of the preset.
  1972. Description *string `type:"string"`
  1973. // The name of the preset. We recommend that the name be unique within the AWS
  1974. // account, but uniqueness is not enforced.
  1975. Name *string `min:"1" type:"string" required:"true"`
  1976. // A section of the request body that specifies the thumbnail parameters, if
  1977. // any.
  1978. Thumbnails *Thumbnails `type:"structure"`
  1979. // A section of the request body that specifies the video parameters.
  1980. Video *VideoParameters `type:"structure"`
  1981. }
  1982. // String returns the string representation
  1983. func (s CreatePresetInput) String() string {
  1984. return awsutil.Prettify(s)
  1985. }
  1986. // GoString returns the string representation
  1987. func (s CreatePresetInput) GoString() string {
  1988. return s.String()
  1989. }
  1990. // Validate inspects the fields of the type to determine if they are valid.
  1991. func (s *CreatePresetInput) Validate() error {
  1992. invalidParams := request.ErrInvalidParams{Context: "CreatePresetInput"}
  1993. if s.Container == nil {
  1994. invalidParams.Add(request.NewErrParamRequired("Container"))
  1995. }
  1996. if s.Name == nil {
  1997. invalidParams.Add(request.NewErrParamRequired("Name"))
  1998. }
  1999. if s.Name != nil && len(*s.Name) < 1 {
  2000. invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  2001. }
  2002. if s.Video != nil {
  2003. if err := s.Video.Validate(); err != nil {
  2004. invalidParams.AddNested("Video", err.(request.ErrInvalidParams))
  2005. }
  2006. }
  2007. if invalidParams.Len() > 0 {
  2008. return invalidParams
  2009. }
  2010. return nil
  2011. }
  2012. // The CreatePresetResponse structure.
  2013. type CreatePresetOutput struct {
  2014. _ struct{} `type:"structure"`
  2015. // A section of the response body that provides information about the preset
  2016. // that is created.
  2017. Preset *Preset `type:"structure"`
  2018. // If the preset settings don't comply with the standards for the video codec
  2019. // but Elastic Transcoder created the preset, this message explains the reason
  2020. // the preset settings don't meet the standard. Elastic Transcoder created the
  2021. // preset because the settings might produce acceptable output.
  2022. Warning *string `type:"string"`
  2023. }
  2024. // String returns the string representation
  2025. func (s CreatePresetOutput) String() string {
  2026. return awsutil.Prettify(s)
  2027. }
  2028. // GoString returns the string representation
  2029. func (s CreatePresetOutput) GoString() string {
  2030. return s.String()
  2031. }
  2032. // The DeletePipelineRequest structure.
  2033. type DeletePipelineInput struct {
  2034. _ struct{} `type:"structure"`
  2035. // The identifier of the pipeline that you want to delete.
  2036. Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
  2037. }
  2038. // String returns the string representation
  2039. func (s DeletePipelineInput) String() string {
  2040. return awsutil.Prettify(s)
  2041. }
  2042. // GoString returns the string representation
  2043. func (s DeletePipelineInput) GoString() string {
  2044. return s.String()
  2045. }
  2046. // Validate inspects the fields of the type to determine if they are valid.
  2047. func (s *DeletePipelineInput) Validate() error {
  2048. invalidParams := request.ErrInvalidParams{Context: "DeletePipelineInput"}
  2049. if s.Id == nil {
  2050. invalidParams.Add(request.NewErrParamRequired("Id"))
  2051. }
  2052. if invalidParams.Len() > 0 {
  2053. return invalidParams
  2054. }
  2055. return nil
  2056. }
  2057. // The DeletePipelineResponse structure.
  2058. type DeletePipelineOutput struct {
  2059. _ struct{} `type:"structure"`
  2060. }
  2061. // String returns the string representation
  2062. func (s DeletePipelineOutput) String() string {
  2063. return awsutil.Prettify(s)
  2064. }
  2065. // GoString returns the string representation
  2066. func (s DeletePipelineOutput) GoString() string {
  2067. return s.String()
  2068. }
  2069. // The DeletePresetRequest structure.
  2070. type DeletePresetInput struct {
  2071. _ struct{} `type:"structure"`
  2072. // The identifier of the preset for which you want to get detailed information.
  2073. Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
  2074. }
  2075. // String returns the string representation
  2076. func (s DeletePresetInput) String() string {
  2077. return awsutil.Prettify(s)
  2078. }
  2079. // GoString returns the string representation
  2080. func (s DeletePresetInput) GoString() string {
  2081. return s.String()
  2082. }
  2083. // Validate inspects the fields of the type to determine if they are valid.
  2084. func (s *DeletePresetInput) Validate() error {
  2085. invalidParams := request.ErrInvalidParams{Context: "DeletePresetInput"}
  2086. if s.Id == nil {
  2087. invalidParams.Add(request.NewErrParamRequired("Id"))
  2088. }
  2089. if invalidParams.Len() > 0 {
  2090. return invalidParams
  2091. }
  2092. return nil
  2093. }
  2094. // The DeletePresetResponse structure.
  2095. type DeletePresetOutput struct {
  2096. _ struct{} `type:"structure"`
  2097. }
  2098. // String returns the string representation
  2099. func (s DeletePresetOutput) String() string {
  2100. return awsutil.Prettify(s)
  2101. }
  2102. // GoString returns the string representation
  2103. func (s DeletePresetOutput) GoString() string {
  2104. return s.String()
  2105. }
  2106. // The detected properties of the input file. Elastic Transcoder identifies
  2107. // these values from the input file.
  2108. type DetectedProperties struct {
  2109. _ struct{} `type:"structure"`
  2110. // The detected duration of the input file, in milliseconds.
  2111. DurationMillis *int64 `type:"long"`
  2112. // The detected file size of the input file, in bytes.
  2113. FileSize *int64 `type:"long"`
  2114. // The detected frame rate of the input file, in frames per second.
  2115. FrameRate *string `type:"string"`
  2116. // The detected height of the input file, in pixels.
  2117. Height *int64 `type:"integer"`
  2118. // The detected width of the input file, in pixels.
  2119. Width *int64 `type:"integer"`
  2120. }
  2121. // String returns the string representation
  2122. func (s DetectedProperties) String() string {
  2123. return awsutil.Prettify(s)
  2124. }
  2125. // GoString returns the string representation
  2126. func (s DetectedProperties) GoString() string {
  2127. return s.String()
  2128. }
  2129. // The encryption settings, if any, that are used for decrypting your input
  2130. // files or encrypting your output files. If your input file is encrypted, you
  2131. // must specify the mode that Elastic Transcoder will use to decrypt your file,
  2132. // otherwise you must specify the mode you want Elastic Transcoder to use to
  2133. // encrypt your output files.
  2134. type Encryption struct {
  2135. _ struct{} `type:"structure"`
  2136. // The series of random bits created by a random bit generator, unique for every
  2137. // encryption operation, that you used to encrypt your input files or that you
  2138. // want Elastic Transcoder to use to encrypt your output files. The initialization
  2139. // vector must be base64-encoded, and it must be exactly 16 bytes long before
  2140. // being base64-encoded.
  2141. InitializationVector *string `type:"string"`
  2142. // The data encryption key that you want Elastic Transcoder to use to encrypt
  2143. // your output file, or that was used to encrypt your input file. The key must
  2144. // be base64-encoded and it must be one of the following bit lengths before
  2145. // being base64-encoded:
  2146. //
  2147. // 128, 192, or 256.
  2148. //
  2149. // The key must also be encrypted by using the Amazon Key Management Service.
  2150. Key *string `type:"string"`
  2151. // The MD5 digest of the key that you used to encrypt your input file, or that
  2152. // you want Elastic Transcoder to use to encrypt your output file. Elastic Transcoder
  2153. // uses the key digest as a checksum to make sure your key was not corrupted
  2154. // in transit. The key MD5 must be base64-encoded, and it must be exactly 16
  2155. // bytes long before being base64-encoded.
  2156. KeyMd5 *string `type:"string"`
  2157. // The specific server-side encryption mode that you want Elastic Transcoder
  2158. // to use when decrypting your input files or encrypting your output files.
  2159. // Elastic Transcoder supports the following options:
  2160. //
  2161. // S3: Amazon S3 creates and manages the keys used for encrypting your files.
  2162. //
  2163. // S3-AWS-KMS: Amazon S3 calls the Amazon Key Management Service, which creates
  2164. // and manages the keys that are used for encrypting your files. If you specify
  2165. // S3-AWS-KMS and you don't want to use the default key, you must add the AWS-KMS
  2166. // key that you want to use to your pipeline.
  2167. //
  2168. // AES-CBC-PKCS7: A padded cipher-block mode of operation originally used for
  2169. // HLS files.
  2170. //
  2171. // AES-CTR: AES Counter Mode.
  2172. //
  2173. // AES-GCM: AES Galois Counter Mode, a mode of operation that is an authenticated
  2174. // encryption format, meaning that a file, key, or initialization vector that
  2175. // has been tampered with will fail the decryption process.
  2176. //
  2177. // For all three AES options, you must provide the following settings, which
  2178. // must be base64-encoded:
  2179. //
  2180. // Key
  2181. //
  2182. // Key MD5
  2183. //
  2184. // Initialization Vector
  2185. //
  2186. // For the AES modes, your private encryption keys and your unencrypted data
  2187. // are never stored by AWS; therefore, it is important that you safely manage
  2188. // your encryption keys. If you lose them, you won't be able to unencrypt your
  2189. // data.
  2190. Mode *string `type:"string"`
  2191. }
  2192. // String returns the string representation
  2193. func (s Encryption) String() string {
  2194. return awsutil.Prettify(s)
  2195. }
  2196. // GoString returns the string representation
  2197. func (s Encryption) GoString() string {
  2198. return s.String()
  2199. }
  2200. // The HLS content protection settings, if any, that you want Elastic Transcoder
  2201. // to apply to your output files.
  2202. type HlsContentProtection struct {
  2203. _ struct{} `type:"structure"`
  2204. // If Elastic Transcoder is generating your key for you, you must leave this
  2205. // field blank.
  2206. //
  2207. // The series of random bits created by a random bit generator, unique for
  2208. // every encryption operation, that you want Elastic Transcoder to use to encrypt
  2209. // your output files. The initialization vector must be base64-encoded, and
  2210. // it must be exactly 16 bytes before being base64-encoded.
  2211. InitializationVector *string `type:"string"`
  2212. // If you want Elastic Transcoder to generate a key for you, leave this field
  2213. // blank.
  2214. //
  2215. // If you choose to supply your own key, you must encrypt the key by using
  2216. // AWS KMS. The key must be base64-encoded, and it must be one of the following
  2217. // bit lengths before being base64-encoded:
  2218. //
  2219. // 128, 192, or 256.
  2220. Key *string `type:"string"`
  2221. // If Elastic Transcoder is generating your key for you, you must leave this
  2222. // field blank.
  2223. //
  2224. // The MD5 digest of the key that you want Elastic Transcoder to use to encrypt
  2225. // your output file, and that you want Elastic Transcoder to use as a checksum
  2226. // to make sure your key was not corrupted in transit. The key MD5 must be base64-encoded,
  2227. // and it must be exactly 16 bytes before being base64- encoded.
  2228. KeyMd5 *string `type:"string"`
  2229. // Specify whether you want Elastic Transcoder to write your HLS license key
  2230. // to an Amazon S3 bucket. If you choose WithVariantPlaylists, LicenseAcquisitionUrl
  2231. // must be left blank and Elastic Transcoder writes your data key into the same
  2232. // bucket as the associated playlist.
  2233. KeyStoragePolicy *string `type:"string"`
  2234. // The location of the license key required to decrypt your HLS playlist. The
  2235. // URL must be an absolute path, and is referenced in the URI attribute of the
  2236. // EXT-X-KEY metadata tag in the playlist file.
  2237. LicenseAcquisitionUrl *string `type:"string"`
  2238. // The content protection method for your output. The only valid value is: aes-128.
  2239. //
  2240. // This value will be written into the method attribute of the EXT-X-KEY metadata
  2241. // tag in the output playlist.
  2242. Method *string `type:"string"`
  2243. }
  2244. // String returns the string representation
  2245. func (s HlsContentProtection) String() string {
  2246. return awsutil.Prettify(s)
  2247. }
  2248. // GoString returns the string representation
  2249. func (s HlsContentProtection) GoString() string {
  2250. return s.String()
  2251. }
  2252. // A section of the response body that provides information about the job that
  2253. // is created.
  2254. type Job struct {
  2255. _ struct{} `type:"structure"`
  2256. // The Amazon Resource Name (ARN) for the job.
  2257. Arn *string `type:"string"`
  2258. // The identifier that Elastic Transcoder assigned to the job. You use this
  2259. // value to get settings for the job or to delete the job.
  2260. Id *string `type:"string"`
  2261. // A section of the request or response body that provides information about
  2262. // the file that is being transcoded.
  2263. Input *JobInput `type:"structure"`
  2264. // If you specified one output for a job, information about that output. If
  2265. // you specified multiple outputs for a job, the Output object lists information
  2266. // about the first output. This duplicates the information that is listed for
  2267. // the first output in the Outputs object.
  2268. //
  2269. // Outputs recommended instead. A section of the request or response body that
  2270. // provides information about the transcoded (target) file.
  2271. Output *JobOutput `type:"structure"`
  2272. // The value, if any, that you want Elastic Transcoder to prepend to the names
  2273. // of all files that this job creates, including output files, thumbnails, and
  2274. // playlists. We recommend that you add a / or some other delimiter to the end
  2275. // of the OutputKeyPrefix.
  2276. OutputKeyPrefix *string `min:"1" type:"string"`
  2277. // Information about the output files. We recommend that you use the Outputs
  2278. // syntax for all jobs, even when you want Elastic Transcoder to transcode a
  2279. // file into only one format. Do not use both the Outputs and Output syntaxes
  2280. // in the same request. You can create a maximum of 30 outputs per job.
  2281. //
  2282. // If you specify more than one output for a job, Elastic Transcoder creates
  2283. // the files for each output in the order in which you specify them in the job.
  2284. Outputs []*JobOutput `type:"list"`
  2285. // The Id of the pipeline that you want Elastic Transcoder to use for transcoding.
  2286. // The pipeline determines several settings, including the Amazon S3 bucket
  2287. // from which Elastic Transcoder gets the files to transcode and the bucket
  2288. // into which Elastic Transcoder puts the transcoded files.
  2289. PipelineId *string `type:"string"`
  2290. // Outputs in Fragmented MP4 or MPEG-TS format only.If you specify a preset
  2291. // in PresetId for which the value of Container is fmp4 (Fragmented MP4) or
  2292. // ts (MPEG-TS), Playlists contains information about the master playlists that
  2293. // you want Elastic Transcoder to create.
  2294. //
  2295. // The maximum number of master playlists in a job is 30.
  2296. Playlists []*Playlist `type:"list"`
  2297. // The status of the job: Submitted, Progressing, Complete, Canceled, or Error.
  2298. Status *string `type:"string"`
  2299. // Details about the timing of a job.
  2300. Timing *Timing `type:"structure"`
  2301. // User-defined metadata that you want to associate with an Elastic Transcoder
  2302. // job. You specify metadata in key/value pairs, and you can add up to 10 key/value
  2303. // pairs per job. Elastic Transcoder does not guarantee that key/value pairs
  2304. // will be returned in the same order in which you specify them.
  2305. //
  2306. // Metadata keys and values must use characters from the following list:
  2307. //
  2308. // 0-9
  2309. //
  2310. // A-Z and a-z
  2311. //
  2312. // Space
  2313. //
  2314. // The following symbols: _.:/=+-%@
  2315. UserMetadata map[string]*string `type:"map"`
  2316. }
  2317. // String returns the string representation
  2318. func (s Job) String() string {
  2319. return awsutil.Prettify(s)
  2320. }
  2321. // GoString returns the string representation
  2322. func (s Job) GoString() string {
  2323. return s.String()
  2324. }
  2325. // The .jpg or .png file associated with an audio file.
  2326. type JobAlbumArt struct {
  2327. _ struct{} `type:"structure"`
  2328. // The file to be used as album art. There can be multiple artworks associated
  2329. // with an audio file, to a maximum of 20. Valid formats are .jpg and .png
  2330. Artwork []*Artwork `type:"list"`
  2331. // A policy that determines how Elastic Transcoder will handle the existence
  2332. // of multiple album artwork files.
  2333. //
  2334. // Replace: The specified album art will replace any existing album art.
  2335. // Prepend: The specified album art will be placed in front of any existing
  2336. // album art. Append: The specified album art will be placed after any existing
  2337. // album art. Fallback: If the original input file contains artwork, Elastic
  2338. // Transcoder will use that artwork for the output. If the original input does
  2339. // not contain artwork, Elastic Transcoder will use the specified album art
  2340. // file.
  2341. MergePolicy *string `type:"string"`
  2342. }
  2343. // String returns the string representation
  2344. func (s JobAlbumArt) String() string {
  2345. return awsutil.Prettify(s)
  2346. }
  2347. // GoString returns the string representation
  2348. func (s JobAlbumArt) GoString() string {
  2349. return s.String()
  2350. }
  2351. // Validate inspects the fields of the type to determine if they are valid.
  2352. func (s *JobAlbumArt) Validate() error {
  2353. invalidParams := request.ErrInvalidParams{Context: "JobAlbumArt"}
  2354. if s.Artwork != nil {
  2355. for i, v := range s.Artwork {
  2356. if v == nil {
  2357. continue
  2358. }
  2359. if err := v.Validate(); err != nil {
  2360. invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Artwork", i), err.(request.ErrInvalidParams))
  2361. }
  2362. }
  2363. }
  2364. if invalidParams.Len() > 0 {
  2365. return invalidParams
  2366. }
  2367. return nil
  2368. }
  2369. // Information about the file that you're transcoding.
  2370. type JobInput struct {
  2371. _ struct{} `type:"structure"`
  2372. // The aspect ratio of the input file. If you want Elastic Transcoder to automatically
  2373. // detect the aspect ratio of the input file, specify auto. If you want to specify
  2374. // the aspect ratio for the output file, enter one of the following values:
  2375. //
  2376. // 1:1, 4:3, 3:2, 16:9
  2377. //
  2378. // If you specify a value other than auto, Elastic Transcoder disables automatic
  2379. // detection of the aspect ratio.
  2380. AspectRatio *string `type:"string"`
  2381. // The container type for the input file. If you want Elastic Transcoder to
  2382. // automatically detect the container type of the input file, specify auto.
  2383. // If you want to specify the container type for the input file, enter one of
  2384. // the following values:
  2385. //
  2386. // 3gp, aac, asf, avi, divx, flv, m4a, mkv, mov, mp3, mp4, mpeg, mpeg-ps,
  2387. // mpeg-ts, mxf, ogg, vob, wav, webm
  2388. Container *string `type:"string"`
  2389. // The detected properties of the input file.
  2390. DetectedProperties *DetectedProperties `type:"structure"`
  2391. // The encryption settings, if any, that are used for decrypting your input
  2392. // files. If your input file is encrypted, you must specify the mode that Elastic
  2393. // Transcoder will use to decrypt your file.
  2394. Encryption *Encryption `type:"structure"`
  2395. // The frame rate of the input file. If you want Elastic Transcoder to automatically
  2396. // detect the frame rate of the input file, specify auto. If you want to specify
  2397. // the frame rate for the input file, enter one of the following values:
  2398. //
  2399. // 10, 15, 23.97, 24, 25, 29.97, 30, 60
  2400. //
  2401. // If you specify a value other than auto, Elastic Transcoder disables automatic
  2402. // detection of the frame rate.
  2403. FrameRate *string `type:"string"`
  2404. // Whether the input file is interlaced. If you want Elastic Transcoder to automatically
  2405. // detect whether the input file is interlaced, specify auto. If you want to
  2406. // specify whether the input file is interlaced, enter one of the following
  2407. // values:
  2408. //
  2409. // true, false
  2410. //
  2411. // If you specify a value other than auto, Elastic Transcoder disables automatic
  2412. // detection of interlacing.
  2413. Interlaced *string `type:"string"`
  2414. // The name of the file to transcode. Elsewhere in the body of the JSON block
  2415. // is the the ID of the pipeline to use for processing the job. The InputBucket
  2416. // object in that pipeline tells Elastic Transcoder which Amazon S3 bucket to
  2417. // get the file from.
  2418. //
  2419. // If the file name includes a prefix, such as cooking/lasagna.mpg, include
  2420. // the prefix in the key. If the file isn't in the specified bucket, Elastic
  2421. // Transcoder returns an error.
  2422. Key *string `min:"1" type:"string"`
  2423. // This value must be auto, which causes Elastic Transcoder to automatically
  2424. // detect the resolution of the input file.
  2425. Resolution *string `type:"string"`
  2426. }
  2427. // String returns the string representation
  2428. func (s JobInput) String() string {
  2429. return awsutil.Prettify(s)
  2430. }
  2431. // GoString returns the string representation
  2432. func (s JobInput) GoString() string {
  2433. return s.String()
  2434. }
  2435. // Validate inspects the fields of the type to determine if they are valid.
  2436. func (s *JobInput) Validate() error {
  2437. invalidParams := request.ErrInvalidParams{Context: "JobInput"}
  2438. if s.Key != nil && len(*s.Key) < 1 {
  2439. invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  2440. }
  2441. if invalidParams.Len() > 0 {
  2442. return invalidParams
  2443. }
  2444. return nil
  2445. }
  2446. // Outputs recommended instead.If you specified one output for a job, information
  2447. // about that output. If you specified multiple outputs for a job, the Output
  2448. // object lists information about the first output. This duplicates the information
  2449. // that is listed for the first output in the Outputs object.
  2450. type JobOutput struct {
  2451. _ struct{} `type:"structure"`
  2452. // The album art to be associated with the output file, if any.
  2453. AlbumArt *JobAlbumArt `type:"structure"`
  2454. // If Elastic Transcoder used a preset with a ColorSpaceConversionMode to transcode
  2455. // the output file, the AppliedColorSpaceConversion parameter shows the conversion
  2456. // used. If no ColorSpaceConversionMode was defined in the preset, this parameter
  2457. // will not be included in the job response.
  2458. AppliedColorSpaceConversion *string `type:"string"`
  2459. // You can configure Elastic Transcoder to transcode captions, or subtitles,
  2460. // from one format to another. All captions must be in UTF-8. Elastic Transcoder
  2461. // supports two types of captions:
  2462. //
  2463. // Embedded: Embedded captions are included in the same file as the audio
  2464. // and video. Elastic Transcoder supports only one embedded caption per language,
  2465. // to a maximum of 300 embedded captions per file.
  2466. //
  2467. // Valid input values include: CEA-608 (EIA-608, first non-empty channel only),
  2468. // CEA-708 (EIA-708, first non-empty channel only), and mov-text
  2469. //
  2470. // Valid outputs include: mov-text
  2471. //
  2472. // Elastic Transcoder supports a maximum of one embedded format per output.
  2473. //
  2474. // Sidecar: Sidecar captions are kept in a separate metadata file from the
  2475. // audio and video data. Sidecar captions require a player that is capable of
  2476. // understanding the relationship between the video file and the sidecar file.
  2477. // Elastic Transcoder supports only one sidecar caption per language, to a maximum
  2478. // of 20 sidecar captions per file.
  2479. //
  2480. // Valid input values include: dfxp (first div element only), ebu-tt, scc,
  2481. // smpt, srt, ttml (first div element only), and webvtt
  2482. //
  2483. // Valid outputs include: dfxp (first div element only), scc, srt, and webvtt.
  2484. //
  2485. // If you want ttml or smpte-tt compatible captions, specify dfxp as your
  2486. // output format.
  2487. //
  2488. // Elastic Transcoder does not support OCR (Optical Character Recognition),
  2489. // does not accept pictures as a valid input for captions, and is not available
  2490. // for audio-only transcoding. Elastic Transcoder does not preserve text formatting
  2491. // (for example, italics) during the transcoding process.
  2492. //
  2493. // To remove captions or leave the captions empty, set Captions to null. To
  2494. // pass through existing captions unchanged, set the MergePolicy to MergeRetain,
  2495. // and pass in a null CaptionSources array.
  2496. //
  2497. // For more information on embedded files, see the Subtitles Wikipedia page.
  2498. //
  2499. // For more information on sidecar files, see the Extensible Metadata Platform
  2500. // and Sidecar file Wikipedia pages.
  2501. Captions *Captions `type:"structure"`
  2502. // You can create an output file that contains an excerpt from the input file.
  2503. // This excerpt, called a clip, can come from the beginning, middle, or end
  2504. // of the file. The Composition object contains settings for the clips that
  2505. // make up an output file. For the current release, you can only specify settings
  2506. // for a single clip per output file. The Composition object cannot be null.
  2507. Composition []*Clip `type:"list"`
  2508. // Duration of the output file, in seconds.
  2509. Duration *int64 `type:"long"`
  2510. // Duration of the output file, in milliseconds.
  2511. DurationMillis *int64 `type:"long"`
  2512. // The encryption settings, if any, that you want Elastic Transcoder to apply
  2513. // to your output files. If you choose to use encryption, you must specify a
  2514. // mode to use. If you choose not to use encryption, Elastic Transcoder will
  2515. // write an unencrypted file to your Amazon S3 bucket.
  2516. Encryption *Encryption `type:"structure"`
  2517. // File size of the output file, in bytes.
  2518. FileSize *int64 `type:"long"`
  2519. // Frame rate of the output file, in frames per second.
  2520. FrameRate *string `type:"string"`
  2521. // Height of the output file, in pixels.
  2522. Height *int64 `type:"integer"`
  2523. // A sequential counter, starting with 1, that identifies an output among the
  2524. // outputs from the current job. In the Output syntax, this value is always
  2525. // 1.
  2526. Id *string `type:"string"`
  2527. // The name to assign to the transcoded file. Elastic Transcoder saves the file
  2528. // in the Amazon S3 bucket specified by the OutputBucket object in the pipeline
  2529. // that is specified by the pipeline ID.
  2530. Key *string `min:"1" type:"string"`
  2531. // The value of the Id object for the preset that you want to use for this job.
  2532. // The preset determines the audio, video, and thumbnail settings that Elastic
  2533. // Transcoder uses for transcoding. To use a preset that you created, specify
  2534. // the preset ID that Elastic Transcoder returned in the response when you created
  2535. // the preset. You can also use the Elastic Transcoder system presets, which
  2536. // you can get with ListPresets.
  2537. PresetId *string `type:"string"`
  2538. // The number of degrees clockwise by which you want Elastic Transcoder to rotate
  2539. // the output relative to the input. Enter one of the following values:
  2540. //
  2541. // auto, 0, 90, 180, 270
  2542. //
  2543. // The value auto generally works only if the file that you're transcoding
  2544. // contains rotation metadata.
  2545. Rotate *string `type:"string"`
  2546. // (Outputs in Fragmented MP4 or MPEG-TS format only.If you specify a preset
  2547. // in PresetId for which the value of Container is fmp4 (Fragmented MP4) or
  2548. // ts (MPEG-TS), SegmentDuration is the target maximum duration of each segment
  2549. // in seconds. For HLSv3 format playlists, each media segment is stored in a
  2550. // separate .ts file. For HLSv4 and Smooth playlists, all media segments for
  2551. // an output are stored in a single file. Each segment is approximately the
  2552. // length of the SegmentDuration, though individual segments might be shorter
  2553. // or longer.
  2554. //
  2555. // The range of valid values is 1 to 60 seconds. If the duration of the video
  2556. // is not evenly divisible by SegmentDuration, the duration of the last segment
  2557. // is the remainder of total length/SegmentDuration.
  2558. //
  2559. // Elastic Transcoder creates an output-specific playlist for each output HLS
  2560. // output that you specify in OutputKeys. To add an output to the master playlist
  2561. // for this job, include it in the OutputKeys of the associated playlist.
  2562. SegmentDuration *string `type:"string"`
  2563. // The status of one output in a job. If you specified only one output for the
  2564. // job, Outputs:Status is always the same as Job:Status. If you specified more
  2565. // than one output: Job:Status and Outputs:Status for all of the outputs is
  2566. // Submitted until Elastic Transcoder starts to process the first output. When
  2567. // Elastic Transcoder starts to process the first output, Outputs:Status for
  2568. // that output and Job:Status both change to Progressing. For each output, the
  2569. // value of Outputs:Status remains Submitted until Elastic Transcoder starts
  2570. // to process the output. Job:Status remains Progressing until all of the outputs
  2571. // reach a terminal status, either Complete or Error. When all of the outputs
  2572. // reach a terminal status, Job:Status changes to Complete only if Outputs:Status
  2573. // for all of the outputs is Complete. If Outputs:Status for one or more outputs
  2574. // is Error, the terminal status for Job:Status is also Error. The value of
  2575. // Status is one of the following: Submitted, Progressing, Complete, Canceled,
  2576. // or Error.
  2577. Status *string `type:"string"`
  2578. // Information that further explains Status.
  2579. StatusDetail *string `type:"string"`
  2580. // The encryption settings, if any, that you want Elastic Transcoder to apply
  2581. // to your thumbnail.
  2582. ThumbnailEncryption *Encryption `type:"structure"`
  2583. // Whether you want Elastic Transcoder to create thumbnails for your videos
  2584. // and, if so, how you want Elastic Transcoder to name the files.
  2585. //
  2586. // If you don't want Elastic Transcoder to create thumbnails, specify "".
  2587. //
  2588. // If you do want Elastic Transcoder to create thumbnails, specify the information
  2589. // that you want to include in the file name for each thumbnail. You can specify
  2590. // the following values in any sequence:
  2591. //
  2592. // {count} (Required): If you want to create thumbnails, you must include
  2593. // {count} in the ThumbnailPattern object. Wherever you specify {count}, Elastic
  2594. // Transcoder adds a five-digit sequence number (beginning with 00001) to thumbnail
  2595. // file names. The number indicates where a given thumbnail appears in the sequence
  2596. // of thumbnails for a transcoded file.
  2597. //
  2598. // If you specify a literal value and/or {resolution} but you omit {count},
  2599. // Elastic Transcoder returns a validation error and does not create the job.
  2600. // Literal values (Optional): You can specify literal values anywhere in
  2601. // the ThumbnailPattern object. For example, you can include them as a file
  2602. // name prefix or as a delimiter between {resolution} and {count}.
  2603. //
  2604. // {resolution} (Optional): If you want Elastic Transcoder to include the
  2605. // resolution in the file name, include {resolution} in the ThumbnailPattern
  2606. // object.
  2607. //
  2608. // When creating thumbnails, Elastic Transcoder automatically saves the files
  2609. // in the format (.jpg or .png) that appears in the preset that you specified
  2610. // in the PresetID value of CreateJobOutput. Elastic Transcoder also appends
  2611. // the applicable file name extension.
  2612. ThumbnailPattern *string `type:"string"`
  2613. // Information about the watermarks that you want Elastic Transcoder to add
  2614. // to the video during transcoding. You can specify up to four watermarks for
  2615. // each output. Settings for each watermark must be defined in the preset that
  2616. // you specify in Preset for the current output.
  2617. //
  2618. // Watermarks are added to the output video in the sequence in which you list
  2619. // them in the job output—the first watermark in the list is added to the output
  2620. // video first, the second watermark in the list is added next, and so on. As
  2621. // a result, if the settings in a preset cause Elastic Transcoder to place all
  2622. // watermarks in the same location, the second watermark that you add will cover
  2623. // the first one, the third one will cover the second, and the fourth one will
  2624. // cover the third.
  2625. Watermarks []*JobWatermark `type:"list"`
  2626. // Specifies the width of the output file in pixels.
  2627. Width *int64 `type:"integer"`
  2628. }
  2629. // String returns the string representation
  2630. func (s JobOutput) String() string {
  2631. return awsutil.Prettify(s)
  2632. }
  2633. // GoString returns the string representation
  2634. func (s JobOutput) GoString() string {
  2635. return s.String()
  2636. }
  2637. // Watermarks can be in .png or .jpg format. If you want to display a watermark
  2638. // that is not rectangular, use the .png format, which supports transparency.
  2639. type JobWatermark struct {
  2640. _ struct{} `type:"structure"`
  2641. // The encryption settings, if any, that you want Elastic Transcoder to apply
  2642. // to your watermarks.
  2643. Encryption *Encryption `type:"structure"`
  2644. // The name of the .png or .jpg file that you want to use for the watermark.
  2645. // To determine which Amazon S3 bucket contains the specified file, Elastic
  2646. // Transcoder checks the pipeline specified by Pipeline; the Input Bucket object
  2647. // in that pipeline identifies the bucket.
  2648. //
  2649. // If the file name includes a prefix, for example, logos/128x64.png, include
  2650. // the prefix in the key. If the file isn't in the specified bucket, Elastic
  2651. // Transcoder returns an error.
  2652. InputKey *string `min:"1" type:"string"`
  2653. // The ID of the watermark settings that Elastic Transcoder uses to add watermarks
  2654. // to the video during transcoding. The settings are in the preset specified
  2655. // by Preset for the current output. In that preset, the value of Watermarks
  2656. // Id tells Elastic Transcoder which settings to use.
  2657. PresetWatermarkId *string `min:"1" type:"string"`
  2658. }
  2659. // String returns the string representation
  2660. func (s JobWatermark) String() string {
  2661. return awsutil.Prettify(s)
  2662. }
  2663. // GoString returns the string representation
  2664. func (s JobWatermark) GoString() string {
  2665. return s.String()
  2666. }
  2667. // Validate inspects the fields of the type to determine if they are valid.
  2668. func (s *JobWatermark) Validate() error {
  2669. invalidParams := request.ErrInvalidParams{Context: "JobWatermark"}
  2670. if s.InputKey != nil && len(*s.InputKey) < 1 {
  2671. invalidParams.Add(request.NewErrParamMinLen("InputKey", 1))
  2672. }
  2673. if s.PresetWatermarkId != nil && len(*s.PresetWatermarkId) < 1 {
  2674. invalidParams.Add(request.NewErrParamMinLen("PresetWatermarkId", 1))
  2675. }
  2676. if invalidParams.Len() > 0 {
  2677. return invalidParams
  2678. }
  2679. return nil
  2680. }
  2681. // The ListJobsByPipelineRequest structure.
  2682. type ListJobsByPipelineInput struct {
  2683. _ struct{} `type:"structure"`
  2684. // To list jobs in chronological order by the date and time that they were submitted,
  2685. // enter true. To list jobs in reverse chronological order, enter false.
  2686. Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
  2687. // When Elastic Transcoder returns more than one page of results, use pageToken
  2688. // in subsequent GET requests to get each successive page of results.
  2689. PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
  2690. // The ID of the pipeline for which you want to get job information.
  2691. PipelineId *string `location:"uri" locationName:"PipelineId" type:"string" required:"true"`
  2692. }
  2693. // String returns the string representation
  2694. func (s ListJobsByPipelineInput) String() string {
  2695. return awsutil.Prettify(s)
  2696. }
  2697. // GoString returns the string representation
  2698. func (s ListJobsByPipelineInput) GoString() string {
  2699. return s.String()
  2700. }
  2701. // Validate inspects the fields of the type to determine if they are valid.
  2702. func (s *ListJobsByPipelineInput) Validate() error {
  2703. invalidParams := request.ErrInvalidParams{Context: "ListJobsByPipelineInput"}
  2704. if s.PipelineId == nil {
  2705. invalidParams.Add(request.NewErrParamRequired("PipelineId"))
  2706. }
  2707. if invalidParams.Len() > 0 {
  2708. return invalidParams
  2709. }
  2710. return nil
  2711. }
  2712. // The ListJobsByPipelineResponse structure.
  2713. type ListJobsByPipelineOutput struct {
  2714. _ struct{} `type:"structure"`
  2715. // An array of Job objects that are in the specified pipeline.
  2716. Jobs []*Job `type:"list"`
  2717. // A value that you use to access the second and subsequent pages of results,
  2718. // if any. When the jobs in the specified pipeline fit on one page or when you've
  2719. // reached the last page of results, the value of NextPageToken is null.
  2720. NextPageToken *string `type:"string"`
  2721. }
  2722. // String returns the string representation
  2723. func (s ListJobsByPipelineOutput) String() string {
  2724. return awsutil.Prettify(s)
  2725. }
  2726. // GoString returns the string representation
  2727. func (s ListJobsByPipelineOutput) GoString() string {
  2728. return s.String()
  2729. }
  2730. // The ListJobsByStatusRequest structure.
  2731. type ListJobsByStatusInput struct {
  2732. _ struct{} `type:"structure"`
  2733. // To list jobs in chronological order by the date and time that they were submitted,
  2734. // enter true. To list jobs in reverse chronological order, enter false.
  2735. Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
  2736. // When Elastic Transcoder returns more than one page of results, use pageToken
  2737. // in subsequent GET requests to get each successive page of results.
  2738. PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
  2739. // To get information about all of the jobs associated with the current AWS
  2740. // account that have a given status, specify the following status: Submitted,
  2741. // Progressing, Complete, Canceled, or Error.
  2742. Status *string `location:"uri" locationName:"Status" type:"string" required:"true"`
  2743. }
  2744. // String returns the string representation
  2745. func (s ListJobsByStatusInput) String() string {
  2746. return awsutil.Prettify(s)
  2747. }
  2748. // GoString returns the string representation
  2749. func (s ListJobsByStatusInput) GoString() string {
  2750. return s.String()
  2751. }
  2752. // Validate inspects the fields of the type to determine if they are valid.
  2753. func (s *ListJobsByStatusInput) Validate() error {
  2754. invalidParams := request.ErrInvalidParams{Context: "ListJobsByStatusInput"}
  2755. if s.Status == nil {
  2756. invalidParams.Add(request.NewErrParamRequired("Status"))
  2757. }
  2758. if invalidParams.Len() > 0 {
  2759. return invalidParams
  2760. }
  2761. return nil
  2762. }
  2763. // The ListJobsByStatusResponse structure.
  2764. type ListJobsByStatusOutput struct {
  2765. _ struct{} `type:"structure"`
  2766. // An array of Job objects that have the specified status.
  2767. Jobs []*Job `type:"list"`
  2768. // A value that you use to access the second and subsequent pages of results,
  2769. // if any. When the jobs in the specified pipeline fit on one page or when you've
  2770. // reached the last page of results, the value of NextPageToken is null.
  2771. NextPageToken *string `type:"string"`
  2772. }
  2773. // String returns the string representation
  2774. func (s ListJobsByStatusOutput) String() string {
  2775. return awsutil.Prettify(s)
  2776. }
  2777. // GoString returns the string representation
  2778. func (s ListJobsByStatusOutput) GoString() string {
  2779. return s.String()
  2780. }
  2781. // The ListPipelineRequest structure.
  2782. type ListPipelinesInput struct {
  2783. _ struct{} `type:"structure"`
  2784. // To list pipelines in chronological order by the date and time that they were
  2785. // created, enter true. To list pipelines in reverse chronological order, enter
  2786. // false.
  2787. Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
  2788. // When Elastic Transcoder returns more than one page of results, use pageToken
  2789. // in subsequent GET requests to get each successive page of results.
  2790. PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
  2791. }
  2792. // String returns the string representation
  2793. func (s ListPipelinesInput) String() string {
  2794. return awsutil.Prettify(s)
  2795. }
  2796. // GoString returns the string representation
  2797. func (s ListPipelinesInput) GoString() string {
  2798. return s.String()
  2799. }
  2800. // A list of the pipelines associated with the current AWS account.
  2801. type ListPipelinesOutput struct {
  2802. _ struct{} `type:"structure"`
  2803. // A value that you use to access the second and subsequent pages of results,
  2804. // if any. When the pipelines fit on one page or when you've reached the last
  2805. // page of results, the value of NextPageToken is null.
  2806. NextPageToken *string `type:"string"`
  2807. // An array of Pipeline objects.
  2808. Pipelines []*Pipeline `type:"list"`
  2809. }
  2810. // String returns the string representation
  2811. func (s ListPipelinesOutput) String() string {
  2812. return awsutil.Prettify(s)
  2813. }
  2814. // GoString returns the string representation
  2815. func (s ListPipelinesOutput) GoString() string {
  2816. return s.String()
  2817. }
  2818. // The ListPresetsRequest structure.
  2819. type ListPresetsInput struct {
  2820. _ struct{} `type:"structure"`
  2821. // To list presets in chronological order by the date and time that they were
  2822. // created, enter true. To list presets in reverse chronological order, enter
  2823. // false.
  2824. Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
  2825. // When Elastic Transcoder returns more than one page of results, use pageToken
  2826. // in subsequent GET requests to get each successive page of results.
  2827. PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
  2828. }
  2829. // String returns the string representation
  2830. func (s ListPresetsInput) String() string {
  2831. return awsutil.Prettify(s)
  2832. }
  2833. // GoString returns the string representation
  2834. func (s ListPresetsInput) GoString() string {
  2835. return s.String()
  2836. }
  2837. // The ListPresetsResponse structure.
  2838. type ListPresetsOutput struct {
  2839. _ struct{} `type:"structure"`
  2840. // A value that you use to access the second and subsequent pages of results,
  2841. // if any. When the presets fit on one page or when you've reached the last
  2842. // page of results, the value of NextPageToken is null.
  2843. NextPageToken *string `type:"string"`
  2844. // An array of Preset objects.
  2845. Presets []*Preset `type:"list"`
  2846. }
  2847. // String returns the string representation
  2848. func (s ListPresetsOutput) String() string {
  2849. return awsutil.Prettify(s)
  2850. }
  2851. // GoString returns the string representation
  2852. func (s ListPresetsOutput) GoString() string {
  2853. return s.String()
  2854. }
  2855. // The Amazon Simple Notification Service (Amazon SNS) topic or topics to notify
  2856. // in order to report job status.
  2857. //
  2858. // To receive notifications, you must also subscribe to the new topic in the
  2859. // Amazon SNS console.
  2860. type Notifications struct {
  2861. _ struct{} `type:"structure"`
  2862. // The Amazon SNS topic that you want to notify when Elastic Transcoder has
  2863. // finished processing the job.
  2864. Completed *string `type:"string"`
  2865. // The Amazon SNS topic that you want to notify when Elastic Transcoder encounters
  2866. // an error condition.
  2867. Error *string `type:"string"`
  2868. // The Amazon Simple Notification Service (Amazon SNS) topic that you want to
  2869. // notify when Elastic Transcoder has started to process the job.
  2870. Progressing *string `type:"string"`
  2871. // The Amazon SNS topic that you want to notify when Elastic Transcoder encounters
  2872. // a warning condition.
  2873. Warning *string `type:"string"`
  2874. }
  2875. // String returns the string representation
  2876. func (s Notifications) String() string {
  2877. return awsutil.Prettify(s)
  2878. }
  2879. // GoString returns the string representation
  2880. func (s Notifications) GoString() string {
  2881. return s.String()
  2882. }
  2883. // The Permission structure.
  2884. type Permission struct {
  2885. _ struct{} `type:"structure"`
  2886. // The permission that you want to give to the AWS user that is listed in Grantee.
  2887. // Valid values include: READ: The grantee can read the thumbnails and metadata
  2888. // for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. READ_ACP:
  2889. // The grantee can read the object ACL for thumbnails that Elastic Transcoder
  2890. // adds to the Amazon S3 bucket. WRITE_ACP: The grantee can write the ACL for
  2891. // the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. FULL_CONTROL:
  2892. // The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails
  2893. // that Elastic Transcoder adds to the Amazon S3 bucket.
  2894. Access []*string `type:"list"`
  2895. // The AWS user or group that you want to have access to transcoded files and
  2896. // playlists. To identify the user or group, you can specify the canonical user
  2897. // ID for an AWS account, an origin access identity for a CloudFront distribution,
  2898. // the registered email address of an AWS account, or a predefined Amazon S3
  2899. // group.
  2900. Grantee *string `min:"1" type:"string"`
  2901. // The type of value that appears in the Grantee object: Canonical: Either
  2902. // the canonical user ID for an AWS account or an origin access identity for
  2903. // an Amazon CloudFront distribution. A canonical user ID is not the same as
  2904. // an AWS account number. Email: The registered email address of an AWS account.
  2905. // Group: One of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers,
  2906. // or LogDelivery.
  2907. GranteeType *string `type:"string"`
  2908. }
  2909. // String returns the string representation
  2910. func (s Permission) String() string {
  2911. return awsutil.Prettify(s)
  2912. }
  2913. // GoString returns the string representation
  2914. func (s Permission) GoString() string {
  2915. return s.String()
  2916. }
  2917. // Validate inspects the fields of the type to determine if they are valid.
  2918. func (s *Permission) Validate() error {
  2919. invalidParams := request.ErrInvalidParams{Context: "Permission"}
  2920. if s.Grantee != nil && len(*s.Grantee) < 1 {
  2921. invalidParams.Add(request.NewErrParamMinLen("Grantee", 1))
  2922. }
  2923. if invalidParams.Len() > 0 {
  2924. return invalidParams
  2925. }
  2926. return nil
  2927. }
  2928. // The pipeline (queue) that is used to manage jobs.
  2929. type Pipeline struct {
  2930. _ struct{} `type:"structure"`
  2931. // The Amazon Resource Name (ARN) for the pipeline.
  2932. Arn *string `type:"string"`
  2933. // The AWS Key Management Service (AWS KMS) key that you want to use with this
  2934. // pipeline.
  2935. //
  2936. // If you use either S3 or S3-AWS-KMS as your Encryption:Mode, you don't need
  2937. // to provide a key with your job because a default key, known as an AWS-KMS
  2938. // key, is created for you automatically. You need to provide an AWS-KMS key
  2939. // only if you want to use a non-default AWS-KMS key, or if you are using an
  2940. // Encryption:Mode of AES-PKCS7, AES-CTR, or AES-GCM.
  2941. AwsKmsKeyArn *string `type:"string"`
  2942. // Information about the Amazon S3 bucket in which you want Elastic Transcoder
  2943. // to save transcoded files and playlists. Either you specify both ContentConfig
  2944. // and ThumbnailConfig, or you specify OutputBucket.
  2945. //
  2946. // Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save
  2947. // transcoded files and playlists. Permissions: A list of the users and/or predefined
  2948. // Amazon S3 groups you want to have access to transcoded files and playlists,
  2949. // and the type of access that you want them to have. GranteeType: The type
  2950. // of value that appears in the Grantee object: Canonical: Either the canonical
  2951. // user ID for an AWS account or an origin access identity for an Amazon CloudFront
  2952. // distribution. Email: The registered email address of an AWS account. Group:
  2953. // One of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers,
  2954. // or LogDelivery. Grantee: The AWS user or group that you want to have access
  2955. // to transcoded files and playlists. Access: The permission that you want to
  2956. // give to the AWS user that is listed in Grantee. Valid values include: READ:
  2957. // The grantee can read the objects and metadata for objects that Elastic Transcoder
  2958. // adds to the Amazon S3 bucket. READ_ACP: The grantee can read the object ACL
  2959. // for objects that Elastic Transcoder adds to the Amazon S3 bucket. WRITE_ACP:
  2960. // The grantee can write the ACL for the objects that Elastic Transcoder adds
  2961. // to the Amazon S3 bucket. FULL_CONTROL: The grantee has READ, READ_ACP, and
  2962. // WRITE_ACP permissions for the objects that Elastic Transcoder adds to the
  2963. // Amazon S3 bucket. StorageClass: The Amazon S3 storage class, Standard
  2964. // or ReducedRedundancy, that you want Elastic Transcoder to assign to the video
  2965. // files and playlists that it stores in your Amazon S3 bucket.
  2966. ContentConfig *PipelineOutputConfig `type:"structure"`
  2967. // The identifier for the pipeline. You use this value to identify the pipeline
  2968. // in which you want to perform a variety of operations, such as creating a
  2969. // job or a preset.
  2970. Id *string `type:"string"`
  2971. // The Amazon S3 bucket from which Elastic Transcoder gets media files for transcoding
  2972. // and the graphics files, if any, that you want to use for watermarks.
  2973. InputBucket *string `type:"string"`
  2974. // The name of the pipeline. We recommend that the name be unique within the
  2975. // AWS account, but uniqueness is not enforced.
  2976. //
  2977. // Constraints: Maximum 40 characters
  2978. Name *string `min:"1" type:"string"`
  2979. // The Amazon Simple Notification Service (Amazon SNS) topic that you want to
  2980. // notify to report job status.
  2981. //
  2982. // To receive notifications, you must also subscribe to the new topic in the
  2983. // Amazon SNS console. Progressing (optional): The Amazon Simple Notification
  2984. // Service (Amazon SNS) topic that you want to notify when Elastic Transcoder
  2985. // has started to process the job. Completed (optional): The Amazon SNS topic
  2986. // that you want to notify when Elastic Transcoder has finished processing the
  2987. // job. Warning (optional): The Amazon SNS topic that you want to notify when
  2988. // Elastic Transcoder encounters a warning condition. Error (optional): The
  2989. // Amazon SNS topic that you want to notify when Elastic Transcoder encounters
  2990. // an error condition.
  2991. Notifications *Notifications `type:"structure"`
  2992. // The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded
  2993. // files, thumbnails, and playlists. Either you specify this value, or you specify
  2994. // both ContentConfig and ThumbnailConfig.
  2995. OutputBucket *string `type:"string"`
  2996. // The IAM Amazon Resource Name (ARN) for the role that Elastic Transcoder uses
  2997. // to transcode jobs for this pipeline.
  2998. Role *string `type:"string"`
  2999. // The current status of the pipeline:
  3000. //
  3001. // Active: The pipeline is processing jobs. Paused: The pipeline is not currently
  3002. // processing jobs.
  3003. Status *string `type:"string"`
  3004. // Information about the Amazon S3 bucket in which you want Elastic Transcoder
  3005. // to save thumbnail files. Either you specify both ContentConfig and ThumbnailConfig,
  3006. // or you specify OutputBucket.
  3007. //
  3008. // Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save
  3009. // thumbnail files. Permissions: A list of the users and/or predefined Amazon
  3010. // S3 groups you want to have access to thumbnail files, and the type of access
  3011. // that you want them to have. GranteeType: The type of value that appears
  3012. // in the Grantee object: Canonical: Either the canonical user ID for an AWS
  3013. // account or an origin access identity for an Amazon CloudFront distribution.
  3014. // A canonical user ID is not the same as an AWS account number. Email: The
  3015. // registered email address of an AWS account. Group: One of the following predefined
  3016. // Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery. Grantee:
  3017. // The AWS user or group that you want to have access to thumbnail files. Access:
  3018. // The permission that you want to give to the AWS user that is listed in Grantee.
  3019. // Valid values include: READ: The grantee can read the thumbnails and metadata
  3020. // for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. READ_ACP:
  3021. // The grantee can read the object ACL for thumbnails that Elastic Transcoder
  3022. // adds to the Amazon S3 bucket. WRITE_ACP: The grantee can write the ACL for
  3023. // the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. FULL_CONTROL:
  3024. // The grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails
  3025. // that Elastic Transcoder adds to the Amazon S3 bucket. StorageClass: The
  3026. // Amazon S3 storage class, Standard or ReducedRedundancy, that you want Elastic
  3027. // Transcoder to assign to the thumbnails that it stores in your Amazon S3 bucket.
  3028. ThumbnailConfig *PipelineOutputConfig `type:"structure"`
  3029. }
  3030. // String returns the string representation
  3031. func (s Pipeline) String() string {
  3032. return awsutil.Prettify(s)
  3033. }
  3034. // GoString returns the string representation
  3035. func (s Pipeline) GoString() string {
  3036. return s.String()
  3037. }
  3038. // The PipelineOutputConfig structure.
  3039. type PipelineOutputConfig struct {
  3040. _ struct{} `type:"structure"`
  3041. // The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded
  3042. // files. Specify this value when all of the following are true: You want to
  3043. // save transcoded files, thumbnails (if any), and playlists (if any) together
  3044. // in one bucket. You do not want to specify the users or groups who have access
  3045. // to the transcoded files, thumbnails, and playlists. You do not want to specify
  3046. // the permissions that Elastic Transcoder grants to the files. You want to
  3047. // associate the transcoded files and thumbnails with the Amazon S3 Standard
  3048. // storage class. If you want to save transcoded files and playlists in one
  3049. // bucket and thumbnails in another bucket, specify which users can access the
  3050. // transcoded files or the permissions the users have, or change the Amazon
  3051. // S3 storage class, omit OutputBucket and specify values for ContentConfig
  3052. // and ThumbnailConfig instead.
  3053. Bucket *string `type:"string"`
  3054. // Optional. The Permissions object specifies which users and/or predefined
  3055. // Amazon S3 groups you want to have access to transcoded files and playlists,
  3056. // and the type of access you want them to have. You can grant permissions to
  3057. // a maximum of 30 users and/or predefined Amazon S3 groups.
  3058. //
  3059. // If you include Permissions, Elastic Transcoder grants only the permissions
  3060. // that you specify. It does not grant full permissions to the owner of the
  3061. // role specified by Role. If you want that user to have full control, you must
  3062. // explicitly grant full control to the user.
  3063. //
  3064. // If you omit Permissions, Elastic Transcoder grants full control over the
  3065. // transcoded files and playlists to the owner of the role specified by Role,
  3066. // and grants no other permissions to any other user or group.
  3067. Permissions []*Permission `type:"list"`
  3068. // The Amazon S3 storage class, Standard or ReducedRedundancy, that you want
  3069. // Elastic Transcoder to assign to the video files and playlists that it stores
  3070. // in your Amazon S3 bucket.
  3071. StorageClass *string `type:"string"`
  3072. }
  3073. // String returns the string representation
  3074. func (s PipelineOutputConfig) String() string {
  3075. return awsutil.Prettify(s)
  3076. }
  3077. // GoString returns the string representation
  3078. func (s PipelineOutputConfig) GoString() string {
  3079. return s.String()
  3080. }
  3081. // Validate inspects the fields of the type to determine if they are valid.
  3082. func (s *PipelineOutputConfig) Validate() error {
  3083. invalidParams := request.ErrInvalidParams{Context: "PipelineOutputConfig"}
  3084. if s.Permissions != nil {
  3085. for i, v := range s.Permissions {
  3086. if v == nil {
  3087. continue
  3088. }
  3089. if err := v.Validate(); err != nil {
  3090. invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Permissions", i), err.(request.ErrInvalidParams))
  3091. }
  3092. }
  3093. }
  3094. if invalidParams.Len() > 0 {
  3095. return invalidParams
  3096. }
  3097. return nil
  3098. }
  3099. // The PlayReady DRM settings, if any, that you want Elastic Transcoder to apply
  3100. // to the output files associated with this playlist.
  3101. //
  3102. // PlayReady DRM encrypts your media files using AES-CTR encryption.
  3103. //
  3104. // If you use DRM for an HLSv3 playlist, your outputs must have a master playlist.
  3105. type PlayReadyDrm struct {
  3106. _ struct{} `type:"structure"`
  3107. // The type of DRM, if any, that you want Elastic Transcoder to apply to the
  3108. // output files associated with this playlist.
  3109. Format *string `type:"string"`
  3110. // The series of random bits created by a random bit generator, unique for every
  3111. // encryption operation, that you want Elastic Transcoder to use to encrypt
  3112. // your files. The initialization vector must be base64-encoded, and it must
  3113. // be exactly 8 bytes long before being base64-encoded. If no initialization
  3114. // vector is provided, Elastic Transcoder generates one for you.
  3115. InitializationVector *string `type:"string"`
  3116. // The DRM key for your file, provided by your DRM license provider. The key
  3117. // must be base64-encoded, and it must be one of the following bit lengths before
  3118. // being base64-encoded:
  3119. //
  3120. // 128, 192, or 256.
  3121. //
  3122. // The key must also be encrypted by using AWS KMS.
  3123. Key *string `type:"string"`
  3124. // The ID for your DRM key, so that your DRM license provider knows which key
  3125. // to provide.
  3126. //
  3127. // The key ID must be provided in big endian, and Elastic Transcoder will convert
  3128. // it to little endian before inserting it into the PlayReady DRM headers. If
  3129. // you are unsure whether your license server provides your key ID in big or
  3130. // little endian, check with your DRM provider.
  3131. KeyId *string `type:"string"`
  3132. // The MD5 digest of the key used for DRM on your file, and that you want Elastic
  3133. // Transcoder to use as a checksum to make sure your key was not corrupted in
  3134. // transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes
  3135. // before being base64-encoded.
  3136. KeyMd5 *string `type:"string"`
  3137. // The location of the license key required to play DRM content. The URL must
  3138. // be an absolute path, and is referenced by the PlayReady header. The PlayReady
  3139. // header is referenced in the protection header of the client manifest for
  3140. // Smooth Streaming outputs, and in the EXT-X-DXDRM and EXT-XDXDRMINFO metadata
  3141. // tags for HLS playlist outputs. An example URL looks like this: https://www.example.com/exampleKey/
  3142. LicenseAcquisitionUrl *string `min:"1" type:"string"`
  3143. }
  3144. // String returns the string representation
  3145. func (s PlayReadyDrm) String() string {
  3146. return awsutil.Prettify(s)
  3147. }
  3148. // GoString returns the string representation
  3149. func (s PlayReadyDrm) GoString() string {
  3150. return s.String()
  3151. }
  3152. // Validate inspects the fields of the type to determine if they are valid.
  3153. func (s *PlayReadyDrm) Validate() error {
  3154. invalidParams := request.ErrInvalidParams{Context: "PlayReadyDrm"}
  3155. if s.LicenseAcquisitionUrl != nil && len(*s.LicenseAcquisitionUrl) < 1 {
  3156. invalidParams.Add(request.NewErrParamMinLen("LicenseAcquisitionUrl", 1))
  3157. }
  3158. if invalidParams.Len() > 0 {
  3159. return invalidParams
  3160. }
  3161. return nil
  3162. }
  3163. // Use Only for Fragmented MP4 or MPEG-TS Outputs. If you specify a preset for
  3164. // which the value of Container is fmp4 (Fragmented MP4) or ts (MPEG-TS), Playlists
  3165. // contains information about the master playlists that you want Elastic Transcoder
  3166. // to create. We recommend that you create only one master playlist per output
  3167. // format. The maximum number of master playlists in a job is 30.
  3168. type Playlist struct {
  3169. _ struct{} `type:"structure"`
  3170. // The format of the output playlist. Valid formats include HLSv3, HLSv4, and
  3171. // Smooth.
  3172. Format *string `type:"string"`
  3173. // The HLS content protection settings, if any, that you want Elastic Transcoder
  3174. // to apply to the output files associated with this playlist.
  3175. HlsContentProtection *HlsContentProtection `type:"structure"`
  3176. // The name that you want Elastic Transcoder to assign to the master playlist,
  3177. // for example, nyc-vacation.m3u8. If the name includes a / character, the section
  3178. // of the name before the last / must be identical for all Name objects. If
  3179. // you create more than one master playlist, the values of all Name objects
  3180. // must be unique.
  3181. //
  3182. // Note: Elastic Transcoder automatically appends the relevant file extension
  3183. // to the file name (.m3u8 for HLSv3 and HLSv4 playlists, and .ism and .ismc
  3184. // for Smooth playlists). If you include a file extension in Name, the file
  3185. // name will have two extensions.
  3186. Name *string `min:"1" type:"string"`
  3187. // For each output in this job that you want to include in a master playlist,
  3188. // the value of the Outputs:Key object.
  3189. //
  3190. // If your output is not HLS or does not have a segment duration set, the
  3191. // name of the output file is a concatenation of OutputKeyPrefix and Outputs:Key:
  3192. //
  3193. // OutputKeyPrefixOutputs:Key
  3194. //
  3195. // If your output is HLSv3 and has a segment duration set, or is not included
  3196. // in a playlist, Elastic Transcoder creates an output playlist file with a
  3197. // file extension of .m3u8, and a series of .ts files that include a five-digit
  3198. // sequential counter beginning with 00000:
  3199. //
  3200. // OutputKeyPrefixOutputs:Key.m3u8
  3201. //
  3202. // OutputKeyPrefixOutputs:Key00000.ts
  3203. //
  3204. // If your output is HLSv4, has a segment duration set, and is included in
  3205. // an HLSv4 playlist, Elastic Transcoder creates an output playlist file with
  3206. // a file extension of _v4.m3u8. If the output is video, Elastic Transcoder
  3207. // also creates an output file with an extension of _iframe.m3u8:
  3208. //
  3209. // OutputKeyPrefixOutputs:Key_v4.m3u8
  3210. //
  3211. // OutputKeyPrefixOutputs:Key_iframe.m3u8
  3212. //
  3213. // OutputKeyPrefixOutputs:Key.ts
  3214. //
  3215. // Elastic Transcoder automatically appends the relevant file extension to
  3216. // the file name. If you include a file extension in Output Key, the file name
  3217. // will have two extensions.
  3218. //
  3219. // If you include more than one output in a playlist, any segment duration
  3220. // settings, clip settings, or caption settings must be the same for all outputs
  3221. // in the playlist. For Smooth playlists, the Audio:Profile, Video:Profile,
  3222. // and Video:FrameRate to Video:KeyframesMaxDist ratio must be the same for
  3223. // all outputs.
  3224. OutputKeys []*string `type:"list"`
  3225. // The DRM settings, if any, that you want Elastic Transcoder to apply to the
  3226. // output files associated with this playlist.
  3227. PlayReadyDrm *PlayReadyDrm `type:"structure"`
  3228. // The status of the job with which the playlist is associated.
  3229. Status *string `type:"string"`
  3230. // Information that further explains the status.
  3231. StatusDetail *string `type:"string"`
  3232. }
  3233. // String returns the string representation
  3234. func (s Playlist) String() string {
  3235. return awsutil.Prettify(s)
  3236. }
  3237. // GoString returns the string representation
  3238. func (s Playlist) GoString() string {
  3239. return s.String()
  3240. }
  3241. // Presets are templates that contain most of the settings for transcoding media
  3242. // files from one format to another. Elastic Transcoder includes some default
  3243. // presets for common formats, for example, several iPod and iPhone versions.
  3244. // You can also create your own presets for formats that aren't included among
  3245. // the default presets. You specify which preset you want to use when you create
  3246. // a job.
  3247. type Preset struct {
  3248. _ struct{} `type:"structure"`
  3249. // The Amazon Resource Name (ARN) for the preset.
  3250. Arn *string `type:"string"`
  3251. // A section of the response body that provides information about the audio
  3252. // preset values.
  3253. Audio *AudioParameters `type:"structure"`
  3254. // The container type for the output file. Valid values include flac, flv, fmp4,
  3255. // gif, mp3, mp4, mpg, mxf, oga, ogg, ts, and webm.
  3256. Container *string `type:"string"`
  3257. // A description of the preset.
  3258. Description *string `type:"string"`
  3259. // Identifier for the new preset. You use this value to get settings for the
  3260. // preset or to delete it.
  3261. Id *string `type:"string"`
  3262. // The name of the preset.
  3263. Name *string `min:"1" type:"string"`
  3264. // A section of the response body that provides information about the thumbnail
  3265. // preset values, if any.
  3266. Thumbnails *Thumbnails `type:"structure"`
  3267. // Whether the preset is a default preset provided by Elastic Transcoder (System)
  3268. // or a preset that you have defined (Custom).
  3269. Type *string `type:"string"`
  3270. // A section of the response body that provides information about the video
  3271. // preset values.
  3272. Video *VideoParameters `type:"structure"`
  3273. }
  3274. // String returns the string representation
  3275. func (s Preset) String() string {
  3276. return awsutil.Prettify(s)
  3277. }
  3278. // GoString returns the string representation
  3279. func (s Preset) GoString() string {
  3280. return s.String()
  3281. }
  3282. // Settings for the size, location, and opacity of graphics that you want Elastic
  3283. // Transcoder to overlay over videos that are transcoded using this preset.
  3284. // You can specify settings for up to four watermarks. Watermarks appear in
  3285. // the specified size and location, and with the specified opacity for the duration
  3286. // of the transcoded video.
  3287. //
  3288. // Watermarks can be in .png or .jpg format. If you want to display a watermark
  3289. // that is not rectangular, use the .png format, which supports transparency.
  3290. //
  3291. // When you create a job that uses this preset, you specify the .png or .jpg
  3292. // graphics that you want Elastic Transcoder to include in the transcoded videos.
  3293. // You can specify fewer graphics in the job than you specify watermark settings
  3294. // in the preset, which allows you to use the same preset for up to four watermarks
  3295. // that have different dimensions.
  3296. type PresetWatermark struct {
  3297. _ struct{} `type:"structure"`
  3298. // The horizontal position of the watermark unless you specify a non-zero value
  3299. // for HorizontalOffset: Left: The left edge of the watermark is aligned with
  3300. // the left border of the video. Right: The right edge of the watermark is aligned
  3301. // with the right border of the video. Center: The watermark is centered between
  3302. // the left and right borders.
  3303. HorizontalAlign *string `type:"string"`
  3304. // The amount by which you want the horizontal position of the watermark to
  3305. // be offset from the position specified by HorizontalAlign: number of pixels
  3306. // (px): The minimum value is 0 pixels, and the maximum value is the value of
  3307. // MaxWidth. integer percentage (%): The range of valid values is 0 to 100.
  3308. // For example, if you specify Left for HorizontalAlign and 5px for HorizontalOffset,
  3309. // the left side of the watermark appears 5 pixels from the left border of the
  3310. // output video.
  3311. //
  3312. // HorizontalOffset is only valid when the value of HorizontalAlign is Left
  3313. // or Right. If you specify an offset that causes the watermark to extend beyond
  3314. // the left or right border and Elastic Transcoder has not added black bars,
  3315. // the watermark is cropped. If Elastic Transcoder has added black bars, the
  3316. // watermark extends into the black bars. If the watermark extends beyond the
  3317. // black bars, it is cropped.
  3318. //
  3319. // Use the value of Target to specify whether you want to include the black
  3320. // bars that are added by Elastic Transcoder, if any, in the offset calculation.
  3321. HorizontalOffset *string `type:"string"`
  3322. // A unique identifier for the settings for one watermark. The value of Id can
  3323. // be up to 40 characters long.
  3324. Id *string `min:"1" type:"string"`
  3325. // The maximum height of the watermark in one of the following formats: number
  3326. // of pixels (px): The minimum value is 16 pixels, and the maximum value is
  3327. // the value of MaxHeight. integer percentage (%): The range of valid values
  3328. // is 0 to 100. Use the value of Target to specify whether you want Elastic
  3329. // Transcoder to include the black bars that are added by Elastic Transcoder,
  3330. // if any, in the calculation. If you specify the value in pixels, it must
  3331. // be less than or equal to the value of MaxHeight.
  3332. MaxHeight *string `type:"string"`
  3333. // The maximum width of the watermark in one of the following formats: number
  3334. // of pixels (px): The minimum value is 16 pixels, and the maximum value is
  3335. // the value of MaxWidth. integer percentage (%): The range of valid values
  3336. // is 0 to 100. Use the value of Target to specify whether you want Elastic
  3337. // Transcoder to include the black bars that are added by Elastic Transcoder,
  3338. // if any, in the calculation. If you specify the value in pixels, it must be
  3339. // less than or equal to the value of MaxWidth.
  3340. MaxWidth *string `type:"string"`
  3341. // A percentage that indicates how much you want a watermark to obscure the
  3342. // video in the location where it appears. Valid values are 0 (the watermark
  3343. // is invisible) to 100 (the watermark completely obscures the video in the
  3344. // specified location). The datatype of Opacity is float.
  3345. //
  3346. // Elastic Transcoder supports transparent .png graphics. If you use a transparent
  3347. // .png, the transparent portion of the video appears as if you had specified
  3348. // a value of 0 for Opacity. The .jpg file format doesn't support transparency.
  3349. Opacity *string `type:"string"`
  3350. // A value that controls scaling of the watermark: Fit: Elastic Transcoder
  3351. // scales the watermark so it matches the value that you specified in either
  3352. // MaxWidth or MaxHeight without exceeding the other value. Stretch: Elastic
  3353. // Transcoder stretches the watermark to match the values that you specified
  3354. // for MaxWidth and MaxHeight. If the relative proportions of the watermark
  3355. // and the values of MaxWidth and MaxHeight are different, the watermark will
  3356. // be distorted. ShrinkToFit: Elastic Transcoder scales the watermark down so
  3357. // that its dimensions match the values that you specified for at least one
  3358. // of MaxWidth and MaxHeight without exceeding either value. If you specify
  3359. // this option, Elastic Transcoder does not scale the watermark up.
  3360. SizingPolicy *string `type:"string"`
  3361. // A value that determines how Elastic Transcoder interprets values that you
  3362. // specified for HorizontalOffset, VerticalOffset, MaxWidth, and MaxHeight:
  3363. // Content: HorizontalOffset and VerticalOffset values are calculated based
  3364. // on the borders of the video excluding black bars added by Elastic Transcoder,
  3365. // if any. In addition, MaxWidth and MaxHeight, if specified as a percentage,
  3366. // are calculated based on the borders of the video excluding black bars added
  3367. // by Elastic Transcoder, if any. Frame: HorizontalOffset and VerticalOffset
  3368. // values are calculated based on the borders of the video including black bars
  3369. // added by Elastic Transcoder, if any. In addition, MaxWidth and MaxHeight,
  3370. // if specified as a percentage, are calculated based on the borders of the
  3371. // video including black bars added by Elastic Transcoder, if any.
  3372. Target *string `type:"string"`
  3373. // The vertical position of the watermark unless you specify a non-zero value
  3374. // for VerticalOffset: Top: The top edge of the watermark is aligned with the
  3375. // top border of the video. Bottom: The bottom edge of the watermark is aligned
  3376. // with the bottom border of the video. Center: The watermark is centered between
  3377. // the top and bottom borders.
  3378. VerticalAlign *string `type:"string"`
  3379. // VerticalOffset The amount by which you want the vertical position of the
  3380. // watermark to be offset from the position specified by VerticalAlign: number
  3381. // of pixels (px): The minimum value is 0 pixels, and the maximum value is the
  3382. // value of MaxHeight. integer percentage (%): The range of valid values is
  3383. // 0 to 100. For example, if you specify Top for VerticalAlign and 5px for
  3384. // VerticalOffset, the top of the watermark appears 5 pixels from the top border
  3385. // of the output video.
  3386. //
  3387. // VerticalOffset is only valid when the value of VerticalAlign is Top or Bottom.
  3388. //
  3389. // If you specify an offset that causes the watermark to extend beyond the
  3390. // top or bottom border and Elastic Transcoder has not added black bars, the
  3391. // watermark is cropped. If Elastic Transcoder has added black bars, the watermark
  3392. // extends into the black bars. If the watermark extends beyond the black bars,
  3393. // it is cropped.
  3394. //
  3395. // Use the value of Target to specify whether you want Elastic Transcoder to
  3396. // include the black bars that are added by Elastic Transcoder, if any, in the
  3397. // offset calculation.
  3398. VerticalOffset *string `type:"string"`
  3399. }
  3400. // String returns the string representation
  3401. func (s PresetWatermark) String() string {
  3402. return awsutil.Prettify(s)
  3403. }
  3404. // GoString returns the string representation
  3405. func (s PresetWatermark) GoString() string {
  3406. return s.String()
  3407. }
  3408. // Validate inspects the fields of the type to determine if they are valid.
  3409. func (s *PresetWatermark) Validate() error {
  3410. invalidParams := request.ErrInvalidParams{Context: "PresetWatermark"}
  3411. if s.Id != nil && len(*s.Id) < 1 {
  3412. invalidParams.Add(request.NewErrParamMinLen("Id", 1))
  3413. }
  3414. if invalidParams.Len() > 0 {
  3415. return invalidParams
  3416. }
  3417. return nil
  3418. }
  3419. // The ReadJobRequest structure.
  3420. type ReadJobInput struct {
  3421. _ struct{} `type:"structure"`
  3422. // The identifier of the job for which you want to get detailed information.
  3423. Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
  3424. }
  3425. // String returns the string representation
  3426. func (s ReadJobInput) String() string {
  3427. return awsutil.Prettify(s)
  3428. }
  3429. // GoString returns the string representation
  3430. func (s ReadJobInput) GoString() string {
  3431. return s.String()
  3432. }
  3433. // Validate inspects the fields of the type to determine if they are valid.
  3434. func (s *ReadJobInput) Validate() error {
  3435. invalidParams := request.ErrInvalidParams{Context: "ReadJobInput"}
  3436. if s.Id == nil {
  3437. invalidParams.Add(request.NewErrParamRequired("Id"))
  3438. }
  3439. if invalidParams.Len() > 0 {
  3440. return invalidParams
  3441. }
  3442. return nil
  3443. }
  3444. // The ReadJobResponse structure.
  3445. type ReadJobOutput struct {
  3446. _ struct{} `type:"structure"`
  3447. // A section of the response body that provides information about the job.
  3448. Job *Job `type:"structure"`
  3449. }
  3450. // String returns the string representation
  3451. func (s ReadJobOutput) String() string {
  3452. return awsutil.Prettify(s)
  3453. }
  3454. // GoString returns the string representation
  3455. func (s ReadJobOutput) GoString() string {
  3456. return s.String()
  3457. }
  3458. // The ReadPipelineRequest structure.
  3459. type ReadPipelineInput struct {
  3460. _ struct{} `type:"structure"`
  3461. // The identifier of the pipeline to read.
  3462. Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
  3463. }
  3464. // String returns the string representation
  3465. func (s ReadPipelineInput) String() string {
  3466. return awsutil.Prettify(s)
  3467. }
  3468. // GoString returns the string representation
  3469. func (s ReadPipelineInput) GoString() string {
  3470. return s.String()
  3471. }
  3472. // Validate inspects the fields of the type to determine if they are valid.
  3473. func (s *ReadPipelineInput) Validate() error {
  3474. invalidParams := request.ErrInvalidParams{Context: "ReadPipelineInput"}
  3475. if s.Id == nil {
  3476. invalidParams.Add(request.NewErrParamRequired("Id"))
  3477. }
  3478. if invalidParams.Len() > 0 {
  3479. return invalidParams
  3480. }
  3481. return nil
  3482. }
  3483. // The ReadPipelineResponse structure.
  3484. type ReadPipelineOutput struct {
  3485. _ struct{} `type:"structure"`
  3486. // A section of the response body that provides information about the pipeline.
  3487. Pipeline *Pipeline `type:"structure"`
  3488. // Elastic Transcoder returns a warning if the resources used by your pipeline
  3489. // are not in the same region as the pipeline.
  3490. //
  3491. // Using resources in the same region, such as your Amazon S3 buckets, Amazon
  3492. // SNS notification topics, and AWS KMS key, reduces processing time and prevents
  3493. // cross-regional charges.
  3494. Warnings []*Warning `type:"list"`
  3495. }
  3496. // String returns the string representation
  3497. func (s ReadPipelineOutput) String() string {
  3498. return awsutil.Prettify(s)
  3499. }
  3500. // GoString returns the string representation
  3501. func (s ReadPipelineOutput) GoString() string {
  3502. return s.String()
  3503. }
  3504. // The ReadPresetRequest structure.
  3505. type ReadPresetInput struct {
  3506. _ struct{} `type:"structure"`
  3507. // The identifier of the preset for which you want to get detailed information.
  3508. Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
  3509. }
  3510. // String returns the string representation
  3511. func (s ReadPresetInput) String() string {
  3512. return awsutil.Prettify(s)
  3513. }
  3514. // GoString returns the string representation
  3515. func (s ReadPresetInput) GoString() string {
  3516. return s.String()
  3517. }
  3518. // Validate inspects the fields of the type to determine if they are valid.
  3519. func (s *ReadPresetInput) Validate() error {
  3520. invalidParams := request.ErrInvalidParams{Context: "ReadPresetInput"}
  3521. if s.Id == nil {
  3522. invalidParams.Add(request.NewErrParamRequired("Id"))
  3523. }
  3524. if invalidParams.Len() > 0 {
  3525. return invalidParams
  3526. }
  3527. return nil
  3528. }
  3529. // The ReadPresetResponse structure.
  3530. type ReadPresetOutput struct {
  3531. _ struct{} `type:"structure"`
  3532. // A section of the response body that provides information about the preset.
  3533. Preset *Preset `type:"structure"`
  3534. }
  3535. // String returns the string representation
  3536. func (s ReadPresetOutput) String() string {
  3537. return awsutil.Prettify(s)
  3538. }
  3539. // GoString returns the string representation
  3540. func (s ReadPresetOutput) GoString() string {
  3541. return s.String()
  3542. }
  3543. // The TestRoleRequest structure.
  3544. type TestRoleInput struct {
  3545. _ struct{} `type:"structure"`
  3546. // The Amazon S3 bucket that contains media files to be transcoded. The action
  3547. // attempts to read from this bucket.
  3548. InputBucket *string `type:"string" required:"true"`
  3549. // The Amazon S3 bucket that Elastic Transcoder will write transcoded media
  3550. // files to. The action attempts to read from this bucket.
  3551. OutputBucket *string `type:"string" required:"true"`
  3552. // The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder
  3553. // to test.
  3554. Role *string `type:"string" required:"true"`
  3555. // The ARNs of one or more Amazon Simple Notification Service (Amazon SNS) topics
  3556. // that you want the action to send a test notification to.
  3557. Topics []*string `type:"list" required:"true"`
  3558. }
  3559. // String returns the string representation
  3560. func (s TestRoleInput) String() string {
  3561. return awsutil.Prettify(s)
  3562. }
  3563. // GoString returns the string representation
  3564. func (s TestRoleInput) GoString() string {
  3565. return s.String()
  3566. }
  3567. // Validate inspects the fields of the type to determine if they are valid.
  3568. func (s *TestRoleInput) Validate() error {
  3569. invalidParams := request.ErrInvalidParams{Context: "TestRoleInput"}
  3570. if s.InputBucket == nil {
  3571. invalidParams.Add(request.NewErrParamRequired("InputBucket"))
  3572. }
  3573. if s.OutputBucket == nil {
  3574. invalidParams.Add(request.NewErrParamRequired("OutputBucket"))
  3575. }
  3576. if s.Role == nil {
  3577. invalidParams.Add(request.NewErrParamRequired("Role"))
  3578. }
  3579. if s.Topics == nil {
  3580. invalidParams.Add(request.NewErrParamRequired("Topics"))
  3581. }
  3582. if invalidParams.Len() > 0 {
  3583. return invalidParams
  3584. }
  3585. return nil
  3586. }
  3587. // The TestRoleResponse structure.
  3588. type TestRoleOutput struct {
  3589. _ struct{} `type:"structure"`
  3590. // If the Success element contains false, this value is an array of one or more
  3591. // error messages that were generated during the test process.
  3592. Messages []*string `type:"list"`
  3593. // If the operation is successful, this value is true; otherwise, the value
  3594. // is false.
  3595. Success *string `type:"string"`
  3596. }
  3597. // String returns the string representation
  3598. func (s TestRoleOutput) String() string {
  3599. return awsutil.Prettify(s)
  3600. }
  3601. // GoString returns the string representation
  3602. func (s TestRoleOutput) GoString() string {
  3603. return s.String()
  3604. }
  3605. // Thumbnails for videos.
  3606. type Thumbnails struct {
  3607. _ struct{} `type:"structure"`
  3608. // To better control resolution and aspect ratio of thumbnails, we recommend
  3609. // that you use the values MaxWidth, MaxHeight, SizingPolicy, and PaddingPolicy
  3610. // instead of Resolution and AspectRatio. The two groups of settings are mutually
  3611. // exclusive. Do not use them together.
  3612. //
  3613. // The aspect ratio of thumbnails. Valid values include:
  3614. //
  3615. // auto, 1:1, 4:3, 3:2, 16:9
  3616. //
  3617. // If you specify auto, Elastic Transcoder tries to preserve the aspect ratio
  3618. // of the video in the output file.
  3619. AspectRatio *string `type:"string"`
  3620. // The format of thumbnails, if any. Valid values are jpg and png.
  3621. //
  3622. // You specify whether you want Elastic Transcoder to create thumbnails when
  3623. // you create a job.
  3624. Format *string `type:"string"`
  3625. // The approximate number of seconds between thumbnails. Specify an integer
  3626. // value.
  3627. Interval *string `type:"string"`
  3628. // The maximum height of thumbnails in pixels. If you specify auto, Elastic
  3629. // Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric
  3630. // value, enter an even integer between 32 and 3072.
  3631. MaxHeight *string `type:"string"`
  3632. // The maximum width of thumbnails in pixels. If you specify auto, Elastic Transcoder
  3633. // uses 1920 (Full HD) as the default value. If you specify a numeric value,
  3634. // enter an even integer between 32 and 4096.
  3635. MaxWidth *string `type:"string"`
  3636. // When you set PaddingPolicy to Pad, Elastic Transcoder may add black bars
  3637. // to the top and bottom and/or left and right sides of thumbnails to make the
  3638. // total size of the thumbnails match the values that you specified for thumbnail
  3639. // MaxWidth and MaxHeight settings.
  3640. PaddingPolicy *string `type:"string"`
  3641. // To better control resolution and aspect ratio of thumbnails, we recommend
  3642. // that you use the values MaxWidth, MaxHeight, SizingPolicy, and PaddingPolicy
  3643. // instead of Resolution and AspectRatio. The two groups of settings are mutually
  3644. // exclusive. Do not use them together.
  3645. //
  3646. // The width and height of thumbnail files in pixels. Specify a value in the
  3647. // format width x height where both values are even integers. The values cannot
  3648. // exceed the width and height that you specified in the Video:Resolution object.
  3649. Resolution *string `type:"string"`
  3650. // Specify one of the following values to control scaling of thumbnails:
  3651. //
  3652. // Fit: Elastic Transcoder scales thumbnails so they match the value that
  3653. // you specified in thumbnail MaxWidth or MaxHeight settings without exceeding
  3654. // the other value. Fill: Elastic Transcoder scales thumbnails so they match
  3655. // the value that you specified in thumbnail MaxWidth or MaxHeight settings
  3656. // and matches or exceeds the other value. Elastic Transcoder centers the image
  3657. // in thumbnails and then crops in the dimension (if any) that exceeds the maximum
  3658. // value. Stretch: Elastic Transcoder stretches thumbnails to match the values
  3659. // that you specified for thumbnail MaxWidth and MaxHeight settings. If the
  3660. // relative proportions of the input video and thumbnails are different, the
  3661. // thumbnails will be distorted. Keep: Elastic Transcoder does not scale thumbnails.
  3662. // If either dimension of the input video exceeds the values that you specified
  3663. // for thumbnail MaxWidth and MaxHeight settings, Elastic Transcoder crops the
  3664. // thumbnails. ShrinkToFit: Elastic Transcoder scales thumbnails down so that
  3665. // their dimensions match the values that you specified for at least one of
  3666. // thumbnail MaxWidth and MaxHeight without exceeding either value. If you specify
  3667. // this option, Elastic Transcoder does not scale thumbnails up. ShrinkToFill:
  3668. // Elastic Transcoder scales thumbnails down so that their dimensions match
  3669. // the values that you specified for at least one of MaxWidth and MaxHeight
  3670. // without dropping below either value. If you specify this option, Elastic
  3671. // Transcoder does not scale thumbnails up.
  3672. SizingPolicy *string `type:"string"`
  3673. }
  3674. // String returns the string representation
  3675. func (s Thumbnails) String() string {
  3676. return awsutil.Prettify(s)
  3677. }
  3678. // GoString returns the string representation
  3679. func (s Thumbnails) GoString() string {
  3680. return s.String()
  3681. }
  3682. // Settings that determine when a clip begins and how long it lasts.
  3683. type TimeSpan struct {
  3684. _ struct{} `type:"structure"`
  3685. // The duration of the clip. The format can be either HH:mm:ss.SSS (maximum
  3686. // value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum
  3687. // value: 86399.999). If you don't specify a value, Elastic Transcoder creates
  3688. // an output file from StartTime to the end of the file.
  3689. //
  3690. // If you specify a value longer than the duration of the input file, Elastic
  3691. // Transcoder transcodes the file and returns a warning message.
  3692. Duration *string `type:"string"`
  3693. // The place in the input file where you want a clip to start. The format can
  3694. // be either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of
  3695. // a second) or sssss.SSS (maximum value: 86399.999). If you don't specify a
  3696. // value, Elastic Transcoder starts at the beginning of the input file.
  3697. StartTime *string `type:"string"`
  3698. }
  3699. // String returns the string representation
  3700. func (s TimeSpan) String() string {
  3701. return awsutil.Prettify(s)
  3702. }
  3703. // GoString returns the string representation
  3704. func (s TimeSpan) GoString() string {
  3705. return s.String()
  3706. }
  3707. // Details about the timing of a job.
  3708. type Timing struct {
  3709. _ struct{} `type:"structure"`
  3710. // The time the job finished transcoding, in epoch milliseconds.
  3711. FinishTimeMillis *int64 `type:"long"`
  3712. // The time the job began transcoding, in epoch milliseconds.
  3713. StartTimeMillis *int64 `type:"long"`
  3714. // The time the job was submitted to Elastic Transcoder, in epoch milliseconds.
  3715. SubmitTimeMillis *int64 `type:"long"`
  3716. }
  3717. // String returns the string representation
  3718. func (s Timing) String() string {
  3719. return awsutil.Prettify(s)
  3720. }
  3721. // GoString returns the string representation
  3722. func (s Timing) GoString() string {
  3723. return s.String()
  3724. }
  3725. // The UpdatePipelineRequest structure.
  3726. type UpdatePipelineInput struct {
  3727. _ struct{} `type:"structure"`
  3728. // The AWS Key Management Service (AWS KMS) key that you want to use with this
  3729. // pipeline.
  3730. //
  3731. // If you use either S3 or S3-AWS-KMS as your Encryption:Mode, you don't need
  3732. // to provide a key with your job because a default key, known as an AWS-KMS
  3733. // key, is created for you automatically. You need to provide an AWS-KMS key
  3734. // only if you want to use a non-default AWS-KMS key, or if you are using an
  3735. // Encryption:Mode of AES-PKCS7, AES-CTR, or AES-GCM.
  3736. AwsKmsKeyArn *string `type:"string"`
  3737. // The optional ContentConfig object specifies information about the Amazon
  3738. // S3 bucket in which you want Elastic Transcoder to save transcoded files and
  3739. // playlists: which bucket to use, which users you want to have access to the
  3740. // files, the type of access you want users to have, and the storage class that
  3741. // you want to assign to the files.
  3742. //
  3743. // If you specify values for ContentConfig, you must also specify values for
  3744. // ThumbnailConfig.
  3745. //
  3746. // If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket
  3747. // object.
  3748. //
  3749. // Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save
  3750. // transcoded files and playlists. Permissions (Optional): The Permissions object
  3751. // specifies which users you want to have access to transcoded files and the
  3752. // type of access you want them to have. You can grant permissions to a maximum
  3753. // of 30 users and/or predefined Amazon S3 groups. Grantee Type: Specify the
  3754. // type of value that appears in the Grantee object: Canonical: The value in
  3755. // the Grantee object is either the canonical user ID for an AWS account or
  3756. // an origin access identity for an Amazon CloudFront distribution. For more
  3757. // information about canonical user IDs, see Access Control List (ACL) Overview
  3758. // in the Amazon Simple Storage Service Developer Guide. For more information
  3759. // about using CloudFront origin access identities to require that users use
  3760. // CloudFront URLs instead of Amazon S3 URLs, see Using an Origin Access Identity
  3761. // to Restrict Access to Your Amazon S3 Content. A canonical user ID is not
  3762. // the same as an AWS account number. Email: The value in the Grantee object
  3763. // is the registered email address of an AWS account. Group: The value in the
  3764. // Grantee object is one of the following predefined Amazon S3 groups: AllUsers,
  3765. // AuthenticatedUsers, or LogDelivery. Grantee: The AWS user or group that
  3766. // you want to have access to transcoded files and playlists. To identify the
  3767. // user or group, you can specify the canonical user ID for an AWS account,
  3768. // an origin access identity for a CloudFront distribution, the registered email
  3769. // address of an AWS account, or a predefined Amazon S3 group Access: The
  3770. // permission that you want to give to the AWS user that you specified in Grantee.
  3771. // Permissions are granted on the files that Elastic Transcoder adds to the
  3772. // bucket, including playlists and video files. Valid values include: READ:
  3773. // The grantee can read the objects and metadata for objects that Elastic Transcoder
  3774. // adds to the Amazon S3 bucket. READ_ACP: The grantee can read the object ACL
  3775. // for objects that Elastic Transcoder adds to the Amazon S3 bucket. WRITE_ACP:
  3776. // The grantee can write the ACL for the objects that Elastic Transcoder adds
  3777. // to the Amazon S3 bucket. FULL_CONTROL: The grantee has READ, READ_ACP, and
  3778. // WRITE_ACP permissions for the objects that Elastic Transcoder adds to the
  3779. // Amazon S3 bucket. StorageClass: The Amazon S3 storage class, Standard
  3780. // or ReducedRedundancy, that you want Elastic Transcoder to assign to the video
  3781. // files and playlists that it stores in your Amazon S3 bucket.
  3782. ContentConfig *PipelineOutputConfig `type:"structure"`
  3783. // The ID of the pipeline that you want to update.
  3784. Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
  3785. // The Amazon S3 bucket in which you saved the media files that you want to
  3786. // transcode and the graphics that you want to use as watermarks.
  3787. InputBucket *string `type:"string"`
  3788. // The name of the pipeline. We recommend that the name be unique within the
  3789. // AWS account, but uniqueness is not enforced.
  3790. //
  3791. // Constraints: Maximum 40 characters
  3792. Name *string `min:"1" type:"string"`
  3793. // The Amazon Simple Notification Service (Amazon SNS) topic or topics to notify
  3794. // in order to report job status.
  3795. //
  3796. // To receive notifications, you must also subscribe to the new topic in the
  3797. // Amazon SNS console.
  3798. Notifications *Notifications `type:"structure"`
  3799. // The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder
  3800. // to use to transcode jobs for this pipeline.
  3801. Role *string `type:"string"`
  3802. // The ThumbnailConfig object specifies several values, including the Amazon
  3803. // S3 bucket in which you want Elastic Transcoder to save thumbnail files, which
  3804. // users you want to have access to the files, the type of access you want users
  3805. // to have, and the storage class that you want to assign to the files.
  3806. //
  3807. // If you specify values for ContentConfig, you must also specify values for
  3808. // ThumbnailConfig even if you don't want to create thumbnails.
  3809. //
  3810. // If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket
  3811. // object.
  3812. //
  3813. // Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to save
  3814. // thumbnail files. Permissions (Optional): The Permissions object specifies
  3815. // which users and/or predefined Amazon S3 groups you want to have access to
  3816. // thumbnail files, and the type of access you want them to have. You can grant
  3817. // permissions to a maximum of 30 users and/or predefined Amazon S3 groups.
  3818. // GranteeType: Specify the type of value that appears in the Grantee object:
  3819. // Canonical: The value in the Grantee object is either the canonical user
  3820. // ID for an AWS account or an origin access identity for an Amazon CloudFront
  3821. // distribution. A canonical user ID is not the same as an AWS account number.
  3822. // Email: The value in the Grantee object is the registered email address of
  3823. // an AWS account. Group: The value in the Grantee object is one of the following
  3824. // predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
  3825. // Grantee: The AWS user or group that you want to have access to thumbnail
  3826. // files. To identify the user or group, you can specify the canonical user
  3827. // ID for an AWS account, an origin access identity for a CloudFront distribution,
  3828. // the registered email address of an AWS account, or a predefined Amazon S3
  3829. // group. Access: The permission that you want to give to the AWS user that
  3830. // you specified in Grantee. Permissions are granted on the thumbnail files
  3831. // that Elastic Transcoder adds to the bucket. Valid values include: READ:
  3832. // The grantee can read the thumbnails and metadata for objects that Elastic
  3833. // Transcoder adds to the Amazon S3 bucket. READ_ACP: The grantee can read the
  3834. // object ACL for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
  3835. // WRITE_ACP: The grantee can write the ACL for the thumbnails that Elastic
  3836. // Transcoder adds to the Amazon S3 bucket. FULL_CONTROL: The grantee has READ,
  3837. // READ_ACP, and WRITE_ACP permissions for the thumbnails that Elastic Transcoder
  3838. // adds to the Amazon S3 bucket. StorageClass: The Amazon S3 storage class,
  3839. // Standard or ReducedRedundancy, that you want Elastic Transcoder to assign
  3840. // to the thumbnails that it stores in your Amazon S3 bucket.
  3841. ThumbnailConfig *PipelineOutputConfig `type:"structure"`
  3842. }
  3843. // String returns the string representation
  3844. func (s UpdatePipelineInput) String() string {
  3845. return awsutil.Prettify(s)
  3846. }
  3847. // GoString returns the string representation
  3848. func (s UpdatePipelineInput) GoString() string {
  3849. return s.String()
  3850. }
  3851. // Validate inspects the fields of the type to determine if they are valid.
  3852. func (s *UpdatePipelineInput) Validate() error {
  3853. invalidParams := request.ErrInvalidParams{Context: "UpdatePipelineInput"}
  3854. if s.Id == nil {
  3855. invalidParams.Add(request.NewErrParamRequired("Id"))
  3856. }
  3857. if s.Name != nil && len(*s.Name) < 1 {
  3858. invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  3859. }
  3860. if s.ContentConfig != nil {
  3861. if err := s.ContentConfig.Validate(); err != nil {
  3862. invalidParams.AddNested("ContentConfig", err.(request.ErrInvalidParams))
  3863. }
  3864. }
  3865. if s.ThumbnailConfig != nil {
  3866. if err := s.ThumbnailConfig.Validate(); err != nil {
  3867. invalidParams.AddNested("ThumbnailConfig", err.(request.ErrInvalidParams))
  3868. }
  3869. }
  3870. if invalidParams.Len() > 0 {
  3871. return invalidParams
  3872. }
  3873. return nil
  3874. }
  3875. // The UpdatePipelineNotificationsRequest structure.
  3876. type UpdatePipelineNotificationsInput struct {
  3877. _ struct{} `type:"structure"`
  3878. // The identifier of the pipeline for which you want to change notification
  3879. // settings.
  3880. Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
  3881. // The topic ARN for the Amazon Simple Notification Service (Amazon SNS) topic
  3882. // that you want to notify to report job status.
  3883. //
  3884. // To receive notifications, you must also subscribe to the new topic in the
  3885. // Amazon SNS console. Progressing: The topic ARN for the Amazon Simple Notification
  3886. // Service (Amazon SNS) topic that you want to notify when Elastic Transcoder
  3887. // has started to process jobs that are added to this pipeline. This is the
  3888. // ARN that Amazon SNS returned when you created the topic. Completed: The topic
  3889. // ARN for the Amazon SNS topic that you want to notify when Elastic Transcoder
  3890. // has finished processing a job. This is the ARN that Amazon SNS returned when
  3891. // you created the topic. Warning: The topic ARN for the Amazon SNS topic that
  3892. // you want to notify when Elastic Transcoder encounters a warning condition.
  3893. // This is the ARN that Amazon SNS returned when you created the topic. Error:
  3894. // The topic ARN for the Amazon SNS topic that you want to notify when Elastic
  3895. // Transcoder encounters an error condition. This is the ARN that Amazon SNS
  3896. // returned when you created the topic.
  3897. Notifications *Notifications `type:"structure" required:"true"`
  3898. }
  3899. // String returns the string representation
  3900. func (s UpdatePipelineNotificationsInput) String() string {
  3901. return awsutil.Prettify(s)
  3902. }
  3903. // GoString returns the string representation
  3904. func (s UpdatePipelineNotificationsInput) GoString() string {
  3905. return s.String()
  3906. }
  3907. // Validate inspects the fields of the type to determine if they are valid.
  3908. func (s *UpdatePipelineNotificationsInput) Validate() error {
  3909. invalidParams := request.ErrInvalidParams{Context: "UpdatePipelineNotificationsInput"}
  3910. if s.Id == nil {
  3911. invalidParams.Add(request.NewErrParamRequired("Id"))
  3912. }
  3913. if s.Notifications == nil {
  3914. invalidParams.Add(request.NewErrParamRequired("Notifications"))
  3915. }
  3916. if invalidParams.Len() > 0 {
  3917. return invalidParams
  3918. }
  3919. return nil
  3920. }
  3921. // The UpdatePipelineNotificationsResponse structure.
  3922. type UpdatePipelineNotificationsOutput struct {
  3923. _ struct{} `type:"structure"`
  3924. // A section of the response body that provides information about the pipeline.
  3925. Pipeline *Pipeline `type:"structure"`
  3926. }
  3927. // String returns the string representation
  3928. func (s UpdatePipelineNotificationsOutput) String() string {
  3929. return awsutil.Prettify(s)
  3930. }
  3931. // GoString returns the string representation
  3932. func (s UpdatePipelineNotificationsOutput) GoString() string {
  3933. return s.String()
  3934. }
  3935. // When you update a pipeline, Elastic Transcoder returns the values that you
  3936. // specified in the request.
  3937. type UpdatePipelineOutput struct {
  3938. _ struct{} `type:"structure"`
  3939. // The pipeline (queue) that is used to manage jobs.
  3940. Pipeline *Pipeline `type:"structure"`
  3941. // Elastic Transcoder returns a warning if the resources used by your pipeline
  3942. // are not in the same region as the pipeline.
  3943. //
  3944. // Using resources in the same region, such as your Amazon S3 buckets, Amazon
  3945. // SNS notification topics, and AWS KMS key, reduces processing time and prevents
  3946. // cross-regional charges.
  3947. Warnings []*Warning `type:"list"`
  3948. }
  3949. // String returns the string representation
  3950. func (s UpdatePipelineOutput) String() string {
  3951. return awsutil.Prettify(s)
  3952. }
  3953. // GoString returns the string representation
  3954. func (s UpdatePipelineOutput) GoString() string {
  3955. return s.String()
  3956. }
  3957. // The UpdatePipelineStatusRequest structure.
  3958. type UpdatePipelineStatusInput struct {
  3959. _ struct{} `type:"structure"`
  3960. // The identifier of the pipeline to update.
  3961. Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
  3962. // The desired status of the pipeline:
  3963. //
  3964. // Active: The pipeline is processing jobs. Paused: The pipeline is not
  3965. // currently processing jobs.
  3966. Status *string `type:"string" required:"true"`
  3967. }
  3968. // String returns the string representation
  3969. func (s UpdatePipelineStatusInput) String() string {
  3970. return awsutil.Prettify(s)
  3971. }
  3972. // GoString returns the string representation
  3973. func (s UpdatePipelineStatusInput) GoString() string {
  3974. return s.String()
  3975. }
  3976. // Validate inspects the fields of the type to determine if they are valid.
  3977. func (s *UpdatePipelineStatusInput) Validate() error {
  3978. invalidParams := request.ErrInvalidParams{Context: "UpdatePipelineStatusInput"}
  3979. if s.Id == nil {
  3980. invalidParams.Add(request.NewErrParamRequired("Id"))
  3981. }
  3982. if s.Status == nil {
  3983. invalidParams.Add(request.NewErrParamRequired("Status"))
  3984. }
  3985. if invalidParams.Len() > 0 {
  3986. return invalidParams
  3987. }
  3988. return nil
  3989. }
  3990. // When you update status for a pipeline, Elastic Transcoder returns the values
  3991. // that you specified in the request.
  3992. type UpdatePipelineStatusOutput struct {
  3993. _ struct{} `type:"structure"`
  3994. // A section of the response body that provides information about the pipeline.
  3995. Pipeline *Pipeline `type:"structure"`
  3996. }
  3997. // String returns the string representation
  3998. func (s UpdatePipelineStatusOutput) String() string {
  3999. return awsutil.Prettify(s)
  4000. }
  4001. // GoString returns the string representation
  4002. func (s UpdatePipelineStatusOutput) GoString() string {
  4003. return s.String()
  4004. }
  4005. // The VideoParameters structure.
  4006. type VideoParameters struct {
  4007. _ struct{} `type:"structure"`
  4008. // To better control resolution and aspect ratio of output videos, we recommend
  4009. // that you use the values MaxWidth, MaxHeight, SizingPolicy, PaddingPolicy,
  4010. // and DisplayAspectRatio instead of Resolution and AspectRatio. The two groups
  4011. // of settings are mutually exclusive. Do not use them together.
  4012. //
  4013. // The display aspect ratio of the video in the output file. Valid values
  4014. // include:
  4015. //
  4016. // auto, 1:1, 4:3, 3:2, 16:9
  4017. //
  4018. // If you specify auto, Elastic Transcoder tries to preserve the aspect ratio
  4019. // of the input file.
  4020. //
  4021. // If you specify an aspect ratio for the output file that differs from aspect
  4022. // ratio of the input file, Elastic Transcoder adds pillarboxing (black bars
  4023. // on the sides) or letterboxing (black bars on the top and bottom) to maintain
  4024. // the aspect ratio of the active region of the video.
  4025. AspectRatio *string `type:"string"`
  4026. // The bit rate of the video stream in the output file, in kilobits/second.
  4027. // Valid values depend on the values of Level and Profile. If you specify auto,
  4028. // Elastic Transcoder uses the detected bit rate of the input source. If you
  4029. // specify a value other than auto, we recommend that you specify a value less
  4030. // than or equal to the maximum H.264-compliant value listed for your level
  4031. // and profile:
  4032. //
  4033. // Level - Maximum video bit rate in kilobits/second (baseline and main Profile)
  4034. // : maximum video bit rate in kilobits/second (high Profile)
  4035. //
  4036. // 1 - 64 : 80 1b - 128 : 160 1.1 - 192 : 240 1.2 - 384 : 480 1.3 - 768 :
  4037. // 960 2 - 2000 : 2500 3 - 10000 : 12500 3.1 - 14000 : 17500 3.2 - 20000 : 25000
  4038. // 4 - 20000 : 25000 4.1 - 50000 : 62500
  4039. BitRate *string `type:"string"`
  4040. // The video codec for the output file. Valid values include gif, H.264, mpeg2,
  4041. // and vp8. You can only specify vp8 when the container type is webm, gif when
  4042. // the container type is gif, and mpeg2 when the container type is mpg.
  4043. Codec *string `type:"string"`
  4044. // Profile (H.264/VP8 Only)
  4045. //
  4046. // The H.264 profile that you want to use for the output file. Elastic Transcoder
  4047. // supports the following profiles:
  4048. //
  4049. // baseline: The profile most commonly used for videoconferencing and for
  4050. // mobile applications. main: The profile used for standard-definition digital
  4051. // TV broadcasts. high: The profile used for high-definition digital TV broadcasts
  4052. // and for Blu-ray discs. Level (H.264 Only)
  4053. //
  4054. // The H.264 level that you want to use for the output file. Elastic Transcoder
  4055. // supports the following levels:
  4056. //
  4057. // 1, 1b, 1.1, 1.2, 1.3, 2, 2.1, 2.2, 3, 3.1, 3.2, 4, 4.1
  4058. //
  4059. // MaxReferenceFrames (H.264 Only)
  4060. //
  4061. // Applicable only when the value of Video:Codec is H.264. The maximum number
  4062. // of previously decoded frames to use as a reference for decoding future frames.
  4063. // Valid values are integers 0 through 16, but we recommend that you not use
  4064. // a value greater than the following:
  4065. //
  4066. // Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width
  4067. // in pixels * Height in pixels)), 16)
  4068. //
  4069. // where Width in pixels and Height in pixels represent either MaxWidth and
  4070. // MaxHeight, or Resolution. Maximum decoded picture buffer in macroblocks depends
  4071. // on the value of the Level object. See the list below. (A macroblock is a
  4072. // block of pixels measuring 16x16.)
  4073. //
  4074. // 1 - 396 1b - 396 1.1 - 900 1.2 - 2376 1.3 - 2376 2 - 2376 2.1 - 4752 2.2
  4075. // - 8100 3 - 8100 3.1 - 18000 3.2 - 20480 4 - 32768 4.1 - 32768 MaxBitRate
  4076. // (Optional, H.264/MPEG2/VP8 only)
  4077. //
  4078. // The maximum number of bits per second in a video buffer; the size of the
  4079. // buffer is specified by BufferSize. Specify a value between 16 and 62,500.
  4080. // You can reduce the bandwidth required to stream a video by reducing the maximum
  4081. // bit rate, but this also reduces the quality of the video.
  4082. //
  4083. // BufferSize (Optional, H.264/MPEG2/VP8 only)
  4084. //
  4085. // The maximum number of bits in any x seconds of the output video. This window
  4086. // is commonly 10 seconds, the standard segment duration when you're using FMP4
  4087. // or MPEG-TS for the container type of the output video. Specify an integer
  4088. // greater than 0. If you specify MaxBitRate and omit BufferSize, Elastic Transcoder
  4089. // sets BufferSize to 10 times the value of MaxBitRate.
  4090. //
  4091. // InterlacedMode (Optional, H.264/MPEG2 Only)
  4092. //
  4093. // The interlace mode for the output video.
  4094. //
  4095. // Interlaced video is used to double the perceived frame rate for a video
  4096. // by interlacing two fields (one field on every other line, the other field
  4097. // on the other lines) so that the human eye registers multiple pictures per
  4098. // frame. Interlacing reduces the bandwidth required for transmitting a video,
  4099. // but can result in blurred images and flickering.
  4100. //
  4101. // Valid values include Progressive (no interlacing, top to bottom), TopFirst
  4102. // (top field first), BottomFirst (bottom field first), and Auto.
  4103. //
  4104. // If InterlaceMode is not specified, Elastic Transcoder uses Progressive for
  4105. // the output. If Auto is specified, Elastic Transcoder interlaces the output.
  4106. //
  4107. // ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)
  4108. //
  4109. // The color space conversion Elastic Transcoder applies to the output video.
  4110. // Color spaces are the algorithms used by the computer to store information
  4111. // about how to render color. Bt.601 is the standard for standard definition
  4112. // video, while Bt.709 is the standard for high definition video.
  4113. //
  4114. // Valid values include None, Bt709toBt601, Bt601toBt709, and Auto.
  4115. //
  4116. // If you chose Auto for ColorSpaceConversionMode and your output is interlaced,
  4117. // your frame rate is one of 23.97, 24, 25, 29.97, 50, or 60, your SegmentDuration
  4118. // is null, and you are using one of the resolution changes from the list below,
  4119. // Elastic Transcoder applies the following color space conversions:
  4120. //
  4121. // Standard to HD, 720x480 to 1920x1080 - Elastic Transcoder applies Bt601ToBt709
  4122. // Standard to HD, 720x576 to 1920x1080 - Elastic Transcoder applies Bt601ToBt709
  4123. // HD to Standard, 1920x1080 to 720x480 - Elastic Transcoder applies Bt709ToBt601
  4124. // HD to Standard, 1920x1080 to 720x576 - Elastic Transcoder applies Bt709ToBt601
  4125. // Elastic Transcoder may change the behavior of the ColorspaceConversionMode
  4126. // Auto mode in the future. All outputs in a playlist must use the same ColorSpaceConversionMode.
  4127. // If you do not specify a ColorSpaceConversionMode, Elastic Transcoder does
  4128. // not change the color space of a file. If you are unsure what ColorSpaceConversionMode
  4129. // was applied to your output file, you can check the AppliedColorSpaceConversion
  4130. // parameter included in your job response. If your job does not have an AppliedColorSpaceConversion
  4131. // in its response, no ColorSpaceConversionMode was applied.
  4132. //
  4133. // ChromaSubsampling
  4134. //
  4135. // The sampling pattern for the chroma (color) channels of the output video.
  4136. // Valid values include yuv420p and yuv422p.
  4137. //
  4138. // yuv420p samples the chroma information of every other horizontal and every
  4139. // other vertical line, yuv422p samples the color information of every horizontal
  4140. // line and every other vertical line.
  4141. //
  4142. // LoopCount (Gif Only)
  4143. //
  4144. // The number of times you want the output gif to loop. Valid values include
  4145. // Infinite and integers between 0 and 100, inclusive.
  4146. CodecOptions map[string]*string `type:"map"`
  4147. // The value that Elastic Transcoder adds to the metadata in the output file.
  4148. DisplayAspectRatio *string `type:"string"`
  4149. // Applicable only when the value of Video:Codec is one of H.264, MPEG2, or
  4150. // VP8.
  4151. //
  4152. // Whether to use a fixed value for FixedGOP. Valid values are true and false:
  4153. //
  4154. // true: Elastic Transcoder uses the value of KeyframesMaxDist for the distance
  4155. // between key frames (the number of frames in a group of pictures, or GOP).
  4156. // false: The distance between key frames can vary. FixedGOP must be set to
  4157. // true for fmp4 containers.
  4158. FixedGOP *string `type:"string"`
  4159. // The frames per second for the video stream in the output file. Valid values
  4160. // include:
  4161. //
  4162. // auto, 10, 15, 23.97, 24, 25, 29.97, 30, 60
  4163. //
  4164. // If you specify auto, Elastic Transcoder uses the detected frame rate of
  4165. // the input source. If you specify a frame rate, we recommend that you perform
  4166. // the following calculation:
  4167. //
  4168. // Frame rate = maximum recommended decoding speed in luma samples/second
  4169. // / (width in pixels * height in pixels)
  4170. //
  4171. // where:
  4172. //
  4173. // width in pixels and height in pixels represent the Resolution of the output
  4174. // video. maximum recommended decoding speed in Luma samples/second is less
  4175. // than or equal to the maximum value listed in the following table, based on
  4176. // the value that you specified for Level. The maximum recommended decoding
  4177. // speed in Luma samples/second for each level is described in the following
  4178. // list (Level - Decoding speed):
  4179. //
  4180. // 1 - 380160 1b - 380160 1.1 - 76800 1.2 - 1536000 1.3 - 3041280 2 - 3041280
  4181. // 2.1 - 5068800 2.2 - 5184000 3 - 10368000 3.1 - 27648000 3.2 - 55296000 4
  4182. // - 62914560 4.1 - 62914560
  4183. FrameRate *string `type:"string"`
  4184. // Applicable only when the value of Video:Codec is one of H.264, MPEG2, or
  4185. // VP8.
  4186. //
  4187. // The maximum number of frames between key frames. Key frames are fully encoded
  4188. // frames; the frames between key frames are encoded based, in part, on the
  4189. // content of the key frames. The value is an integer formatted as a string;
  4190. // valid values are between 1 (every frame is a key frame) and 100000, inclusive.
  4191. // A higher value results in higher compression but may also discernibly decrease
  4192. // video quality.
  4193. //
  4194. // For Smooth outputs, the FrameRate must have a constant ratio to the KeyframesMaxDist.
  4195. // This allows Smooth playlists to switch between different quality levels while
  4196. // the file is being played.
  4197. //
  4198. // For example, an input file can have a FrameRate of 30 with a KeyframesMaxDist
  4199. // of 90. The output file then needs to have a ratio of 1:3. Valid outputs would
  4200. // have FrameRate of 30, 25, and 10, and KeyframesMaxDist of 90, 75, and 30,
  4201. // respectively.
  4202. //
  4203. // Alternately, this can be achieved by setting FrameRate to auto and having
  4204. // the same values for MaxFrameRate and KeyframesMaxDist.
  4205. KeyframesMaxDist *string `type:"string"`
  4206. // If you specify auto for FrameRate, Elastic Transcoder uses the frame rate
  4207. // of the input video for the frame rate of the output video. Specify the maximum
  4208. // frame rate that you want Elastic Transcoder to use when the frame rate of
  4209. // the input video is greater than the desired maximum frame rate of the output
  4210. // video. Valid values include: 10, 15, 23.97, 24, 25, 29.97, 30, 60.
  4211. MaxFrameRate *string `type:"string"`
  4212. // The maximum height of the output video in pixels. If you specify auto, Elastic
  4213. // Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric
  4214. // value, enter an even integer between 96 and 3072.
  4215. MaxHeight *string `type:"string"`
  4216. // The maximum width of the output video in pixels. If you specify auto, Elastic
  4217. // Transcoder uses 1920 (Full HD) as the default value. If you specify a numeric
  4218. // value, enter an even integer between 128 and 4096.
  4219. MaxWidth *string `type:"string"`
  4220. // When you set PaddingPolicy to Pad, Elastic Transcoder may add black bars
  4221. // to the top and bottom and/or left and right sides of the output video to
  4222. // make the total size of the output video match the values that you specified
  4223. // for MaxWidth and MaxHeight.
  4224. PaddingPolicy *string `type:"string"`
  4225. // To better control resolution and aspect ratio of output videos, we recommend
  4226. // that you use the values MaxWidth, MaxHeight, SizingPolicy, PaddingPolicy,
  4227. // and DisplayAspectRatio instead of Resolution and AspectRatio. The two groups
  4228. // of settings are mutually exclusive. Do not use them together.
  4229. //
  4230. // The width and height of the video in the output file, in pixels. Valid
  4231. // values are auto and width x height:
  4232. //
  4233. // auto: Elastic Transcoder attempts to preserve the width and height of the
  4234. // input file, subject to the following rules. width x height: The width and
  4235. // height of the output video in pixels. Note the following about specifying
  4236. // the width and height:
  4237. //
  4238. // The width must be an even integer between 128 and 4096, inclusive. The
  4239. // height must be an even integer between 96 and 3072, inclusive. If you specify
  4240. // a resolution that is less than the resolution of the input file, Elastic
  4241. // Transcoder rescales the output file to the lower resolution. If you specify
  4242. // a resolution that is greater than the resolution of the input file, Elastic
  4243. // Transcoder rescales the output to the higher resolution. We recommend that
  4244. // you specify a resolution for which the product of width and height is less
  4245. // than or equal to the applicable value in the following list (List - Max width
  4246. // x height value): 1 - 25344 1b - 25344 1.1 - 101376 1.2 - 101376 1.3 - 101376
  4247. // 2 - 101376 2.1 - 202752 2.2 - 404720 3 - 404720 3.1 - 921600 3.2 - 1310720
  4248. // 4 - 2097152 4.1 - 2097152
  4249. Resolution *string `type:"string"`
  4250. // Specify one of the following values to control scaling of the output video:
  4251. //
  4252. // Fit: Elastic Transcoder scales the output video so it matches the value
  4253. // that you specified in either MaxWidth or MaxHeight without exceeding the
  4254. // other value. Fill: Elastic Transcoder scales the output video so it matches
  4255. // the value that you specified in either MaxWidth or MaxHeight and matches
  4256. // or exceeds the other value. Elastic Transcoder centers the output video and
  4257. // then crops it in the dimension (if any) that exceeds the maximum value. Stretch:
  4258. // Elastic Transcoder stretches the output video to match the values that you
  4259. // specified for MaxWidth and MaxHeight. If the relative proportions of the
  4260. // input video and the output video are different, the output video will be
  4261. // distorted. Keep: Elastic Transcoder does not scale the output video. If either
  4262. // dimension of the input video exceeds the values that you specified for MaxWidth
  4263. // and MaxHeight, Elastic Transcoder crops the output video. ShrinkToFit: Elastic
  4264. // Transcoder scales the output video down so that its dimensions match the
  4265. // values that you specified for at least one of MaxWidth and MaxHeight without
  4266. // exceeding either value. If you specify this option, Elastic Transcoder does
  4267. // not scale the video up. ShrinkToFill: Elastic Transcoder scales the output
  4268. // video down so that its dimensions match the values that you specified for
  4269. // at least one of MaxWidth and MaxHeight without dropping below either value.
  4270. // If you specify this option, Elastic Transcoder does not scale the video up.
  4271. SizingPolicy *string `type:"string"`
  4272. // Settings for the size, location, and opacity of graphics that you want Elastic
  4273. // Transcoder to overlay over videos that are transcoded using this preset.
  4274. // You can specify settings for up to four watermarks. Watermarks appear in
  4275. // the specified size and location, and with the specified opacity for the duration
  4276. // of the transcoded video.
  4277. //
  4278. // Watermarks can be in .png or .jpg format. If you want to display a watermark
  4279. // that is not rectangular, use the .png format, which supports transparency.
  4280. //
  4281. // When you create a job that uses this preset, you specify the .png or .jpg
  4282. // graphics that you want Elastic Transcoder to include in the transcoded videos.
  4283. // You can specify fewer graphics in the job than you specify watermark settings
  4284. // in the preset, which allows you to use the same preset for up to four watermarks
  4285. // that have different dimensions.
  4286. Watermarks []*PresetWatermark `type:"list"`
  4287. }
  4288. // String returns the string representation
  4289. func (s VideoParameters) String() string {
  4290. return awsutil.Prettify(s)
  4291. }
  4292. // GoString returns the string representation
  4293. func (s VideoParameters) GoString() string {
  4294. return s.String()
  4295. }
  4296. // Validate inspects the fields of the type to determine if they are valid.
  4297. func (s *VideoParameters) Validate() error {
  4298. invalidParams := request.ErrInvalidParams{Context: "VideoParameters"}
  4299. if s.Watermarks != nil {
  4300. for i, v := range s.Watermarks {
  4301. if v == nil {
  4302. continue
  4303. }
  4304. if err := v.Validate(); err != nil {
  4305. invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Watermarks", i), err.(request.ErrInvalidParams))
  4306. }
  4307. }
  4308. }
  4309. if invalidParams.Len() > 0 {
  4310. return invalidParams
  4311. }
  4312. return nil
  4313. }
  4314. // Elastic Transcoder returns a warning if the resources used by your pipeline
  4315. // are not in the same region as the pipeline.
  4316. //
  4317. // Using resources in the same region, such as your Amazon S3 buckets, Amazon
  4318. // SNS notification topics, and AWS KMS key, reduces processing time and prevents
  4319. // cross-regional charges.
  4320. type Warning struct {
  4321. _ struct{} `type:"structure"`
  4322. // The code of the cross-regional warning.
  4323. Code *string `type:"string"`
  4324. // The message explaining what resources are in a different region from the
  4325. // pipeline.
  4326. //
  4327. // Note: AWS KMS keys must be in the same region as the pipeline.
  4328. Message *string `type:"string"`
  4329. }
  4330. // String returns the string representation
  4331. func (s Warning) String() string {
  4332. return awsutil.Prettify(s)
  4333. }
  4334. // GoString returns the string representation
  4335. func (s Warning) GoString() string {
  4336. return s.String()
  4337. }