api.go 423 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897
  1. // THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
  2. // Package redshift provides a client for Amazon Redshift.
  3. package redshift
  4. import (
  5. "time"
  6. "github.com/aws/aws-sdk-go/aws/awsutil"
  7. "github.com/aws/aws-sdk-go/aws/request"
  8. "github.com/aws/aws-sdk-go/private/protocol"
  9. "github.com/aws/aws-sdk-go/private/protocol/query"
  10. )
  11. const opAuthorizeClusterSecurityGroupIngress = "AuthorizeClusterSecurityGroupIngress"
  12. // AuthorizeClusterSecurityGroupIngressRequest generates a "aws/request.Request" representing the
  13. // client's request for the AuthorizeClusterSecurityGroupIngress operation. The "output" return
  14. // value can be used to capture response data after the request's "Send" method
  15. // is called.
  16. //
  17. // See AuthorizeClusterSecurityGroupIngress for usage and error information.
  18. //
  19. // Creating a request object using this method should be used when you want to inject
  20. // custom logic into the request's lifecycle using a custom handler, or if you want to
  21. // access properties on the request object before or after sending the request. If
  22. // you just want the service response, call the AuthorizeClusterSecurityGroupIngress method directly
  23. // instead.
  24. //
  25. // Note: You must call the "Send" method on the returned request object in order
  26. // to execute the request.
  27. //
  28. // // Example sending a request using the AuthorizeClusterSecurityGroupIngressRequest method.
  29. // req, resp := client.AuthorizeClusterSecurityGroupIngressRequest(params)
  30. //
  31. // err := req.Send()
  32. // if err == nil { // resp is now filled
  33. // fmt.Println(resp)
  34. // }
  35. //
  36. func (c *Redshift) AuthorizeClusterSecurityGroupIngressRequest(input *AuthorizeClusterSecurityGroupIngressInput) (req *request.Request, output *AuthorizeClusterSecurityGroupIngressOutput) {
  37. op := &request.Operation{
  38. Name: opAuthorizeClusterSecurityGroupIngress,
  39. HTTPMethod: "POST",
  40. HTTPPath: "/",
  41. }
  42. if input == nil {
  43. input = &AuthorizeClusterSecurityGroupIngressInput{}
  44. }
  45. req = c.newRequest(op, input, output)
  46. output = &AuthorizeClusterSecurityGroupIngressOutput{}
  47. req.Data = output
  48. return
  49. }
  50. // AuthorizeClusterSecurityGroupIngress API operation for Amazon Redshift.
  51. //
  52. // Adds an inbound (ingress) rule to an Amazon Redshift security group. Depending
  53. // on whether the application accessing your cluster is running on the Internet
  54. // or an Amazon EC2 instance, you can authorize inbound access to either a Classless
  55. // Interdomain Routing (CIDR)/Internet Protocol (IP) range or to an Amazon EC2
  56. // security group. You can add as many as 20 ingress rules to an Amazon Redshift
  57. // security group.
  58. //
  59. // If you authorize access to an Amazon EC2 security group, specify EC2SecurityGroupName
  60. // and EC2SecurityGroupOwnerId. The Amazon EC2 security group and Amazon Redshift
  61. // cluster must be in the same AWS region.
  62. //
  63. // If you authorize access to a CIDR/IP address range, specify CIDRIP. For an
  64. // overview of CIDR blocks, see the Wikipedia article on Classless Inter-Domain
  65. // Routing (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
  66. //
  67. // You must also associate the security group with a cluster so that clients
  68. // running on these IP addresses or the EC2 instance are authorized to connect
  69. // to the cluster. For information about managing security groups, go to Working
  70. // with Security Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
  71. // in the Amazon Redshift Cluster Management Guide.
  72. //
  73. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  74. // with awserr.Error's Code and Message methods to get detailed information about
  75. // the error.
  76. //
  77. // See the AWS API reference guide for Amazon Redshift's
  78. // API operation AuthorizeClusterSecurityGroupIngress for usage and error information.
  79. //
  80. // Returned Error Codes:
  81. // * ClusterSecurityGroupNotFound
  82. // The cluster security group name does not refer to an existing cluster security
  83. // group.
  84. //
  85. // * InvalidClusterSecurityGroupState
  86. // The state of the cluster security group is not available.
  87. //
  88. // * AuthorizationAlreadyExists
  89. // The specified CIDR block or EC2 security group is already authorized for
  90. // the specified cluster security group.
  91. //
  92. // * AuthorizationQuotaExceeded
  93. // The authorization quota for the cluster security group has been reached.
  94. //
  95. func (c *Redshift) AuthorizeClusterSecurityGroupIngress(input *AuthorizeClusterSecurityGroupIngressInput) (*AuthorizeClusterSecurityGroupIngressOutput, error) {
  96. req, out := c.AuthorizeClusterSecurityGroupIngressRequest(input)
  97. err := req.Send()
  98. return out, err
  99. }
  100. const opAuthorizeSnapshotAccess = "AuthorizeSnapshotAccess"
  101. // AuthorizeSnapshotAccessRequest generates a "aws/request.Request" representing the
  102. // client's request for the AuthorizeSnapshotAccess operation. The "output" return
  103. // value can be used to capture response data after the request's "Send" method
  104. // is called.
  105. //
  106. // See AuthorizeSnapshotAccess for usage and error information.
  107. //
  108. // Creating a request object using this method should be used when you want to inject
  109. // custom logic into the request's lifecycle using a custom handler, or if you want to
  110. // access properties on the request object before or after sending the request. If
  111. // you just want the service response, call the AuthorizeSnapshotAccess method directly
  112. // instead.
  113. //
  114. // Note: You must call the "Send" method on the returned request object in order
  115. // to execute the request.
  116. //
  117. // // Example sending a request using the AuthorizeSnapshotAccessRequest method.
  118. // req, resp := client.AuthorizeSnapshotAccessRequest(params)
  119. //
  120. // err := req.Send()
  121. // if err == nil { // resp is now filled
  122. // fmt.Println(resp)
  123. // }
  124. //
  125. func (c *Redshift) AuthorizeSnapshotAccessRequest(input *AuthorizeSnapshotAccessInput) (req *request.Request, output *AuthorizeSnapshotAccessOutput) {
  126. op := &request.Operation{
  127. Name: opAuthorizeSnapshotAccess,
  128. HTTPMethod: "POST",
  129. HTTPPath: "/",
  130. }
  131. if input == nil {
  132. input = &AuthorizeSnapshotAccessInput{}
  133. }
  134. req = c.newRequest(op, input, output)
  135. output = &AuthorizeSnapshotAccessOutput{}
  136. req.Data = output
  137. return
  138. }
  139. // AuthorizeSnapshotAccess API operation for Amazon Redshift.
  140. //
  141. // Authorizes the specified AWS customer account to restore the specified snapshot.
  142. //
  143. // For more information about working with snapshots, go to Amazon Redshift
  144. // Snapshots (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
  145. // in the Amazon Redshift Cluster Management Guide.
  146. //
  147. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  148. // with awserr.Error's Code and Message methods to get detailed information about
  149. // the error.
  150. //
  151. // See the AWS API reference guide for Amazon Redshift's
  152. // API operation AuthorizeSnapshotAccess for usage and error information.
  153. //
  154. // Returned Error Codes:
  155. // * ClusterSnapshotNotFound
  156. // The snapshot identifier does not refer to an existing cluster snapshot.
  157. //
  158. // * AuthorizationAlreadyExists
  159. // The specified CIDR block or EC2 security group is already authorized for
  160. // the specified cluster security group.
  161. //
  162. // * AuthorizationQuotaExceeded
  163. // The authorization quota for the cluster security group has been reached.
  164. //
  165. // * DependentServiceRequestThrottlingFault
  166. // The request cannot be completed because a dependent service is throttling
  167. // requests made by Amazon Redshift on your behalf. Wait and retry the request.
  168. //
  169. // * InvalidClusterSnapshotState
  170. // The specified cluster snapshot is not in the available state, or other accounts
  171. // are authorized to access the snapshot.
  172. //
  173. // * LimitExceededFault
  174. // The encryption key has exceeded its grant limit in AWS KMS.
  175. //
  176. func (c *Redshift) AuthorizeSnapshotAccess(input *AuthorizeSnapshotAccessInput) (*AuthorizeSnapshotAccessOutput, error) {
  177. req, out := c.AuthorizeSnapshotAccessRequest(input)
  178. err := req.Send()
  179. return out, err
  180. }
  181. const opCopyClusterSnapshot = "CopyClusterSnapshot"
  182. // CopyClusterSnapshotRequest generates a "aws/request.Request" representing the
  183. // client's request for the CopyClusterSnapshot operation. The "output" return
  184. // value can be used to capture response data after the request's "Send" method
  185. // is called.
  186. //
  187. // See CopyClusterSnapshot for usage and error information.
  188. //
  189. // Creating a request object using this method should be used when you want to inject
  190. // custom logic into the request's lifecycle using a custom handler, or if you want to
  191. // access properties on the request object before or after sending the request. If
  192. // you just want the service response, call the CopyClusterSnapshot method directly
  193. // instead.
  194. //
  195. // Note: You must call the "Send" method on the returned request object in order
  196. // to execute the request.
  197. //
  198. // // Example sending a request using the CopyClusterSnapshotRequest method.
  199. // req, resp := client.CopyClusterSnapshotRequest(params)
  200. //
  201. // err := req.Send()
  202. // if err == nil { // resp is now filled
  203. // fmt.Println(resp)
  204. // }
  205. //
  206. func (c *Redshift) CopyClusterSnapshotRequest(input *CopyClusterSnapshotInput) (req *request.Request, output *CopyClusterSnapshotOutput) {
  207. op := &request.Operation{
  208. Name: opCopyClusterSnapshot,
  209. HTTPMethod: "POST",
  210. HTTPPath: "/",
  211. }
  212. if input == nil {
  213. input = &CopyClusterSnapshotInput{}
  214. }
  215. req = c.newRequest(op, input, output)
  216. output = &CopyClusterSnapshotOutput{}
  217. req.Data = output
  218. return
  219. }
  220. // CopyClusterSnapshot API operation for Amazon Redshift.
  221. //
  222. // Copies the specified automated cluster snapshot to a new manual cluster snapshot.
  223. // The source must be an automated snapshot and it must be in the available
  224. // state.
  225. //
  226. // When you delete a cluster, Amazon Redshift deletes any automated snapshots
  227. // of the cluster. Also, when the retention period of the snapshot expires,
  228. // Amazon Redshift automatically deletes it. If you want to keep an automated
  229. // snapshot for a longer period, you can make a manual copy of the snapshot.
  230. // Manual snapshots are retained until you delete them.
  231. //
  232. // For more information about working with snapshots, go to Amazon Redshift
  233. // Snapshots (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
  234. // in the Amazon Redshift Cluster Management Guide.
  235. //
  236. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  237. // with awserr.Error's Code and Message methods to get detailed information about
  238. // the error.
  239. //
  240. // See the AWS API reference guide for Amazon Redshift's
  241. // API operation CopyClusterSnapshot for usage and error information.
  242. //
  243. // Returned Error Codes:
  244. // * ClusterSnapshotAlreadyExists
  245. // The value specified as a snapshot identifier is already used by an existing
  246. // snapshot.
  247. //
  248. // * ClusterSnapshotNotFound
  249. // The snapshot identifier does not refer to an existing cluster snapshot.
  250. //
  251. // * InvalidClusterSnapshotState
  252. // The specified cluster snapshot is not in the available state, or other accounts
  253. // are authorized to access the snapshot.
  254. //
  255. // * ClusterSnapshotQuotaExceeded
  256. // The request would result in the user exceeding the allowed number of cluster
  257. // snapshots.
  258. //
  259. func (c *Redshift) CopyClusterSnapshot(input *CopyClusterSnapshotInput) (*CopyClusterSnapshotOutput, error) {
  260. req, out := c.CopyClusterSnapshotRequest(input)
  261. err := req.Send()
  262. return out, err
  263. }
  264. const opCreateCluster = "CreateCluster"
  265. // CreateClusterRequest generates a "aws/request.Request" representing the
  266. // client's request for the CreateCluster operation. The "output" return
  267. // value can be used to capture response data after the request's "Send" method
  268. // is called.
  269. //
  270. // See CreateCluster for usage and error information.
  271. //
  272. // Creating a request object using this method should be used when you want to inject
  273. // custom logic into the request's lifecycle using a custom handler, or if you want to
  274. // access properties on the request object before or after sending the request. If
  275. // you just want the service response, call the CreateCluster method directly
  276. // instead.
  277. //
  278. // Note: You must call the "Send" method on the returned request object in order
  279. // to execute the request.
  280. //
  281. // // Example sending a request using the CreateClusterRequest method.
  282. // req, resp := client.CreateClusterRequest(params)
  283. //
  284. // err := req.Send()
  285. // if err == nil { // resp is now filled
  286. // fmt.Println(resp)
  287. // }
  288. //
  289. func (c *Redshift) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
  290. op := &request.Operation{
  291. Name: opCreateCluster,
  292. HTTPMethod: "POST",
  293. HTTPPath: "/",
  294. }
  295. if input == nil {
  296. input = &CreateClusterInput{}
  297. }
  298. req = c.newRequest(op, input, output)
  299. output = &CreateClusterOutput{}
  300. req.Data = output
  301. return
  302. }
  303. // CreateCluster API operation for Amazon Redshift.
  304. //
  305. // Creates a new cluster.
  306. //
  307. // To create the cluster in Virtual Private Cloud (VPC), you must provide a
  308. // cluster subnet group name. The cluster subnet group identifies the subnets
  309. // of your VPC that Amazon Redshift uses when creating the cluster. For more
  310. // information about managing clusters, go to Amazon Redshift Clusters (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
  311. // in the Amazon Redshift Cluster Management Guide.
  312. //
  313. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  314. // with awserr.Error's Code and Message methods to get detailed information about
  315. // the error.
  316. //
  317. // See the AWS API reference guide for Amazon Redshift's
  318. // API operation CreateCluster for usage and error information.
  319. //
  320. // Returned Error Codes:
  321. // * ClusterAlreadyExists
  322. // The account already has a cluster with the given identifier.
  323. //
  324. // * InsufficientClusterCapacity
  325. // The number of nodes specified exceeds the allotted capacity of the cluster.
  326. //
  327. // * ClusterParameterGroupNotFound
  328. // The parameter group name does not refer to an existing parameter group.
  329. //
  330. // * ClusterSecurityGroupNotFound
  331. // The cluster security group name does not refer to an existing cluster security
  332. // group.
  333. //
  334. // * ClusterQuotaExceeded
  335. // The request would exceed the allowed number of cluster instances for this
  336. // account. For information about increasing your quota, go to Limits in Amazon
  337. // Redshift (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  338. // in the Amazon Redshift Cluster Management Guide.
  339. //
  340. // * NumberOfNodesQuotaExceeded
  341. // The operation would exceed the number of nodes allotted to the account. For
  342. // information about increasing your quota, go to Limits in Amazon Redshift
  343. // (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  344. // in the Amazon Redshift Cluster Management Guide.
  345. //
  346. // * NumberOfNodesPerClusterLimitExceeded
  347. // The operation would exceed the number of nodes allowed for a cluster.
  348. //
  349. // * ClusterSubnetGroupNotFoundFault
  350. // The cluster subnet group name does not refer to an existing cluster subnet
  351. // group.
  352. //
  353. // * InvalidVPCNetworkStateFault
  354. // The cluster subnet group does not cover all Availability Zones.
  355. //
  356. // * InvalidClusterSubnetGroupStateFault
  357. // The cluster subnet group cannot be deleted because it is in use.
  358. //
  359. // * InvalidSubnet
  360. // The requested subnet is not valid, or not all of the subnets are in the same
  361. // VPC.
  362. //
  363. // * UnauthorizedOperation
  364. // Your account is not authorized to perform the requested operation.
  365. //
  366. // * HsmClientCertificateNotFoundFault
  367. // There is no Amazon Redshift HSM client certificate with the specified identifier.
  368. //
  369. // * HsmConfigurationNotFoundFault
  370. // There is no Amazon Redshift HSM configuration with the specified identifier.
  371. //
  372. // * InvalidElasticIpFault
  373. // The Elastic IP (EIP) is invalid or cannot be found.
  374. //
  375. // * TagLimitExceededFault
  376. // The request exceeds the limit of 10 tags for the resource.
  377. //
  378. // * InvalidTagFault
  379. // The tag is invalid.
  380. //
  381. // * LimitExceededFault
  382. // The encryption key has exceeded its grant limit in AWS KMS.
  383. //
  384. // * DependentServiceRequestThrottlingFault
  385. // The request cannot be completed because a dependent service is throttling
  386. // requests made by Amazon Redshift on your behalf. Wait and retry the request.
  387. //
  388. func (c *Redshift) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
  389. req, out := c.CreateClusterRequest(input)
  390. err := req.Send()
  391. return out, err
  392. }
  393. const opCreateClusterParameterGroup = "CreateClusterParameterGroup"
  394. // CreateClusterParameterGroupRequest generates a "aws/request.Request" representing the
  395. // client's request for the CreateClusterParameterGroup operation. The "output" return
  396. // value can be used to capture response data after the request's "Send" method
  397. // is called.
  398. //
  399. // See CreateClusterParameterGroup for usage and error information.
  400. //
  401. // Creating a request object using this method should be used when you want to inject
  402. // custom logic into the request's lifecycle using a custom handler, or if you want to
  403. // access properties on the request object before or after sending the request. If
  404. // you just want the service response, call the CreateClusterParameterGroup method directly
  405. // instead.
  406. //
  407. // Note: You must call the "Send" method on the returned request object in order
  408. // to execute the request.
  409. //
  410. // // Example sending a request using the CreateClusterParameterGroupRequest method.
  411. // req, resp := client.CreateClusterParameterGroupRequest(params)
  412. //
  413. // err := req.Send()
  414. // if err == nil { // resp is now filled
  415. // fmt.Println(resp)
  416. // }
  417. //
  418. func (c *Redshift) CreateClusterParameterGroupRequest(input *CreateClusterParameterGroupInput) (req *request.Request, output *CreateClusterParameterGroupOutput) {
  419. op := &request.Operation{
  420. Name: opCreateClusterParameterGroup,
  421. HTTPMethod: "POST",
  422. HTTPPath: "/",
  423. }
  424. if input == nil {
  425. input = &CreateClusterParameterGroupInput{}
  426. }
  427. req = c.newRequest(op, input, output)
  428. output = &CreateClusterParameterGroupOutput{}
  429. req.Data = output
  430. return
  431. }
  432. // CreateClusterParameterGroup API operation for Amazon Redshift.
  433. //
  434. // Creates an Amazon Redshift parameter group.
  435. //
  436. // Creating parameter groups is independent of creating clusters. You can associate
  437. // a cluster with a parameter group when you create the cluster. You can also
  438. // associate an existing cluster with a parameter group after the cluster is
  439. // created by using ModifyCluster.
  440. //
  441. // Parameters in the parameter group define specific behavior that applies to
  442. // the databases you create on the cluster. For more information about parameters
  443. // and parameter groups, go to Amazon Redshift Parameter Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
  444. // in the Amazon Redshift Cluster Management Guide.
  445. //
  446. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  447. // with awserr.Error's Code and Message methods to get detailed information about
  448. // the error.
  449. //
  450. // See the AWS API reference guide for Amazon Redshift's
  451. // API operation CreateClusterParameterGroup for usage and error information.
  452. //
  453. // Returned Error Codes:
  454. // * ClusterParameterGroupQuotaExceeded
  455. // The request would result in the user exceeding the allowed number of cluster
  456. // parameter groups. For information about increasing your quota, go to Limits
  457. // in Amazon Redshift (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  458. // in the Amazon Redshift Cluster Management Guide.
  459. //
  460. // * ClusterParameterGroupAlreadyExists
  461. // A cluster parameter group with the same name already exists.
  462. //
  463. // * TagLimitExceededFault
  464. // The request exceeds the limit of 10 tags for the resource.
  465. //
  466. // * InvalidTagFault
  467. // The tag is invalid.
  468. //
  469. func (c *Redshift) CreateClusterParameterGroup(input *CreateClusterParameterGroupInput) (*CreateClusterParameterGroupOutput, error) {
  470. req, out := c.CreateClusterParameterGroupRequest(input)
  471. err := req.Send()
  472. return out, err
  473. }
  474. const opCreateClusterSecurityGroup = "CreateClusterSecurityGroup"
  475. // CreateClusterSecurityGroupRequest generates a "aws/request.Request" representing the
  476. // client's request for the CreateClusterSecurityGroup operation. The "output" return
  477. // value can be used to capture response data after the request's "Send" method
  478. // is called.
  479. //
  480. // See CreateClusterSecurityGroup for usage and error information.
  481. //
  482. // Creating a request object using this method should be used when you want to inject
  483. // custom logic into the request's lifecycle using a custom handler, or if you want to
  484. // access properties on the request object before or after sending the request. If
  485. // you just want the service response, call the CreateClusterSecurityGroup method directly
  486. // instead.
  487. //
  488. // Note: You must call the "Send" method on the returned request object in order
  489. // to execute the request.
  490. //
  491. // // Example sending a request using the CreateClusterSecurityGroupRequest method.
  492. // req, resp := client.CreateClusterSecurityGroupRequest(params)
  493. //
  494. // err := req.Send()
  495. // if err == nil { // resp is now filled
  496. // fmt.Println(resp)
  497. // }
  498. //
  499. func (c *Redshift) CreateClusterSecurityGroupRequest(input *CreateClusterSecurityGroupInput) (req *request.Request, output *CreateClusterSecurityGroupOutput) {
  500. op := &request.Operation{
  501. Name: opCreateClusterSecurityGroup,
  502. HTTPMethod: "POST",
  503. HTTPPath: "/",
  504. }
  505. if input == nil {
  506. input = &CreateClusterSecurityGroupInput{}
  507. }
  508. req = c.newRequest(op, input, output)
  509. output = &CreateClusterSecurityGroupOutput{}
  510. req.Data = output
  511. return
  512. }
  513. // CreateClusterSecurityGroup API operation for Amazon Redshift.
  514. //
  515. // Creates a new Amazon Redshift security group. You use security groups to
  516. // control access to non-VPC clusters.
  517. //
  518. // For information about managing security groups, go to Amazon Redshift Cluster
  519. // Security Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
  520. // in the Amazon Redshift Cluster Management Guide.
  521. //
  522. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  523. // with awserr.Error's Code and Message methods to get detailed information about
  524. // the error.
  525. //
  526. // See the AWS API reference guide for Amazon Redshift's
  527. // API operation CreateClusterSecurityGroup for usage and error information.
  528. //
  529. // Returned Error Codes:
  530. // * ClusterSecurityGroupAlreadyExists
  531. // A cluster security group with the same name already exists.
  532. //
  533. // * QuotaExceeded.ClusterSecurityGroup
  534. // The request would result in the user exceeding the allowed number of cluster
  535. // security groups. For information about increasing your quota, go to Limits
  536. // in Amazon Redshift (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  537. // in the Amazon Redshift Cluster Management Guide.
  538. //
  539. // * TagLimitExceededFault
  540. // The request exceeds the limit of 10 tags for the resource.
  541. //
  542. // * InvalidTagFault
  543. // The tag is invalid.
  544. //
  545. func (c *Redshift) CreateClusterSecurityGroup(input *CreateClusterSecurityGroupInput) (*CreateClusterSecurityGroupOutput, error) {
  546. req, out := c.CreateClusterSecurityGroupRequest(input)
  547. err := req.Send()
  548. return out, err
  549. }
  550. const opCreateClusterSnapshot = "CreateClusterSnapshot"
  551. // CreateClusterSnapshotRequest generates a "aws/request.Request" representing the
  552. // client's request for the CreateClusterSnapshot operation. The "output" return
  553. // value can be used to capture response data after the request's "Send" method
  554. // is called.
  555. //
  556. // See CreateClusterSnapshot for usage and error information.
  557. //
  558. // Creating a request object using this method should be used when you want to inject
  559. // custom logic into the request's lifecycle using a custom handler, or if you want to
  560. // access properties on the request object before or after sending the request. If
  561. // you just want the service response, call the CreateClusterSnapshot method directly
  562. // instead.
  563. //
  564. // Note: You must call the "Send" method on the returned request object in order
  565. // to execute the request.
  566. //
  567. // // Example sending a request using the CreateClusterSnapshotRequest method.
  568. // req, resp := client.CreateClusterSnapshotRequest(params)
  569. //
  570. // err := req.Send()
  571. // if err == nil { // resp is now filled
  572. // fmt.Println(resp)
  573. // }
  574. //
  575. func (c *Redshift) CreateClusterSnapshotRequest(input *CreateClusterSnapshotInput) (req *request.Request, output *CreateClusterSnapshotOutput) {
  576. op := &request.Operation{
  577. Name: opCreateClusterSnapshot,
  578. HTTPMethod: "POST",
  579. HTTPPath: "/",
  580. }
  581. if input == nil {
  582. input = &CreateClusterSnapshotInput{}
  583. }
  584. req = c.newRequest(op, input, output)
  585. output = &CreateClusterSnapshotOutput{}
  586. req.Data = output
  587. return
  588. }
  589. // CreateClusterSnapshot API operation for Amazon Redshift.
  590. //
  591. // Creates a manual snapshot of the specified cluster. The cluster must be in
  592. // the available state.
  593. //
  594. // For more information about working with snapshots, go to Amazon Redshift
  595. // Snapshots (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
  596. // in the Amazon Redshift Cluster Management Guide.
  597. //
  598. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  599. // with awserr.Error's Code and Message methods to get detailed information about
  600. // the error.
  601. //
  602. // See the AWS API reference guide for Amazon Redshift's
  603. // API operation CreateClusterSnapshot for usage and error information.
  604. //
  605. // Returned Error Codes:
  606. // * ClusterSnapshotAlreadyExists
  607. // The value specified as a snapshot identifier is already used by an existing
  608. // snapshot.
  609. //
  610. // * InvalidClusterState
  611. // The specified cluster is not in the available state.
  612. //
  613. // * ClusterNotFound
  614. // The ClusterIdentifier parameter does not refer to an existing cluster.
  615. //
  616. // * ClusterSnapshotQuotaExceeded
  617. // The request would result in the user exceeding the allowed number of cluster
  618. // snapshots.
  619. //
  620. // * TagLimitExceededFault
  621. // The request exceeds the limit of 10 tags for the resource.
  622. //
  623. // * InvalidTagFault
  624. // The tag is invalid.
  625. //
  626. func (c *Redshift) CreateClusterSnapshot(input *CreateClusterSnapshotInput) (*CreateClusterSnapshotOutput, error) {
  627. req, out := c.CreateClusterSnapshotRequest(input)
  628. err := req.Send()
  629. return out, err
  630. }
  631. const opCreateClusterSubnetGroup = "CreateClusterSubnetGroup"
  632. // CreateClusterSubnetGroupRequest generates a "aws/request.Request" representing the
  633. // client's request for the CreateClusterSubnetGroup operation. The "output" return
  634. // value can be used to capture response data after the request's "Send" method
  635. // is called.
  636. //
  637. // See CreateClusterSubnetGroup for usage and error information.
  638. //
  639. // Creating a request object using this method should be used when you want to inject
  640. // custom logic into the request's lifecycle using a custom handler, or if you want to
  641. // access properties on the request object before or after sending the request. If
  642. // you just want the service response, call the CreateClusterSubnetGroup method directly
  643. // instead.
  644. //
  645. // Note: You must call the "Send" method on the returned request object in order
  646. // to execute the request.
  647. //
  648. // // Example sending a request using the CreateClusterSubnetGroupRequest method.
  649. // req, resp := client.CreateClusterSubnetGroupRequest(params)
  650. //
  651. // err := req.Send()
  652. // if err == nil { // resp is now filled
  653. // fmt.Println(resp)
  654. // }
  655. //
  656. func (c *Redshift) CreateClusterSubnetGroupRequest(input *CreateClusterSubnetGroupInput) (req *request.Request, output *CreateClusterSubnetGroupOutput) {
  657. op := &request.Operation{
  658. Name: opCreateClusterSubnetGroup,
  659. HTTPMethod: "POST",
  660. HTTPPath: "/",
  661. }
  662. if input == nil {
  663. input = &CreateClusterSubnetGroupInput{}
  664. }
  665. req = c.newRequest(op, input, output)
  666. output = &CreateClusterSubnetGroupOutput{}
  667. req.Data = output
  668. return
  669. }
  670. // CreateClusterSubnetGroup API operation for Amazon Redshift.
  671. //
  672. // Creates a new Amazon Redshift subnet group. You must provide a list of one
  673. // or more subnets in your existing Amazon Virtual Private Cloud (Amazon VPC)
  674. // when creating Amazon Redshift subnet group.
  675. //
  676. // For information about subnet groups, go to Amazon Redshift Cluster Subnet
  677. // Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-cluster-subnet-groups.html)
  678. // in the Amazon Redshift Cluster Management Guide.
  679. //
  680. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  681. // with awserr.Error's Code and Message methods to get detailed information about
  682. // the error.
  683. //
  684. // See the AWS API reference guide for Amazon Redshift's
  685. // API operation CreateClusterSubnetGroup for usage and error information.
  686. //
  687. // Returned Error Codes:
  688. // * ClusterSubnetGroupAlreadyExists
  689. // A ClusterSubnetGroupName is already used by an existing cluster subnet group.
  690. //
  691. // * ClusterSubnetGroupQuotaExceeded
  692. // The request would result in user exceeding the allowed number of cluster
  693. // subnet groups. For information about increasing your quota, go to Limits
  694. // in Amazon Redshift (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  695. // in the Amazon Redshift Cluster Management Guide.
  696. //
  697. // * ClusterSubnetQuotaExceededFault
  698. // The request would result in user exceeding the allowed number of subnets
  699. // in a cluster subnet groups. For information about increasing your quota,
  700. // go to Limits in Amazon Redshift (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  701. // in the Amazon Redshift Cluster Management Guide.
  702. //
  703. // * InvalidSubnet
  704. // The requested subnet is not valid, or not all of the subnets are in the same
  705. // VPC.
  706. //
  707. // * UnauthorizedOperation
  708. // Your account is not authorized to perform the requested operation.
  709. //
  710. // * TagLimitExceededFault
  711. // The request exceeds the limit of 10 tags for the resource.
  712. //
  713. // * InvalidTagFault
  714. // The tag is invalid.
  715. //
  716. // * DependentServiceRequestThrottlingFault
  717. // The request cannot be completed because a dependent service is throttling
  718. // requests made by Amazon Redshift on your behalf. Wait and retry the request.
  719. //
  720. func (c *Redshift) CreateClusterSubnetGroup(input *CreateClusterSubnetGroupInput) (*CreateClusterSubnetGroupOutput, error) {
  721. req, out := c.CreateClusterSubnetGroupRequest(input)
  722. err := req.Send()
  723. return out, err
  724. }
  725. const opCreateEventSubscription = "CreateEventSubscription"
  726. // CreateEventSubscriptionRequest generates a "aws/request.Request" representing the
  727. // client's request for the CreateEventSubscription operation. The "output" return
  728. // value can be used to capture response data after the request's "Send" method
  729. // is called.
  730. //
  731. // See CreateEventSubscription for usage and error information.
  732. //
  733. // Creating a request object using this method should be used when you want to inject
  734. // custom logic into the request's lifecycle using a custom handler, or if you want to
  735. // access properties on the request object before or after sending the request. If
  736. // you just want the service response, call the CreateEventSubscription method directly
  737. // instead.
  738. //
  739. // Note: You must call the "Send" method on the returned request object in order
  740. // to execute the request.
  741. //
  742. // // Example sending a request using the CreateEventSubscriptionRequest method.
  743. // req, resp := client.CreateEventSubscriptionRequest(params)
  744. //
  745. // err := req.Send()
  746. // if err == nil { // resp is now filled
  747. // fmt.Println(resp)
  748. // }
  749. //
  750. func (c *Redshift) CreateEventSubscriptionRequest(input *CreateEventSubscriptionInput) (req *request.Request, output *CreateEventSubscriptionOutput) {
  751. op := &request.Operation{
  752. Name: opCreateEventSubscription,
  753. HTTPMethod: "POST",
  754. HTTPPath: "/",
  755. }
  756. if input == nil {
  757. input = &CreateEventSubscriptionInput{}
  758. }
  759. req = c.newRequest(op, input, output)
  760. output = &CreateEventSubscriptionOutput{}
  761. req.Data = output
  762. return
  763. }
  764. // CreateEventSubscription API operation for Amazon Redshift.
  765. //
  766. // Creates an Amazon Redshift event notification subscription. This action requires
  767. // an ARN (Amazon Resource Name) of an Amazon SNS topic created by either the
  768. // Amazon Redshift console, the Amazon SNS console, or the Amazon SNS API. To
  769. // obtain an ARN with Amazon SNS, you must create a topic in Amazon SNS and
  770. // subscribe to the topic. The ARN is displayed in the SNS console.
  771. //
  772. // You can specify the source type, and lists of Amazon Redshift source IDs,
  773. // event categories, and event severities. Notifications will be sent for all
  774. // events you want that match those criteria. For example, you can specify source
  775. // type = cluster, source ID = my-cluster-1 and mycluster2, event categories
  776. // = Availability, Backup, and severity = ERROR. The subscription will only
  777. // send notifications for those ERROR events in the Availability and Backup
  778. // categories for the specified clusters.
  779. //
  780. // If you specify both the source type and source IDs, such as source type =
  781. // cluster and source identifier = my-cluster-1, notifications will be sent
  782. // for all the cluster events for my-cluster-1. If you specify a source type
  783. // but do not specify a source identifier, you will receive notice of the events
  784. // for the objects of that type in your AWS account. If you do not specify either
  785. // the SourceType nor the SourceIdentifier, you will be notified of events generated
  786. // from all Amazon Redshift sources belonging to your AWS account. You must
  787. // specify a source type if you specify a source ID.
  788. //
  789. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  790. // with awserr.Error's Code and Message methods to get detailed information about
  791. // the error.
  792. //
  793. // See the AWS API reference guide for Amazon Redshift's
  794. // API operation CreateEventSubscription for usage and error information.
  795. //
  796. // Returned Error Codes:
  797. // * EventSubscriptionQuotaExceeded
  798. // The request would exceed the allowed number of event subscriptions for this
  799. // account. For information about increasing your quota, go to Limits in Amazon
  800. // Redshift (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  801. // in the Amazon Redshift Cluster Management Guide.
  802. //
  803. // * SubscriptionAlreadyExist
  804. // There is already an existing event notification subscription with the specified
  805. // name.
  806. //
  807. // * SNSInvalidTopic
  808. // Amazon SNS has responded that there is a problem with the specified Amazon
  809. // SNS topic.
  810. //
  811. // * SNSNoAuthorization
  812. // You do not have permission to publish to the specified Amazon SNS topic.
  813. //
  814. // * SNSTopicArnNotFound
  815. // An Amazon SNS topic with the specified Amazon Resource Name (ARN) does not
  816. // exist.
  817. //
  818. // * SubscriptionEventIdNotFound
  819. // An Amazon Redshift event with the specified event ID does not exist.
  820. //
  821. // * SubscriptionCategoryNotFound
  822. // The value specified for the event category was not one of the allowed values,
  823. // or it specified a category that does not apply to the specified source type.
  824. // The allowed values are Configuration, Management, Monitoring, and Security.
  825. //
  826. // * SubscriptionSeverityNotFound
  827. // The value specified for the event severity was not one of the allowed values,
  828. // or it specified a severity that does not apply to the specified source type.
  829. // The allowed values are ERROR and INFO.
  830. //
  831. // * SourceNotFound
  832. // The specified Amazon Redshift event source could not be found.
  833. //
  834. // * TagLimitExceededFault
  835. // The request exceeds the limit of 10 tags for the resource.
  836. //
  837. // * InvalidTagFault
  838. // The tag is invalid.
  839. //
  840. func (c *Redshift) CreateEventSubscription(input *CreateEventSubscriptionInput) (*CreateEventSubscriptionOutput, error) {
  841. req, out := c.CreateEventSubscriptionRequest(input)
  842. err := req.Send()
  843. return out, err
  844. }
  845. const opCreateHsmClientCertificate = "CreateHsmClientCertificate"
  846. // CreateHsmClientCertificateRequest generates a "aws/request.Request" representing the
  847. // client's request for the CreateHsmClientCertificate operation. The "output" return
  848. // value can be used to capture response data after the request's "Send" method
  849. // is called.
  850. //
  851. // See CreateHsmClientCertificate for usage and error information.
  852. //
  853. // Creating a request object using this method should be used when you want to inject
  854. // custom logic into the request's lifecycle using a custom handler, or if you want to
  855. // access properties on the request object before or after sending the request. If
  856. // you just want the service response, call the CreateHsmClientCertificate method directly
  857. // instead.
  858. //
  859. // Note: You must call the "Send" method on the returned request object in order
  860. // to execute the request.
  861. //
  862. // // Example sending a request using the CreateHsmClientCertificateRequest method.
  863. // req, resp := client.CreateHsmClientCertificateRequest(params)
  864. //
  865. // err := req.Send()
  866. // if err == nil { // resp is now filled
  867. // fmt.Println(resp)
  868. // }
  869. //
  870. func (c *Redshift) CreateHsmClientCertificateRequest(input *CreateHsmClientCertificateInput) (req *request.Request, output *CreateHsmClientCertificateOutput) {
  871. op := &request.Operation{
  872. Name: opCreateHsmClientCertificate,
  873. HTTPMethod: "POST",
  874. HTTPPath: "/",
  875. }
  876. if input == nil {
  877. input = &CreateHsmClientCertificateInput{}
  878. }
  879. req = c.newRequest(op, input, output)
  880. output = &CreateHsmClientCertificateOutput{}
  881. req.Data = output
  882. return
  883. }
  884. // CreateHsmClientCertificate API operation for Amazon Redshift.
  885. //
  886. // Creates an HSM client certificate that an Amazon Redshift cluster will use
  887. // to connect to the client's HSM in order to store and retrieve the keys used
  888. // to encrypt the cluster databases.
  889. //
  890. // The command returns a public key, which you must store in the HSM. In addition
  891. // to creating the HSM certificate, you must create an Amazon Redshift HSM configuration
  892. // that provides a cluster the information needed to store and use encryption
  893. // keys in the HSM. For more information, go to Hardware Security Modules (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-HSM.html)
  894. // in the Amazon Redshift Cluster Management Guide.
  895. //
  896. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  897. // with awserr.Error's Code and Message methods to get detailed information about
  898. // the error.
  899. //
  900. // See the AWS API reference guide for Amazon Redshift's
  901. // API operation CreateHsmClientCertificate for usage and error information.
  902. //
  903. // Returned Error Codes:
  904. // * HsmClientCertificateAlreadyExistsFault
  905. // There is already an existing Amazon Redshift HSM client certificate with
  906. // the specified identifier.
  907. //
  908. // * HsmClientCertificateQuotaExceededFault
  909. // The quota for HSM client certificates has been reached. For information about
  910. // increasing your quota, go to Limits in Amazon Redshift (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  911. // in the Amazon Redshift Cluster Management Guide.
  912. //
  913. // * TagLimitExceededFault
  914. // The request exceeds the limit of 10 tags for the resource.
  915. //
  916. // * InvalidTagFault
  917. // The tag is invalid.
  918. //
  919. func (c *Redshift) CreateHsmClientCertificate(input *CreateHsmClientCertificateInput) (*CreateHsmClientCertificateOutput, error) {
  920. req, out := c.CreateHsmClientCertificateRequest(input)
  921. err := req.Send()
  922. return out, err
  923. }
  924. const opCreateHsmConfiguration = "CreateHsmConfiguration"
  925. // CreateHsmConfigurationRequest generates a "aws/request.Request" representing the
  926. // client's request for the CreateHsmConfiguration operation. The "output" return
  927. // value can be used to capture response data after the request's "Send" method
  928. // is called.
  929. //
  930. // See CreateHsmConfiguration for usage and error information.
  931. //
  932. // Creating a request object using this method should be used when you want to inject
  933. // custom logic into the request's lifecycle using a custom handler, or if you want to
  934. // access properties on the request object before or after sending the request. If
  935. // you just want the service response, call the CreateHsmConfiguration method directly
  936. // instead.
  937. //
  938. // Note: You must call the "Send" method on the returned request object in order
  939. // to execute the request.
  940. //
  941. // // Example sending a request using the CreateHsmConfigurationRequest method.
  942. // req, resp := client.CreateHsmConfigurationRequest(params)
  943. //
  944. // err := req.Send()
  945. // if err == nil { // resp is now filled
  946. // fmt.Println(resp)
  947. // }
  948. //
  949. func (c *Redshift) CreateHsmConfigurationRequest(input *CreateHsmConfigurationInput) (req *request.Request, output *CreateHsmConfigurationOutput) {
  950. op := &request.Operation{
  951. Name: opCreateHsmConfiguration,
  952. HTTPMethod: "POST",
  953. HTTPPath: "/",
  954. }
  955. if input == nil {
  956. input = &CreateHsmConfigurationInput{}
  957. }
  958. req = c.newRequest(op, input, output)
  959. output = &CreateHsmConfigurationOutput{}
  960. req.Data = output
  961. return
  962. }
  963. // CreateHsmConfiguration API operation for Amazon Redshift.
  964. //
  965. // Creates an HSM configuration that contains the information required by an
  966. // Amazon Redshift cluster to store and use database encryption keys in a Hardware
  967. // Security Module (HSM). After creating the HSM configuration, you can specify
  968. // it as a parameter when creating a cluster. The cluster will then store its
  969. // encryption keys in the HSM.
  970. //
  971. // In addition to creating an HSM configuration, you must also create an HSM
  972. // client certificate. For more information, go to Hardware Security Modules
  973. // (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-HSM.html) in
  974. // the Amazon Redshift Cluster Management Guide.
  975. //
  976. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  977. // with awserr.Error's Code and Message methods to get detailed information about
  978. // the error.
  979. //
  980. // See the AWS API reference guide for Amazon Redshift's
  981. // API operation CreateHsmConfiguration for usage and error information.
  982. //
  983. // Returned Error Codes:
  984. // * HsmConfigurationAlreadyExistsFault
  985. // There is already an existing Amazon Redshift HSM configuration with the specified
  986. // identifier.
  987. //
  988. // * HsmConfigurationQuotaExceededFault
  989. // The quota for HSM configurations has been reached. For information about
  990. // increasing your quota, go to Limits in Amazon Redshift (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  991. // in the Amazon Redshift Cluster Management Guide.
  992. //
  993. // * TagLimitExceededFault
  994. // The request exceeds the limit of 10 tags for the resource.
  995. //
  996. // * InvalidTagFault
  997. // The tag is invalid.
  998. //
  999. func (c *Redshift) CreateHsmConfiguration(input *CreateHsmConfigurationInput) (*CreateHsmConfigurationOutput, error) {
  1000. req, out := c.CreateHsmConfigurationRequest(input)
  1001. err := req.Send()
  1002. return out, err
  1003. }
  1004. const opCreateSnapshotCopyGrant = "CreateSnapshotCopyGrant"
  1005. // CreateSnapshotCopyGrantRequest generates a "aws/request.Request" representing the
  1006. // client's request for the CreateSnapshotCopyGrant operation. The "output" return
  1007. // value can be used to capture response data after the request's "Send" method
  1008. // is called.
  1009. //
  1010. // See CreateSnapshotCopyGrant for usage and error information.
  1011. //
  1012. // Creating a request object using this method should be used when you want to inject
  1013. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1014. // access properties on the request object before or after sending the request. If
  1015. // you just want the service response, call the CreateSnapshotCopyGrant method directly
  1016. // instead.
  1017. //
  1018. // Note: You must call the "Send" method on the returned request object in order
  1019. // to execute the request.
  1020. //
  1021. // // Example sending a request using the CreateSnapshotCopyGrantRequest method.
  1022. // req, resp := client.CreateSnapshotCopyGrantRequest(params)
  1023. //
  1024. // err := req.Send()
  1025. // if err == nil { // resp is now filled
  1026. // fmt.Println(resp)
  1027. // }
  1028. //
  1029. func (c *Redshift) CreateSnapshotCopyGrantRequest(input *CreateSnapshotCopyGrantInput) (req *request.Request, output *CreateSnapshotCopyGrantOutput) {
  1030. op := &request.Operation{
  1031. Name: opCreateSnapshotCopyGrant,
  1032. HTTPMethod: "POST",
  1033. HTTPPath: "/",
  1034. }
  1035. if input == nil {
  1036. input = &CreateSnapshotCopyGrantInput{}
  1037. }
  1038. req = c.newRequest(op, input, output)
  1039. output = &CreateSnapshotCopyGrantOutput{}
  1040. req.Data = output
  1041. return
  1042. }
  1043. // CreateSnapshotCopyGrant API operation for Amazon Redshift.
  1044. //
  1045. // Creates a snapshot copy grant that permits Amazon Redshift to use a customer
  1046. // master key (CMK) from AWS Key Management Service (AWS KMS) to encrypt copied
  1047. // snapshots in a destination region.
  1048. //
  1049. // For more information about managing snapshot copy grants, go to Amazon Redshift
  1050. // Database Encryption (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
  1051. // in the Amazon Redshift Cluster Management Guide.
  1052. //
  1053. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1054. // with awserr.Error's Code and Message methods to get detailed information about
  1055. // the error.
  1056. //
  1057. // See the AWS API reference guide for Amazon Redshift's
  1058. // API operation CreateSnapshotCopyGrant for usage and error information.
  1059. //
  1060. // Returned Error Codes:
  1061. // * SnapshotCopyGrantAlreadyExistsFault
  1062. // The snapshot copy grant can't be created because a grant with the same name
  1063. // already exists.
  1064. //
  1065. // * SnapshotCopyGrantQuotaExceededFault
  1066. // The AWS account has exceeded the maximum number of snapshot copy grants in
  1067. // this region.
  1068. //
  1069. // * LimitExceededFault
  1070. // The encryption key has exceeded its grant limit in AWS KMS.
  1071. //
  1072. // * TagLimitExceededFault
  1073. // The request exceeds the limit of 10 tags for the resource.
  1074. //
  1075. // * InvalidTagFault
  1076. // The tag is invalid.
  1077. //
  1078. // * DependentServiceRequestThrottlingFault
  1079. // The request cannot be completed because a dependent service is throttling
  1080. // requests made by Amazon Redshift on your behalf. Wait and retry the request.
  1081. //
  1082. func (c *Redshift) CreateSnapshotCopyGrant(input *CreateSnapshotCopyGrantInput) (*CreateSnapshotCopyGrantOutput, error) {
  1083. req, out := c.CreateSnapshotCopyGrantRequest(input)
  1084. err := req.Send()
  1085. return out, err
  1086. }
  1087. const opCreateTags = "CreateTags"
  1088. // CreateTagsRequest generates a "aws/request.Request" representing the
  1089. // client's request for the CreateTags operation. The "output" return
  1090. // value can be used to capture response data after the request's "Send" method
  1091. // is called.
  1092. //
  1093. // See CreateTags for usage and error information.
  1094. //
  1095. // Creating a request object using this method should be used when you want to inject
  1096. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1097. // access properties on the request object before or after sending the request. If
  1098. // you just want the service response, call the CreateTags method directly
  1099. // instead.
  1100. //
  1101. // Note: You must call the "Send" method on the returned request object in order
  1102. // to execute the request.
  1103. //
  1104. // // Example sending a request using the CreateTagsRequest method.
  1105. // req, resp := client.CreateTagsRequest(params)
  1106. //
  1107. // err := req.Send()
  1108. // if err == nil { // resp is now filled
  1109. // fmt.Println(resp)
  1110. // }
  1111. //
  1112. func (c *Redshift) CreateTagsRequest(input *CreateTagsInput) (req *request.Request, output *CreateTagsOutput) {
  1113. op := &request.Operation{
  1114. Name: opCreateTags,
  1115. HTTPMethod: "POST",
  1116. HTTPPath: "/",
  1117. }
  1118. if input == nil {
  1119. input = &CreateTagsInput{}
  1120. }
  1121. req = c.newRequest(op, input, output)
  1122. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1123. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1124. output = &CreateTagsOutput{}
  1125. req.Data = output
  1126. return
  1127. }
  1128. // CreateTags API operation for Amazon Redshift.
  1129. //
  1130. // Adds one or more tags to a specified resource.
  1131. //
  1132. // A resource can have up to 10 tags. If you try to create more than 10 tags
  1133. // for a resource, you will receive an error and the attempt will fail.
  1134. //
  1135. // If you specify a key that already exists for the resource, the value for
  1136. // that key will be updated with the new value.
  1137. //
  1138. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1139. // with awserr.Error's Code and Message methods to get detailed information about
  1140. // the error.
  1141. //
  1142. // See the AWS API reference guide for Amazon Redshift's
  1143. // API operation CreateTags for usage and error information.
  1144. //
  1145. // Returned Error Codes:
  1146. // * TagLimitExceededFault
  1147. // The request exceeds the limit of 10 tags for the resource.
  1148. //
  1149. // * ResourceNotFoundFault
  1150. // The resource could not be found.
  1151. //
  1152. // * InvalidTagFault
  1153. // The tag is invalid.
  1154. //
  1155. func (c *Redshift) CreateTags(input *CreateTagsInput) (*CreateTagsOutput, error) {
  1156. req, out := c.CreateTagsRequest(input)
  1157. err := req.Send()
  1158. return out, err
  1159. }
  1160. const opDeleteCluster = "DeleteCluster"
  1161. // DeleteClusterRequest generates a "aws/request.Request" representing the
  1162. // client's request for the DeleteCluster operation. The "output" return
  1163. // value can be used to capture response data after the request's "Send" method
  1164. // is called.
  1165. //
  1166. // See DeleteCluster for usage and error information.
  1167. //
  1168. // Creating a request object using this method should be used when you want to inject
  1169. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1170. // access properties on the request object before or after sending the request. If
  1171. // you just want the service response, call the DeleteCluster method directly
  1172. // instead.
  1173. //
  1174. // Note: You must call the "Send" method on the returned request object in order
  1175. // to execute the request.
  1176. //
  1177. // // Example sending a request using the DeleteClusterRequest method.
  1178. // req, resp := client.DeleteClusterRequest(params)
  1179. //
  1180. // err := req.Send()
  1181. // if err == nil { // resp is now filled
  1182. // fmt.Println(resp)
  1183. // }
  1184. //
  1185. func (c *Redshift) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
  1186. op := &request.Operation{
  1187. Name: opDeleteCluster,
  1188. HTTPMethod: "POST",
  1189. HTTPPath: "/",
  1190. }
  1191. if input == nil {
  1192. input = &DeleteClusterInput{}
  1193. }
  1194. req = c.newRequest(op, input, output)
  1195. output = &DeleteClusterOutput{}
  1196. req.Data = output
  1197. return
  1198. }
  1199. // DeleteCluster API operation for Amazon Redshift.
  1200. //
  1201. // Deletes a previously provisioned cluster. A successful response from the
  1202. // web service indicates that the request was received correctly. Use DescribeClusters
  1203. // to monitor the status of the deletion. The delete operation cannot be canceled
  1204. // or reverted once submitted. For more information about managing clusters,
  1205. // go to Amazon Redshift Clusters (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
  1206. // in the Amazon Redshift Cluster Management Guide.
  1207. //
  1208. // If you want to shut down the cluster and retain it for future use, set SkipFinalClusterSnapshot
  1209. // to false and specify a name for FinalClusterSnapshotIdentifier. You can later
  1210. // restore this snapshot to resume using the cluster. If a final cluster snapshot
  1211. // is requested, the status of the cluster will be "final-snapshot" while the
  1212. // snapshot is being taken, then it's "deleting" once Amazon Redshift begins
  1213. // deleting the cluster.
  1214. //
  1215. // For more information about managing clusters, go to Amazon Redshift Clusters
  1216. // (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
  1217. // in the Amazon Redshift Cluster Management Guide.
  1218. //
  1219. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1220. // with awserr.Error's Code and Message methods to get detailed information about
  1221. // the error.
  1222. //
  1223. // See the AWS API reference guide for Amazon Redshift's
  1224. // API operation DeleteCluster for usage and error information.
  1225. //
  1226. // Returned Error Codes:
  1227. // * ClusterNotFound
  1228. // The ClusterIdentifier parameter does not refer to an existing cluster.
  1229. //
  1230. // * InvalidClusterState
  1231. // The specified cluster is not in the available state.
  1232. //
  1233. // * ClusterSnapshotAlreadyExists
  1234. // The value specified as a snapshot identifier is already used by an existing
  1235. // snapshot.
  1236. //
  1237. // * ClusterSnapshotQuotaExceeded
  1238. // The request would result in the user exceeding the allowed number of cluster
  1239. // snapshots.
  1240. //
  1241. func (c *Redshift) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
  1242. req, out := c.DeleteClusterRequest(input)
  1243. err := req.Send()
  1244. return out, err
  1245. }
  1246. const opDeleteClusterParameterGroup = "DeleteClusterParameterGroup"
  1247. // DeleteClusterParameterGroupRequest generates a "aws/request.Request" representing the
  1248. // client's request for the DeleteClusterParameterGroup operation. The "output" return
  1249. // value can be used to capture response data after the request's "Send" method
  1250. // is called.
  1251. //
  1252. // See DeleteClusterParameterGroup for usage and error information.
  1253. //
  1254. // Creating a request object using this method should be used when you want to inject
  1255. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1256. // access properties on the request object before or after sending the request. If
  1257. // you just want the service response, call the DeleteClusterParameterGroup method directly
  1258. // instead.
  1259. //
  1260. // Note: You must call the "Send" method on the returned request object in order
  1261. // to execute the request.
  1262. //
  1263. // // Example sending a request using the DeleteClusterParameterGroupRequest method.
  1264. // req, resp := client.DeleteClusterParameterGroupRequest(params)
  1265. //
  1266. // err := req.Send()
  1267. // if err == nil { // resp is now filled
  1268. // fmt.Println(resp)
  1269. // }
  1270. //
  1271. func (c *Redshift) DeleteClusterParameterGroupRequest(input *DeleteClusterParameterGroupInput) (req *request.Request, output *DeleteClusterParameterGroupOutput) {
  1272. op := &request.Operation{
  1273. Name: opDeleteClusterParameterGroup,
  1274. HTTPMethod: "POST",
  1275. HTTPPath: "/",
  1276. }
  1277. if input == nil {
  1278. input = &DeleteClusterParameterGroupInput{}
  1279. }
  1280. req = c.newRequest(op, input, output)
  1281. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1282. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1283. output = &DeleteClusterParameterGroupOutput{}
  1284. req.Data = output
  1285. return
  1286. }
  1287. // DeleteClusterParameterGroup API operation for Amazon Redshift.
  1288. //
  1289. // Deletes a specified Amazon Redshift parameter group.
  1290. //
  1291. // You cannot delete a parameter group if it is associated with a cluster.
  1292. //
  1293. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1294. // with awserr.Error's Code and Message methods to get detailed information about
  1295. // the error.
  1296. //
  1297. // See the AWS API reference guide for Amazon Redshift's
  1298. // API operation DeleteClusterParameterGroup for usage and error information.
  1299. //
  1300. // Returned Error Codes:
  1301. // * InvalidClusterParameterGroupState
  1302. // The cluster parameter group action can not be completed because another task
  1303. // is in progress that involves the parameter group. Wait a few moments and
  1304. // try the operation again.
  1305. //
  1306. // * ClusterParameterGroupNotFound
  1307. // The parameter group name does not refer to an existing parameter group.
  1308. //
  1309. func (c *Redshift) DeleteClusterParameterGroup(input *DeleteClusterParameterGroupInput) (*DeleteClusterParameterGroupOutput, error) {
  1310. req, out := c.DeleteClusterParameterGroupRequest(input)
  1311. err := req.Send()
  1312. return out, err
  1313. }
  1314. const opDeleteClusterSecurityGroup = "DeleteClusterSecurityGroup"
  1315. // DeleteClusterSecurityGroupRequest generates a "aws/request.Request" representing the
  1316. // client's request for the DeleteClusterSecurityGroup operation. The "output" return
  1317. // value can be used to capture response data after the request's "Send" method
  1318. // is called.
  1319. //
  1320. // See DeleteClusterSecurityGroup for usage and error information.
  1321. //
  1322. // Creating a request object using this method should be used when you want to inject
  1323. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1324. // access properties on the request object before or after sending the request. If
  1325. // you just want the service response, call the DeleteClusterSecurityGroup method directly
  1326. // instead.
  1327. //
  1328. // Note: You must call the "Send" method on the returned request object in order
  1329. // to execute the request.
  1330. //
  1331. // // Example sending a request using the DeleteClusterSecurityGroupRequest method.
  1332. // req, resp := client.DeleteClusterSecurityGroupRequest(params)
  1333. //
  1334. // err := req.Send()
  1335. // if err == nil { // resp is now filled
  1336. // fmt.Println(resp)
  1337. // }
  1338. //
  1339. func (c *Redshift) DeleteClusterSecurityGroupRequest(input *DeleteClusterSecurityGroupInput) (req *request.Request, output *DeleteClusterSecurityGroupOutput) {
  1340. op := &request.Operation{
  1341. Name: opDeleteClusterSecurityGroup,
  1342. HTTPMethod: "POST",
  1343. HTTPPath: "/",
  1344. }
  1345. if input == nil {
  1346. input = &DeleteClusterSecurityGroupInput{}
  1347. }
  1348. req = c.newRequest(op, input, output)
  1349. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1350. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1351. output = &DeleteClusterSecurityGroupOutput{}
  1352. req.Data = output
  1353. return
  1354. }
  1355. // DeleteClusterSecurityGroup API operation for Amazon Redshift.
  1356. //
  1357. // Deletes an Amazon Redshift security group.
  1358. //
  1359. // You cannot delete a security group that is associated with any clusters.
  1360. // You cannot delete the default security group.
  1361. //
  1362. // For information about managing security groups, go to Amazon Redshift Cluster
  1363. // Security Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
  1364. // in the Amazon Redshift Cluster Management Guide.
  1365. //
  1366. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1367. // with awserr.Error's Code and Message methods to get detailed information about
  1368. // the error.
  1369. //
  1370. // See the AWS API reference guide for Amazon Redshift's
  1371. // API operation DeleteClusterSecurityGroup for usage and error information.
  1372. //
  1373. // Returned Error Codes:
  1374. // * InvalidClusterSecurityGroupState
  1375. // The state of the cluster security group is not available.
  1376. //
  1377. // * ClusterSecurityGroupNotFound
  1378. // The cluster security group name does not refer to an existing cluster security
  1379. // group.
  1380. //
  1381. func (c *Redshift) DeleteClusterSecurityGroup(input *DeleteClusterSecurityGroupInput) (*DeleteClusterSecurityGroupOutput, error) {
  1382. req, out := c.DeleteClusterSecurityGroupRequest(input)
  1383. err := req.Send()
  1384. return out, err
  1385. }
  1386. const opDeleteClusterSnapshot = "DeleteClusterSnapshot"
  1387. // DeleteClusterSnapshotRequest generates a "aws/request.Request" representing the
  1388. // client's request for the DeleteClusterSnapshot operation. The "output" return
  1389. // value can be used to capture response data after the request's "Send" method
  1390. // is called.
  1391. //
  1392. // See DeleteClusterSnapshot for usage and error information.
  1393. //
  1394. // Creating a request object using this method should be used when you want to inject
  1395. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1396. // access properties on the request object before or after sending the request. If
  1397. // you just want the service response, call the DeleteClusterSnapshot method directly
  1398. // instead.
  1399. //
  1400. // Note: You must call the "Send" method on the returned request object in order
  1401. // to execute the request.
  1402. //
  1403. // // Example sending a request using the DeleteClusterSnapshotRequest method.
  1404. // req, resp := client.DeleteClusterSnapshotRequest(params)
  1405. //
  1406. // err := req.Send()
  1407. // if err == nil { // resp is now filled
  1408. // fmt.Println(resp)
  1409. // }
  1410. //
  1411. func (c *Redshift) DeleteClusterSnapshotRequest(input *DeleteClusterSnapshotInput) (req *request.Request, output *DeleteClusterSnapshotOutput) {
  1412. op := &request.Operation{
  1413. Name: opDeleteClusterSnapshot,
  1414. HTTPMethod: "POST",
  1415. HTTPPath: "/",
  1416. }
  1417. if input == nil {
  1418. input = &DeleteClusterSnapshotInput{}
  1419. }
  1420. req = c.newRequest(op, input, output)
  1421. output = &DeleteClusterSnapshotOutput{}
  1422. req.Data = output
  1423. return
  1424. }
  1425. // DeleteClusterSnapshot API operation for Amazon Redshift.
  1426. //
  1427. // Deletes the specified manual snapshot. The snapshot must be in the available
  1428. // state, with no other users authorized to access the snapshot.
  1429. //
  1430. // Unlike automated snapshots, manual snapshots are retained even after you
  1431. // delete your cluster. Amazon Redshift does not delete your manual snapshots.
  1432. // You must delete manual snapshot explicitly to avoid getting charged. If other
  1433. // accounts are authorized to access the snapshot, you must revoke all of the
  1434. // authorizations before you can delete the snapshot.
  1435. //
  1436. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1437. // with awserr.Error's Code and Message methods to get detailed information about
  1438. // the error.
  1439. //
  1440. // See the AWS API reference guide for Amazon Redshift's
  1441. // API operation DeleteClusterSnapshot for usage and error information.
  1442. //
  1443. // Returned Error Codes:
  1444. // * InvalidClusterSnapshotState
  1445. // The specified cluster snapshot is not in the available state, or other accounts
  1446. // are authorized to access the snapshot.
  1447. //
  1448. // * ClusterSnapshotNotFound
  1449. // The snapshot identifier does not refer to an existing cluster snapshot.
  1450. //
  1451. func (c *Redshift) DeleteClusterSnapshot(input *DeleteClusterSnapshotInput) (*DeleteClusterSnapshotOutput, error) {
  1452. req, out := c.DeleteClusterSnapshotRequest(input)
  1453. err := req.Send()
  1454. return out, err
  1455. }
  1456. const opDeleteClusterSubnetGroup = "DeleteClusterSubnetGroup"
  1457. // DeleteClusterSubnetGroupRequest generates a "aws/request.Request" representing the
  1458. // client's request for the DeleteClusterSubnetGroup operation. The "output" return
  1459. // value can be used to capture response data after the request's "Send" method
  1460. // is called.
  1461. //
  1462. // See DeleteClusterSubnetGroup for usage and error information.
  1463. //
  1464. // Creating a request object using this method should be used when you want to inject
  1465. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1466. // access properties on the request object before or after sending the request. If
  1467. // you just want the service response, call the DeleteClusterSubnetGroup method directly
  1468. // instead.
  1469. //
  1470. // Note: You must call the "Send" method on the returned request object in order
  1471. // to execute the request.
  1472. //
  1473. // // Example sending a request using the DeleteClusterSubnetGroupRequest method.
  1474. // req, resp := client.DeleteClusterSubnetGroupRequest(params)
  1475. //
  1476. // err := req.Send()
  1477. // if err == nil { // resp is now filled
  1478. // fmt.Println(resp)
  1479. // }
  1480. //
  1481. func (c *Redshift) DeleteClusterSubnetGroupRequest(input *DeleteClusterSubnetGroupInput) (req *request.Request, output *DeleteClusterSubnetGroupOutput) {
  1482. op := &request.Operation{
  1483. Name: opDeleteClusterSubnetGroup,
  1484. HTTPMethod: "POST",
  1485. HTTPPath: "/",
  1486. }
  1487. if input == nil {
  1488. input = &DeleteClusterSubnetGroupInput{}
  1489. }
  1490. req = c.newRequest(op, input, output)
  1491. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1492. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1493. output = &DeleteClusterSubnetGroupOutput{}
  1494. req.Data = output
  1495. return
  1496. }
  1497. // DeleteClusterSubnetGroup API operation for Amazon Redshift.
  1498. //
  1499. // Deletes the specified cluster subnet group.
  1500. //
  1501. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1502. // with awserr.Error's Code and Message methods to get detailed information about
  1503. // the error.
  1504. //
  1505. // See the AWS API reference guide for Amazon Redshift's
  1506. // API operation DeleteClusterSubnetGroup for usage and error information.
  1507. //
  1508. // Returned Error Codes:
  1509. // * InvalidClusterSubnetGroupStateFault
  1510. // The cluster subnet group cannot be deleted because it is in use.
  1511. //
  1512. // * InvalidClusterSubnetStateFault
  1513. // The state of the subnet is invalid.
  1514. //
  1515. // * ClusterSubnetGroupNotFoundFault
  1516. // The cluster subnet group name does not refer to an existing cluster subnet
  1517. // group.
  1518. //
  1519. func (c *Redshift) DeleteClusterSubnetGroup(input *DeleteClusterSubnetGroupInput) (*DeleteClusterSubnetGroupOutput, error) {
  1520. req, out := c.DeleteClusterSubnetGroupRequest(input)
  1521. err := req.Send()
  1522. return out, err
  1523. }
  1524. const opDeleteEventSubscription = "DeleteEventSubscription"
  1525. // DeleteEventSubscriptionRequest generates a "aws/request.Request" representing the
  1526. // client's request for the DeleteEventSubscription operation. The "output" return
  1527. // value can be used to capture response data after the request's "Send" method
  1528. // is called.
  1529. //
  1530. // See DeleteEventSubscription for usage and error information.
  1531. //
  1532. // Creating a request object using this method should be used when you want to inject
  1533. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1534. // access properties on the request object before or after sending the request. If
  1535. // you just want the service response, call the DeleteEventSubscription method directly
  1536. // instead.
  1537. //
  1538. // Note: You must call the "Send" method on the returned request object in order
  1539. // to execute the request.
  1540. //
  1541. // // Example sending a request using the DeleteEventSubscriptionRequest method.
  1542. // req, resp := client.DeleteEventSubscriptionRequest(params)
  1543. //
  1544. // err := req.Send()
  1545. // if err == nil { // resp is now filled
  1546. // fmt.Println(resp)
  1547. // }
  1548. //
  1549. func (c *Redshift) DeleteEventSubscriptionRequest(input *DeleteEventSubscriptionInput) (req *request.Request, output *DeleteEventSubscriptionOutput) {
  1550. op := &request.Operation{
  1551. Name: opDeleteEventSubscription,
  1552. HTTPMethod: "POST",
  1553. HTTPPath: "/",
  1554. }
  1555. if input == nil {
  1556. input = &DeleteEventSubscriptionInput{}
  1557. }
  1558. req = c.newRequest(op, input, output)
  1559. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1560. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1561. output = &DeleteEventSubscriptionOutput{}
  1562. req.Data = output
  1563. return
  1564. }
  1565. // DeleteEventSubscription API operation for Amazon Redshift.
  1566. //
  1567. // Deletes an Amazon Redshift event notification subscription.
  1568. //
  1569. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1570. // with awserr.Error's Code and Message methods to get detailed information about
  1571. // the error.
  1572. //
  1573. // See the AWS API reference guide for Amazon Redshift's
  1574. // API operation DeleteEventSubscription for usage and error information.
  1575. //
  1576. // Returned Error Codes:
  1577. // * SubscriptionNotFound
  1578. // An Amazon Redshift event notification subscription with the specified name
  1579. // does not exist.
  1580. //
  1581. // * InvalidSubscriptionStateFault
  1582. // The subscription request is invalid because it is a duplicate request. This
  1583. // subscription request is already in progress.
  1584. //
  1585. func (c *Redshift) DeleteEventSubscription(input *DeleteEventSubscriptionInput) (*DeleteEventSubscriptionOutput, error) {
  1586. req, out := c.DeleteEventSubscriptionRequest(input)
  1587. err := req.Send()
  1588. return out, err
  1589. }
  1590. const opDeleteHsmClientCertificate = "DeleteHsmClientCertificate"
  1591. // DeleteHsmClientCertificateRequest generates a "aws/request.Request" representing the
  1592. // client's request for the DeleteHsmClientCertificate operation. The "output" return
  1593. // value can be used to capture response data after the request's "Send" method
  1594. // is called.
  1595. //
  1596. // See DeleteHsmClientCertificate for usage and error information.
  1597. //
  1598. // Creating a request object using this method should be used when you want to inject
  1599. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1600. // access properties on the request object before or after sending the request. If
  1601. // you just want the service response, call the DeleteHsmClientCertificate method directly
  1602. // instead.
  1603. //
  1604. // Note: You must call the "Send" method on the returned request object in order
  1605. // to execute the request.
  1606. //
  1607. // // Example sending a request using the DeleteHsmClientCertificateRequest method.
  1608. // req, resp := client.DeleteHsmClientCertificateRequest(params)
  1609. //
  1610. // err := req.Send()
  1611. // if err == nil { // resp is now filled
  1612. // fmt.Println(resp)
  1613. // }
  1614. //
  1615. func (c *Redshift) DeleteHsmClientCertificateRequest(input *DeleteHsmClientCertificateInput) (req *request.Request, output *DeleteHsmClientCertificateOutput) {
  1616. op := &request.Operation{
  1617. Name: opDeleteHsmClientCertificate,
  1618. HTTPMethod: "POST",
  1619. HTTPPath: "/",
  1620. }
  1621. if input == nil {
  1622. input = &DeleteHsmClientCertificateInput{}
  1623. }
  1624. req = c.newRequest(op, input, output)
  1625. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1626. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1627. output = &DeleteHsmClientCertificateOutput{}
  1628. req.Data = output
  1629. return
  1630. }
  1631. // DeleteHsmClientCertificate API operation for Amazon Redshift.
  1632. //
  1633. // Deletes the specified HSM client certificate.
  1634. //
  1635. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1636. // with awserr.Error's Code and Message methods to get detailed information about
  1637. // the error.
  1638. //
  1639. // See the AWS API reference guide for Amazon Redshift's
  1640. // API operation DeleteHsmClientCertificate for usage and error information.
  1641. //
  1642. // Returned Error Codes:
  1643. // * InvalidHsmClientCertificateStateFault
  1644. // The specified HSM client certificate is not in the available state, or it
  1645. // is still in use by one or more Amazon Redshift clusters.
  1646. //
  1647. // * HsmClientCertificateNotFoundFault
  1648. // There is no Amazon Redshift HSM client certificate with the specified identifier.
  1649. //
  1650. func (c *Redshift) DeleteHsmClientCertificate(input *DeleteHsmClientCertificateInput) (*DeleteHsmClientCertificateOutput, error) {
  1651. req, out := c.DeleteHsmClientCertificateRequest(input)
  1652. err := req.Send()
  1653. return out, err
  1654. }
  1655. const opDeleteHsmConfiguration = "DeleteHsmConfiguration"
  1656. // DeleteHsmConfigurationRequest generates a "aws/request.Request" representing the
  1657. // client's request for the DeleteHsmConfiguration operation. The "output" return
  1658. // value can be used to capture response data after the request's "Send" method
  1659. // is called.
  1660. //
  1661. // See DeleteHsmConfiguration for usage and error information.
  1662. //
  1663. // Creating a request object using this method should be used when you want to inject
  1664. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1665. // access properties on the request object before or after sending the request. If
  1666. // you just want the service response, call the DeleteHsmConfiguration method directly
  1667. // instead.
  1668. //
  1669. // Note: You must call the "Send" method on the returned request object in order
  1670. // to execute the request.
  1671. //
  1672. // // Example sending a request using the DeleteHsmConfigurationRequest method.
  1673. // req, resp := client.DeleteHsmConfigurationRequest(params)
  1674. //
  1675. // err := req.Send()
  1676. // if err == nil { // resp is now filled
  1677. // fmt.Println(resp)
  1678. // }
  1679. //
  1680. func (c *Redshift) DeleteHsmConfigurationRequest(input *DeleteHsmConfigurationInput) (req *request.Request, output *DeleteHsmConfigurationOutput) {
  1681. op := &request.Operation{
  1682. Name: opDeleteHsmConfiguration,
  1683. HTTPMethod: "POST",
  1684. HTTPPath: "/",
  1685. }
  1686. if input == nil {
  1687. input = &DeleteHsmConfigurationInput{}
  1688. }
  1689. req = c.newRequest(op, input, output)
  1690. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1691. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1692. output = &DeleteHsmConfigurationOutput{}
  1693. req.Data = output
  1694. return
  1695. }
  1696. // DeleteHsmConfiguration API operation for Amazon Redshift.
  1697. //
  1698. // Deletes the specified Amazon Redshift HSM configuration.
  1699. //
  1700. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1701. // with awserr.Error's Code and Message methods to get detailed information about
  1702. // the error.
  1703. //
  1704. // See the AWS API reference guide for Amazon Redshift's
  1705. // API operation DeleteHsmConfiguration for usage and error information.
  1706. //
  1707. // Returned Error Codes:
  1708. // * InvalidHsmConfigurationStateFault
  1709. // The specified HSM configuration is not in the available state, or it is still
  1710. // in use by one or more Amazon Redshift clusters.
  1711. //
  1712. // * HsmConfigurationNotFoundFault
  1713. // There is no Amazon Redshift HSM configuration with the specified identifier.
  1714. //
  1715. func (c *Redshift) DeleteHsmConfiguration(input *DeleteHsmConfigurationInput) (*DeleteHsmConfigurationOutput, error) {
  1716. req, out := c.DeleteHsmConfigurationRequest(input)
  1717. err := req.Send()
  1718. return out, err
  1719. }
  1720. const opDeleteSnapshotCopyGrant = "DeleteSnapshotCopyGrant"
  1721. // DeleteSnapshotCopyGrantRequest generates a "aws/request.Request" representing the
  1722. // client's request for the DeleteSnapshotCopyGrant operation. The "output" return
  1723. // value can be used to capture response data after the request's "Send" method
  1724. // is called.
  1725. //
  1726. // See DeleteSnapshotCopyGrant for usage and error information.
  1727. //
  1728. // Creating a request object using this method should be used when you want to inject
  1729. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1730. // access properties on the request object before or after sending the request. If
  1731. // you just want the service response, call the DeleteSnapshotCopyGrant method directly
  1732. // instead.
  1733. //
  1734. // Note: You must call the "Send" method on the returned request object in order
  1735. // to execute the request.
  1736. //
  1737. // // Example sending a request using the DeleteSnapshotCopyGrantRequest method.
  1738. // req, resp := client.DeleteSnapshotCopyGrantRequest(params)
  1739. //
  1740. // err := req.Send()
  1741. // if err == nil { // resp is now filled
  1742. // fmt.Println(resp)
  1743. // }
  1744. //
  1745. func (c *Redshift) DeleteSnapshotCopyGrantRequest(input *DeleteSnapshotCopyGrantInput) (req *request.Request, output *DeleteSnapshotCopyGrantOutput) {
  1746. op := &request.Operation{
  1747. Name: opDeleteSnapshotCopyGrant,
  1748. HTTPMethod: "POST",
  1749. HTTPPath: "/",
  1750. }
  1751. if input == nil {
  1752. input = &DeleteSnapshotCopyGrantInput{}
  1753. }
  1754. req = c.newRequest(op, input, output)
  1755. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1756. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1757. output = &DeleteSnapshotCopyGrantOutput{}
  1758. req.Data = output
  1759. return
  1760. }
  1761. // DeleteSnapshotCopyGrant API operation for Amazon Redshift.
  1762. //
  1763. // Deletes the specified snapshot copy grant.
  1764. //
  1765. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1766. // with awserr.Error's Code and Message methods to get detailed information about
  1767. // the error.
  1768. //
  1769. // See the AWS API reference guide for Amazon Redshift's
  1770. // API operation DeleteSnapshotCopyGrant for usage and error information.
  1771. //
  1772. // Returned Error Codes:
  1773. // * InvalidSnapshotCopyGrantStateFault
  1774. // The snapshot copy grant can't be deleted because it is used by one or more
  1775. // clusters.
  1776. //
  1777. // * SnapshotCopyGrantNotFoundFault
  1778. // The specified snapshot copy grant can't be found. Make sure that the name
  1779. // is typed correctly and that the grant exists in the destination region.
  1780. //
  1781. func (c *Redshift) DeleteSnapshotCopyGrant(input *DeleteSnapshotCopyGrantInput) (*DeleteSnapshotCopyGrantOutput, error) {
  1782. req, out := c.DeleteSnapshotCopyGrantRequest(input)
  1783. err := req.Send()
  1784. return out, err
  1785. }
  1786. const opDeleteTags = "DeleteTags"
  1787. // DeleteTagsRequest generates a "aws/request.Request" representing the
  1788. // client's request for the DeleteTags operation. The "output" return
  1789. // value can be used to capture response data after the request's "Send" method
  1790. // is called.
  1791. //
  1792. // See DeleteTags for usage and error information.
  1793. //
  1794. // Creating a request object using this method should be used when you want to inject
  1795. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1796. // access properties on the request object before or after sending the request. If
  1797. // you just want the service response, call the DeleteTags method directly
  1798. // instead.
  1799. //
  1800. // Note: You must call the "Send" method on the returned request object in order
  1801. // to execute the request.
  1802. //
  1803. // // Example sending a request using the DeleteTagsRequest method.
  1804. // req, resp := client.DeleteTagsRequest(params)
  1805. //
  1806. // err := req.Send()
  1807. // if err == nil { // resp is now filled
  1808. // fmt.Println(resp)
  1809. // }
  1810. //
  1811. func (c *Redshift) DeleteTagsRequest(input *DeleteTagsInput) (req *request.Request, output *DeleteTagsOutput) {
  1812. op := &request.Operation{
  1813. Name: opDeleteTags,
  1814. HTTPMethod: "POST",
  1815. HTTPPath: "/",
  1816. }
  1817. if input == nil {
  1818. input = &DeleteTagsInput{}
  1819. }
  1820. req = c.newRequest(op, input, output)
  1821. req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
  1822. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1823. output = &DeleteTagsOutput{}
  1824. req.Data = output
  1825. return
  1826. }
  1827. // DeleteTags API operation for Amazon Redshift.
  1828. //
  1829. // Deletes a tag or tags from a resource. You must provide the ARN of the resource
  1830. // from which you want to delete the tag or tags.
  1831. //
  1832. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1833. // with awserr.Error's Code and Message methods to get detailed information about
  1834. // the error.
  1835. //
  1836. // See the AWS API reference guide for Amazon Redshift's
  1837. // API operation DeleteTags for usage and error information.
  1838. //
  1839. // Returned Error Codes:
  1840. // * ResourceNotFoundFault
  1841. // The resource could not be found.
  1842. //
  1843. // * InvalidTagFault
  1844. // The tag is invalid.
  1845. //
  1846. func (c *Redshift) DeleteTags(input *DeleteTagsInput) (*DeleteTagsOutput, error) {
  1847. req, out := c.DeleteTagsRequest(input)
  1848. err := req.Send()
  1849. return out, err
  1850. }
  1851. const opDescribeClusterParameterGroups = "DescribeClusterParameterGroups"
  1852. // DescribeClusterParameterGroupsRequest generates a "aws/request.Request" representing the
  1853. // client's request for the DescribeClusterParameterGroups operation. The "output" return
  1854. // value can be used to capture response data after the request's "Send" method
  1855. // is called.
  1856. //
  1857. // See DescribeClusterParameterGroups for usage and error information.
  1858. //
  1859. // Creating a request object using this method should be used when you want to inject
  1860. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1861. // access properties on the request object before or after sending the request. If
  1862. // you just want the service response, call the DescribeClusterParameterGroups method directly
  1863. // instead.
  1864. //
  1865. // Note: You must call the "Send" method on the returned request object in order
  1866. // to execute the request.
  1867. //
  1868. // // Example sending a request using the DescribeClusterParameterGroupsRequest method.
  1869. // req, resp := client.DescribeClusterParameterGroupsRequest(params)
  1870. //
  1871. // err := req.Send()
  1872. // if err == nil { // resp is now filled
  1873. // fmt.Println(resp)
  1874. // }
  1875. //
  1876. func (c *Redshift) DescribeClusterParameterGroupsRequest(input *DescribeClusterParameterGroupsInput) (req *request.Request, output *DescribeClusterParameterGroupsOutput) {
  1877. op := &request.Operation{
  1878. Name: opDescribeClusterParameterGroups,
  1879. HTTPMethod: "POST",
  1880. HTTPPath: "/",
  1881. Paginator: &request.Paginator{
  1882. InputTokens: []string{"Marker"},
  1883. OutputTokens: []string{"Marker"},
  1884. LimitToken: "MaxRecords",
  1885. TruncationToken: "",
  1886. },
  1887. }
  1888. if input == nil {
  1889. input = &DescribeClusterParameterGroupsInput{}
  1890. }
  1891. req = c.newRequest(op, input, output)
  1892. output = &DescribeClusterParameterGroupsOutput{}
  1893. req.Data = output
  1894. return
  1895. }
  1896. // DescribeClusterParameterGroups API operation for Amazon Redshift.
  1897. //
  1898. // Returns a list of Amazon Redshift parameter groups, including parameter groups
  1899. // you created and the default parameter group. For each parameter group, the
  1900. // response includes the parameter group name, description, and parameter group
  1901. // family name. You can optionally specify a name to retrieve the description
  1902. // of a specific parameter group.
  1903. //
  1904. // For more information about parameters and parameter groups, go to Amazon
  1905. // Redshift Parameter Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
  1906. // in the Amazon Redshift Cluster Management Guide.
  1907. //
  1908. // If you specify both tag keys and tag values in the same request, Amazon Redshift
  1909. // returns all parameter groups that match any combination of the specified
  1910. // keys and values. For example, if you have owner and environment for tag keys,
  1911. // and admin and test for tag values, all parameter groups that have any combination
  1912. // of those values are returned.
  1913. //
  1914. // If both tag keys and values are omitted from the request, parameter groups
  1915. // are returned regardless of whether they have tag keys or values associated
  1916. // with them.
  1917. //
  1918. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1919. // with awserr.Error's Code and Message methods to get detailed information about
  1920. // the error.
  1921. //
  1922. // See the AWS API reference guide for Amazon Redshift's
  1923. // API operation DescribeClusterParameterGroups for usage and error information.
  1924. //
  1925. // Returned Error Codes:
  1926. // * ClusterParameterGroupNotFound
  1927. // The parameter group name does not refer to an existing parameter group.
  1928. //
  1929. // * InvalidTagFault
  1930. // The tag is invalid.
  1931. //
  1932. func (c *Redshift) DescribeClusterParameterGroups(input *DescribeClusterParameterGroupsInput) (*DescribeClusterParameterGroupsOutput, error) {
  1933. req, out := c.DescribeClusterParameterGroupsRequest(input)
  1934. err := req.Send()
  1935. return out, err
  1936. }
  1937. // DescribeClusterParameterGroupsPages iterates over the pages of a DescribeClusterParameterGroups operation,
  1938. // calling the "fn" function with the response data for each page. To stop
  1939. // iterating, return false from the fn function.
  1940. //
  1941. // See DescribeClusterParameterGroups method for more information on how to use this operation.
  1942. //
  1943. // Note: This operation can generate multiple requests to a service.
  1944. //
  1945. // // Example iterating over at most 3 pages of a DescribeClusterParameterGroups operation.
  1946. // pageNum := 0
  1947. // err := client.DescribeClusterParameterGroupsPages(params,
  1948. // func(page *DescribeClusterParameterGroupsOutput, lastPage bool) bool {
  1949. // pageNum++
  1950. // fmt.Println(page)
  1951. // return pageNum <= 3
  1952. // })
  1953. //
  1954. func (c *Redshift) DescribeClusterParameterGroupsPages(input *DescribeClusterParameterGroupsInput, fn func(p *DescribeClusterParameterGroupsOutput, lastPage bool) (shouldContinue bool)) error {
  1955. page, _ := c.DescribeClusterParameterGroupsRequest(input)
  1956. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  1957. return page.EachPage(func(p interface{}, lastPage bool) bool {
  1958. return fn(p.(*DescribeClusterParameterGroupsOutput), lastPage)
  1959. })
  1960. }
  1961. const opDescribeClusterParameters = "DescribeClusterParameters"
  1962. // DescribeClusterParametersRequest generates a "aws/request.Request" representing the
  1963. // client's request for the DescribeClusterParameters operation. The "output" return
  1964. // value can be used to capture response data after the request's "Send" method
  1965. // is called.
  1966. //
  1967. // See DescribeClusterParameters for usage and error information.
  1968. //
  1969. // Creating a request object using this method should be used when you want to inject
  1970. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1971. // access properties on the request object before or after sending the request. If
  1972. // you just want the service response, call the DescribeClusterParameters method directly
  1973. // instead.
  1974. //
  1975. // Note: You must call the "Send" method on the returned request object in order
  1976. // to execute the request.
  1977. //
  1978. // // Example sending a request using the DescribeClusterParametersRequest method.
  1979. // req, resp := client.DescribeClusterParametersRequest(params)
  1980. //
  1981. // err := req.Send()
  1982. // if err == nil { // resp is now filled
  1983. // fmt.Println(resp)
  1984. // }
  1985. //
  1986. func (c *Redshift) DescribeClusterParametersRequest(input *DescribeClusterParametersInput) (req *request.Request, output *DescribeClusterParametersOutput) {
  1987. op := &request.Operation{
  1988. Name: opDescribeClusterParameters,
  1989. HTTPMethod: "POST",
  1990. HTTPPath: "/",
  1991. Paginator: &request.Paginator{
  1992. InputTokens: []string{"Marker"},
  1993. OutputTokens: []string{"Marker"},
  1994. LimitToken: "MaxRecords",
  1995. TruncationToken: "",
  1996. },
  1997. }
  1998. if input == nil {
  1999. input = &DescribeClusterParametersInput{}
  2000. }
  2001. req = c.newRequest(op, input, output)
  2002. output = &DescribeClusterParametersOutput{}
  2003. req.Data = output
  2004. return
  2005. }
  2006. // DescribeClusterParameters API operation for Amazon Redshift.
  2007. //
  2008. // Returns a detailed list of parameters contained within the specified Amazon
  2009. // Redshift parameter group. For each parameter the response includes information
  2010. // such as parameter name, description, data type, value, whether the parameter
  2011. // value is modifiable, and so on.
  2012. //
  2013. // You can specify source filter to retrieve parameters of only specific type.
  2014. // For example, to retrieve parameters that were modified by a user action such
  2015. // as from ModifyClusterParameterGroup, you can specify source equal to user.
  2016. //
  2017. // For more information about parameters and parameter groups, go to Amazon
  2018. // Redshift Parameter Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
  2019. // in the Amazon Redshift Cluster Management Guide.
  2020. //
  2021. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2022. // with awserr.Error's Code and Message methods to get detailed information about
  2023. // the error.
  2024. //
  2025. // See the AWS API reference guide for Amazon Redshift's
  2026. // API operation DescribeClusterParameters for usage and error information.
  2027. //
  2028. // Returned Error Codes:
  2029. // * ClusterParameterGroupNotFound
  2030. // The parameter group name does not refer to an existing parameter group.
  2031. //
  2032. func (c *Redshift) DescribeClusterParameters(input *DescribeClusterParametersInput) (*DescribeClusterParametersOutput, error) {
  2033. req, out := c.DescribeClusterParametersRequest(input)
  2034. err := req.Send()
  2035. return out, err
  2036. }
  2037. // DescribeClusterParametersPages iterates over the pages of a DescribeClusterParameters operation,
  2038. // calling the "fn" function with the response data for each page. To stop
  2039. // iterating, return false from the fn function.
  2040. //
  2041. // See DescribeClusterParameters method for more information on how to use this operation.
  2042. //
  2043. // Note: This operation can generate multiple requests to a service.
  2044. //
  2045. // // Example iterating over at most 3 pages of a DescribeClusterParameters operation.
  2046. // pageNum := 0
  2047. // err := client.DescribeClusterParametersPages(params,
  2048. // func(page *DescribeClusterParametersOutput, lastPage bool) bool {
  2049. // pageNum++
  2050. // fmt.Println(page)
  2051. // return pageNum <= 3
  2052. // })
  2053. //
  2054. func (c *Redshift) DescribeClusterParametersPages(input *DescribeClusterParametersInput, fn func(p *DescribeClusterParametersOutput, lastPage bool) (shouldContinue bool)) error {
  2055. page, _ := c.DescribeClusterParametersRequest(input)
  2056. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  2057. return page.EachPage(func(p interface{}, lastPage bool) bool {
  2058. return fn(p.(*DescribeClusterParametersOutput), lastPage)
  2059. })
  2060. }
  2061. const opDescribeClusterSecurityGroups = "DescribeClusterSecurityGroups"
  2062. // DescribeClusterSecurityGroupsRequest generates a "aws/request.Request" representing the
  2063. // client's request for the DescribeClusterSecurityGroups operation. The "output" return
  2064. // value can be used to capture response data after the request's "Send" method
  2065. // is called.
  2066. //
  2067. // See DescribeClusterSecurityGroups for usage and error information.
  2068. //
  2069. // Creating a request object using this method should be used when you want to inject
  2070. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2071. // access properties on the request object before or after sending the request. If
  2072. // you just want the service response, call the DescribeClusterSecurityGroups method directly
  2073. // instead.
  2074. //
  2075. // Note: You must call the "Send" method on the returned request object in order
  2076. // to execute the request.
  2077. //
  2078. // // Example sending a request using the DescribeClusterSecurityGroupsRequest method.
  2079. // req, resp := client.DescribeClusterSecurityGroupsRequest(params)
  2080. //
  2081. // err := req.Send()
  2082. // if err == nil { // resp is now filled
  2083. // fmt.Println(resp)
  2084. // }
  2085. //
  2086. func (c *Redshift) DescribeClusterSecurityGroupsRequest(input *DescribeClusterSecurityGroupsInput) (req *request.Request, output *DescribeClusterSecurityGroupsOutput) {
  2087. op := &request.Operation{
  2088. Name: opDescribeClusterSecurityGroups,
  2089. HTTPMethod: "POST",
  2090. HTTPPath: "/",
  2091. Paginator: &request.Paginator{
  2092. InputTokens: []string{"Marker"},
  2093. OutputTokens: []string{"Marker"},
  2094. LimitToken: "MaxRecords",
  2095. TruncationToken: "",
  2096. },
  2097. }
  2098. if input == nil {
  2099. input = &DescribeClusterSecurityGroupsInput{}
  2100. }
  2101. req = c.newRequest(op, input, output)
  2102. output = &DescribeClusterSecurityGroupsOutput{}
  2103. req.Data = output
  2104. return
  2105. }
  2106. // DescribeClusterSecurityGroups API operation for Amazon Redshift.
  2107. //
  2108. // Returns information about Amazon Redshift security groups. If the name of
  2109. // a security group is specified, the response will contain only information
  2110. // about only that security group.
  2111. //
  2112. // For information about managing security groups, go to Amazon Redshift Cluster
  2113. // Security Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
  2114. // in the Amazon Redshift Cluster Management Guide.
  2115. //
  2116. // If you specify both tag keys and tag values in the same request, Amazon Redshift
  2117. // returns all security groups that match any combination of the specified keys
  2118. // and values. For example, if you have owner and environment for tag keys,
  2119. // and admin and test for tag values, all security groups that have any combination
  2120. // of those values are returned.
  2121. //
  2122. // If both tag keys and values are omitted from the request, security groups
  2123. // are returned regardless of whether they have tag keys or values associated
  2124. // with them.
  2125. //
  2126. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2127. // with awserr.Error's Code and Message methods to get detailed information about
  2128. // the error.
  2129. //
  2130. // See the AWS API reference guide for Amazon Redshift's
  2131. // API operation DescribeClusterSecurityGroups for usage and error information.
  2132. //
  2133. // Returned Error Codes:
  2134. // * ClusterSecurityGroupNotFound
  2135. // The cluster security group name does not refer to an existing cluster security
  2136. // group.
  2137. //
  2138. // * InvalidTagFault
  2139. // The tag is invalid.
  2140. //
  2141. func (c *Redshift) DescribeClusterSecurityGroups(input *DescribeClusterSecurityGroupsInput) (*DescribeClusterSecurityGroupsOutput, error) {
  2142. req, out := c.DescribeClusterSecurityGroupsRequest(input)
  2143. err := req.Send()
  2144. return out, err
  2145. }
  2146. // DescribeClusterSecurityGroupsPages iterates over the pages of a DescribeClusterSecurityGroups operation,
  2147. // calling the "fn" function with the response data for each page. To stop
  2148. // iterating, return false from the fn function.
  2149. //
  2150. // See DescribeClusterSecurityGroups method for more information on how to use this operation.
  2151. //
  2152. // Note: This operation can generate multiple requests to a service.
  2153. //
  2154. // // Example iterating over at most 3 pages of a DescribeClusterSecurityGroups operation.
  2155. // pageNum := 0
  2156. // err := client.DescribeClusterSecurityGroupsPages(params,
  2157. // func(page *DescribeClusterSecurityGroupsOutput, lastPage bool) bool {
  2158. // pageNum++
  2159. // fmt.Println(page)
  2160. // return pageNum <= 3
  2161. // })
  2162. //
  2163. func (c *Redshift) DescribeClusterSecurityGroupsPages(input *DescribeClusterSecurityGroupsInput, fn func(p *DescribeClusterSecurityGroupsOutput, lastPage bool) (shouldContinue bool)) error {
  2164. page, _ := c.DescribeClusterSecurityGroupsRequest(input)
  2165. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  2166. return page.EachPage(func(p interface{}, lastPage bool) bool {
  2167. return fn(p.(*DescribeClusterSecurityGroupsOutput), lastPage)
  2168. })
  2169. }
  2170. const opDescribeClusterSnapshots = "DescribeClusterSnapshots"
  2171. // DescribeClusterSnapshotsRequest generates a "aws/request.Request" representing the
  2172. // client's request for the DescribeClusterSnapshots operation. The "output" return
  2173. // value can be used to capture response data after the request's "Send" method
  2174. // is called.
  2175. //
  2176. // See DescribeClusterSnapshots for usage and error information.
  2177. //
  2178. // Creating a request object using this method should be used when you want to inject
  2179. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2180. // access properties on the request object before or after sending the request. If
  2181. // you just want the service response, call the DescribeClusterSnapshots method directly
  2182. // instead.
  2183. //
  2184. // Note: You must call the "Send" method on the returned request object in order
  2185. // to execute the request.
  2186. //
  2187. // // Example sending a request using the DescribeClusterSnapshotsRequest method.
  2188. // req, resp := client.DescribeClusterSnapshotsRequest(params)
  2189. //
  2190. // err := req.Send()
  2191. // if err == nil { // resp is now filled
  2192. // fmt.Println(resp)
  2193. // }
  2194. //
  2195. func (c *Redshift) DescribeClusterSnapshotsRequest(input *DescribeClusterSnapshotsInput) (req *request.Request, output *DescribeClusterSnapshotsOutput) {
  2196. op := &request.Operation{
  2197. Name: opDescribeClusterSnapshots,
  2198. HTTPMethod: "POST",
  2199. HTTPPath: "/",
  2200. Paginator: &request.Paginator{
  2201. InputTokens: []string{"Marker"},
  2202. OutputTokens: []string{"Marker"},
  2203. LimitToken: "MaxRecords",
  2204. TruncationToken: "",
  2205. },
  2206. }
  2207. if input == nil {
  2208. input = &DescribeClusterSnapshotsInput{}
  2209. }
  2210. req = c.newRequest(op, input, output)
  2211. output = &DescribeClusterSnapshotsOutput{}
  2212. req.Data = output
  2213. return
  2214. }
  2215. // DescribeClusterSnapshots API operation for Amazon Redshift.
  2216. //
  2217. // Returns one or more snapshot objects, which contain metadata about your cluster
  2218. // snapshots. By default, this operation returns information about all snapshots
  2219. // of all clusters that are owned by you AWS customer account. No information
  2220. // is returned for snapshots owned by inactive AWS customer accounts.
  2221. //
  2222. // If you specify both tag keys and tag values in the same request, Amazon Redshift
  2223. // returns all snapshots that match any combination of the specified keys and
  2224. // values. For example, if you have owner and environment for tag keys, and
  2225. // admin and test for tag values, all snapshots that have any combination of
  2226. // those values are returned. Only snapshots that you own are returned in the
  2227. // response; shared snapshots are not returned with the tag key and tag value
  2228. // request parameters.
  2229. //
  2230. // If both tag keys and values are omitted from the request, snapshots are returned
  2231. // regardless of whether they have tag keys or values associated with them.
  2232. //
  2233. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2234. // with awserr.Error's Code and Message methods to get detailed information about
  2235. // the error.
  2236. //
  2237. // See the AWS API reference guide for Amazon Redshift's
  2238. // API operation DescribeClusterSnapshots for usage and error information.
  2239. //
  2240. // Returned Error Codes:
  2241. // * ClusterSnapshotNotFound
  2242. // The snapshot identifier does not refer to an existing cluster snapshot.
  2243. //
  2244. // * InvalidTagFault
  2245. // The tag is invalid.
  2246. //
  2247. func (c *Redshift) DescribeClusterSnapshots(input *DescribeClusterSnapshotsInput) (*DescribeClusterSnapshotsOutput, error) {
  2248. req, out := c.DescribeClusterSnapshotsRequest(input)
  2249. err := req.Send()
  2250. return out, err
  2251. }
  2252. // DescribeClusterSnapshotsPages iterates over the pages of a DescribeClusterSnapshots operation,
  2253. // calling the "fn" function with the response data for each page. To stop
  2254. // iterating, return false from the fn function.
  2255. //
  2256. // See DescribeClusterSnapshots method for more information on how to use this operation.
  2257. //
  2258. // Note: This operation can generate multiple requests to a service.
  2259. //
  2260. // // Example iterating over at most 3 pages of a DescribeClusterSnapshots operation.
  2261. // pageNum := 0
  2262. // err := client.DescribeClusterSnapshotsPages(params,
  2263. // func(page *DescribeClusterSnapshotsOutput, lastPage bool) bool {
  2264. // pageNum++
  2265. // fmt.Println(page)
  2266. // return pageNum <= 3
  2267. // })
  2268. //
  2269. func (c *Redshift) DescribeClusterSnapshotsPages(input *DescribeClusterSnapshotsInput, fn func(p *DescribeClusterSnapshotsOutput, lastPage bool) (shouldContinue bool)) error {
  2270. page, _ := c.DescribeClusterSnapshotsRequest(input)
  2271. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  2272. return page.EachPage(func(p interface{}, lastPage bool) bool {
  2273. return fn(p.(*DescribeClusterSnapshotsOutput), lastPage)
  2274. })
  2275. }
  2276. const opDescribeClusterSubnetGroups = "DescribeClusterSubnetGroups"
  2277. // DescribeClusterSubnetGroupsRequest generates a "aws/request.Request" representing the
  2278. // client's request for the DescribeClusterSubnetGroups operation. The "output" return
  2279. // value can be used to capture response data after the request's "Send" method
  2280. // is called.
  2281. //
  2282. // See DescribeClusterSubnetGroups for usage and error information.
  2283. //
  2284. // Creating a request object using this method should be used when you want to inject
  2285. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2286. // access properties on the request object before or after sending the request. If
  2287. // you just want the service response, call the DescribeClusterSubnetGroups method directly
  2288. // instead.
  2289. //
  2290. // Note: You must call the "Send" method on the returned request object in order
  2291. // to execute the request.
  2292. //
  2293. // // Example sending a request using the DescribeClusterSubnetGroupsRequest method.
  2294. // req, resp := client.DescribeClusterSubnetGroupsRequest(params)
  2295. //
  2296. // err := req.Send()
  2297. // if err == nil { // resp is now filled
  2298. // fmt.Println(resp)
  2299. // }
  2300. //
  2301. func (c *Redshift) DescribeClusterSubnetGroupsRequest(input *DescribeClusterSubnetGroupsInput) (req *request.Request, output *DescribeClusterSubnetGroupsOutput) {
  2302. op := &request.Operation{
  2303. Name: opDescribeClusterSubnetGroups,
  2304. HTTPMethod: "POST",
  2305. HTTPPath: "/",
  2306. Paginator: &request.Paginator{
  2307. InputTokens: []string{"Marker"},
  2308. OutputTokens: []string{"Marker"},
  2309. LimitToken: "MaxRecords",
  2310. TruncationToken: "",
  2311. },
  2312. }
  2313. if input == nil {
  2314. input = &DescribeClusterSubnetGroupsInput{}
  2315. }
  2316. req = c.newRequest(op, input, output)
  2317. output = &DescribeClusterSubnetGroupsOutput{}
  2318. req.Data = output
  2319. return
  2320. }
  2321. // DescribeClusterSubnetGroups API operation for Amazon Redshift.
  2322. //
  2323. // Returns one or more cluster subnet group objects, which contain metadata
  2324. // about your cluster subnet groups. By default, this operation returns information
  2325. // about all cluster subnet groups that are defined in you AWS account.
  2326. //
  2327. // If you specify both tag keys and tag values in the same request, Amazon Redshift
  2328. // returns all subnet groups that match any combination of the specified keys
  2329. // and values. For example, if you have owner and environment for tag keys,
  2330. // and admin and test for tag values, all subnet groups that have any combination
  2331. // of those values are returned.
  2332. //
  2333. // If both tag keys and values are omitted from the request, subnet groups are
  2334. // returned regardless of whether they have tag keys or values associated with
  2335. // them.
  2336. //
  2337. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2338. // with awserr.Error's Code and Message methods to get detailed information about
  2339. // the error.
  2340. //
  2341. // See the AWS API reference guide for Amazon Redshift's
  2342. // API operation DescribeClusterSubnetGroups for usage and error information.
  2343. //
  2344. // Returned Error Codes:
  2345. // * ClusterSubnetGroupNotFoundFault
  2346. // The cluster subnet group name does not refer to an existing cluster subnet
  2347. // group.
  2348. //
  2349. // * InvalidTagFault
  2350. // The tag is invalid.
  2351. //
  2352. func (c *Redshift) DescribeClusterSubnetGroups(input *DescribeClusterSubnetGroupsInput) (*DescribeClusterSubnetGroupsOutput, error) {
  2353. req, out := c.DescribeClusterSubnetGroupsRequest(input)
  2354. err := req.Send()
  2355. return out, err
  2356. }
  2357. // DescribeClusterSubnetGroupsPages iterates over the pages of a DescribeClusterSubnetGroups operation,
  2358. // calling the "fn" function with the response data for each page. To stop
  2359. // iterating, return false from the fn function.
  2360. //
  2361. // See DescribeClusterSubnetGroups method for more information on how to use this operation.
  2362. //
  2363. // Note: This operation can generate multiple requests to a service.
  2364. //
  2365. // // Example iterating over at most 3 pages of a DescribeClusterSubnetGroups operation.
  2366. // pageNum := 0
  2367. // err := client.DescribeClusterSubnetGroupsPages(params,
  2368. // func(page *DescribeClusterSubnetGroupsOutput, lastPage bool) bool {
  2369. // pageNum++
  2370. // fmt.Println(page)
  2371. // return pageNum <= 3
  2372. // })
  2373. //
  2374. func (c *Redshift) DescribeClusterSubnetGroupsPages(input *DescribeClusterSubnetGroupsInput, fn func(p *DescribeClusterSubnetGroupsOutput, lastPage bool) (shouldContinue bool)) error {
  2375. page, _ := c.DescribeClusterSubnetGroupsRequest(input)
  2376. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  2377. return page.EachPage(func(p interface{}, lastPage bool) bool {
  2378. return fn(p.(*DescribeClusterSubnetGroupsOutput), lastPage)
  2379. })
  2380. }
  2381. const opDescribeClusterVersions = "DescribeClusterVersions"
  2382. // DescribeClusterVersionsRequest generates a "aws/request.Request" representing the
  2383. // client's request for the DescribeClusterVersions operation. The "output" return
  2384. // value can be used to capture response data after the request's "Send" method
  2385. // is called.
  2386. //
  2387. // See DescribeClusterVersions for usage and error information.
  2388. //
  2389. // Creating a request object using this method should be used when you want to inject
  2390. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2391. // access properties on the request object before or after sending the request. If
  2392. // you just want the service response, call the DescribeClusterVersions method directly
  2393. // instead.
  2394. //
  2395. // Note: You must call the "Send" method on the returned request object in order
  2396. // to execute the request.
  2397. //
  2398. // // Example sending a request using the DescribeClusterVersionsRequest method.
  2399. // req, resp := client.DescribeClusterVersionsRequest(params)
  2400. //
  2401. // err := req.Send()
  2402. // if err == nil { // resp is now filled
  2403. // fmt.Println(resp)
  2404. // }
  2405. //
  2406. func (c *Redshift) DescribeClusterVersionsRequest(input *DescribeClusterVersionsInput) (req *request.Request, output *DescribeClusterVersionsOutput) {
  2407. op := &request.Operation{
  2408. Name: opDescribeClusterVersions,
  2409. HTTPMethod: "POST",
  2410. HTTPPath: "/",
  2411. Paginator: &request.Paginator{
  2412. InputTokens: []string{"Marker"},
  2413. OutputTokens: []string{"Marker"},
  2414. LimitToken: "MaxRecords",
  2415. TruncationToken: "",
  2416. },
  2417. }
  2418. if input == nil {
  2419. input = &DescribeClusterVersionsInput{}
  2420. }
  2421. req = c.newRequest(op, input, output)
  2422. output = &DescribeClusterVersionsOutput{}
  2423. req.Data = output
  2424. return
  2425. }
  2426. // DescribeClusterVersions API operation for Amazon Redshift.
  2427. //
  2428. // Returns descriptions of the available Amazon Redshift cluster versions. You
  2429. // can call this operation even before creating any clusters to learn more about
  2430. // the Amazon Redshift versions. For more information about managing clusters,
  2431. // go to Amazon Redshift Clusters (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
  2432. // in the Amazon Redshift Cluster Management Guide.
  2433. //
  2434. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2435. // with awserr.Error's Code and Message methods to get detailed information about
  2436. // the error.
  2437. //
  2438. // See the AWS API reference guide for Amazon Redshift's
  2439. // API operation DescribeClusterVersions for usage and error information.
  2440. func (c *Redshift) DescribeClusterVersions(input *DescribeClusterVersionsInput) (*DescribeClusterVersionsOutput, error) {
  2441. req, out := c.DescribeClusterVersionsRequest(input)
  2442. err := req.Send()
  2443. return out, err
  2444. }
  2445. // DescribeClusterVersionsPages iterates over the pages of a DescribeClusterVersions operation,
  2446. // calling the "fn" function with the response data for each page. To stop
  2447. // iterating, return false from the fn function.
  2448. //
  2449. // See DescribeClusterVersions method for more information on how to use this operation.
  2450. //
  2451. // Note: This operation can generate multiple requests to a service.
  2452. //
  2453. // // Example iterating over at most 3 pages of a DescribeClusterVersions operation.
  2454. // pageNum := 0
  2455. // err := client.DescribeClusterVersionsPages(params,
  2456. // func(page *DescribeClusterVersionsOutput, lastPage bool) bool {
  2457. // pageNum++
  2458. // fmt.Println(page)
  2459. // return pageNum <= 3
  2460. // })
  2461. //
  2462. func (c *Redshift) DescribeClusterVersionsPages(input *DescribeClusterVersionsInput, fn func(p *DescribeClusterVersionsOutput, lastPage bool) (shouldContinue bool)) error {
  2463. page, _ := c.DescribeClusterVersionsRequest(input)
  2464. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  2465. return page.EachPage(func(p interface{}, lastPage bool) bool {
  2466. return fn(p.(*DescribeClusterVersionsOutput), lastPage)
  2467. })
  2468. }
  2469. const opDescribeClusters = "DescribeClusters"
  2470. // DescribeClustersRequest generates a "aws/request.Request" representing the
  2471. // client's request for the DescribeClusters operation. The "output" return
  2472. // value can be used to capture response data after the request's "Send" method
  2473. // is called.
  2474. //
  2475. // See DescribeClusters for usage and error information.
  2476. //
  2477. // Creating a request object using this method should be used when you want to inject
  2478. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2479. // access properties on the request object before or after sending the request. If
  2480. // you just want the service response, call the DescribeClusters method directly
  2481. // instead.
  2482. //
  2483. // Note: You must call the "Send" method on the returned request object in order
  2484. // to execute the request.
  2485. //
  2486. // // Example sending a request using the DescribeClustersRequest method.
  2487. // req, resp := client.DescribeClustersRequest(params)
  2488. //
  2489. // err := req.Send()
  2490. // if err == nil { // resp is now filled
  2491. // fmt.Println(resp)
  2492. // }
  2493. //
  2494. func (c *Redshift) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
  2495. op := &request.Operation{
  2496. Name: opDescribeClusters,
  2497. HTTPMethod: "POST",
  2498. HTTPPath: "/",
  2499. Paginator: &request.Paginator{
  2500. InputTokens: []string{"Marker"},
  2501. OutputTokens: []string{"Marker"},
  2502. LimitToken: "MaxRecords",
  2503. TruncationToken: "",
  2504. },
  2505. }
  2506. if input == nil {
  2507. input = &DescribeClustersInput{}
  2508. }
  2509. req = c.newRequest(op, input, output)
  2510. output = &DescribeClustersOutput{}
  2511. req.Data = output
  2512. return
  2513. }
  2514. // DescribeClusters API operation for Amazon Redshift.
  2515. //
  2516. // Returns properties of provisioned clusters including general cluster properties,
  2517. // cluster database properties, maintenance and backup properties, and security
  2518. // and access properties. This operation supports pagination. For more information
  2519. // about managing clusters, go to Amazon Redshift Clusters (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
  2520. // in the Amazon Redshift Cluster Management Guide.
  2521. //
  2522. // If you specify both tag keys and tag values in the same request, Amazon Redshift
  2523. // returns all clusters that match any combination of the specified keys and
  2524. // values. For example, if you have owner and environment for tag keys, and
  2525. // admin and test for tag values, all clusters that have any combination of
  2526. // those values are returned.
  2527. //
  2528. // If both tag keys and values are omitted from the request, clusters are returned
  2529. // regardless of whether they have tag keys or values associated with them.
  2530. //
  2531. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2532. // with awserr.Error's Code and Message methods to get detailed information about
  2533. // the error.
  2534. //
  2535. // See the AWS API reference guide for Amazon Redshift's
  2536. // API operation DescribeClusters for usage and error information.
  2537. //
  2538. // Returned Error Codes:
  2539. // * ClusterNotFound
  2540. // The ClusterIdentifier parameter does not refer to an existing cluster.
  2541. //
  2542. // * InvalidTagFault
  2543. // The tag is invalid.
  2544. //
  2545. func (c *Redshift) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
  2546. req, out := c.DescribeClustersRequest(input)
  2547. err := req.Send()
  2548. return out, err
  2549. }
  2550. // DescribeClustersPages iterates over the pages of a DescribeClusters operation,
  2551. // calling the "fn" function with the response data for each page. To stop
  2552. // iterating, return false from the fn function.
  2553. //
  2554. // See DescribeClusters method for more information on how to use this operation.
  2555. //
  2556. // Note: This operation can generate multiple requests to a service.
  2557. //
  2558. // // Example iterating over at most 3 pages of a DescribeClusters operation.
  2559. // pageNum := 0
  2560. // err := client.DescribeClustersPages(params,
  2561. // func(page *DescribeClustersOutput, lastPage bool) bool {
  2562. // pageNum++
  2563. // fmt.Println(page)
  2564. // return pageNum <= 3
  2565. // })
  2566. //
  2567. func (c *Redshift) DescribeClustersPages(input *DescribeClustersInput, fn func(p *DescribeClustersOutput, lastPage bool) (shouldContinue bool)) error {
  2568. page, _ := c.DescribeClustersRequest(input)
  2569. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  2570. return page.EachPage(func(p interface{}, lastPage bool) bool {
  2571. return fn(p.(*DescribeClustersOutput), lastPage)
  2572. })
  2573. }
  2574. const opDescribeDefaultClusterParameters = "DescribeDefaultClusterParameters"
  2575. // DescribeDefaultClusterParametersRequest generates a "aws/request.Request" representing the
  2576. // client's request for the DescribeDefaultClusterParameters operation. The "output" return
  2577. // value can be used to capture response data after the request's "Send" method
  2578. // is called.
  2579. //
  2580. // See DescribeDefaultClusterParameters for usage and error information.
  2581. //
  2582. // Creating a request object using this method should be used when you want to inject
  2583. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2584. // access properties on the request object before or after sending the request. If
  2585. // you just want the service response, call the DescribeDefaultClusterParameters method directly
  2586. // instead.
  2587. //
  2588. // Note: You must call the "Send" method on the returned request object in order
  2589. // to execute the request.
  2590. //
  2591. // // Example sending a request using the DescribeDefaultClusterParametersRequest method.
  2592. // req, resp := client.DescribeDefaultClusterParametersRequest(params)
  2593. //
  2594. // err := req.Send()
  2595. // if err == nil { // resp is now filled
  2596. // fmt.Println(resp)
  2597. // }
  2598. //
  2599. func (c *Redshift) DescribeDefaultClusterParametersRequest(input *DescribeDefaultClusterParametersInput) (req *request.Request, output *DescribeDefaultClusterParametersOutput) {
  2600. op := &request.Operation{
  2601. Name: opDescribeDefaultClusterParameters,
  2602. HTTPMethod: "POST",
  2603. HTTPPath: "/",
  2604. Paginator: &request.Paginator{
  2605. InputTokens: []string{"Marker"},
  2606. OutputTokens: []string{"DefaultClusterParameters.Marker"},
  2607. LimitToken: "MaxRecords",
  2608. TruncationToken: "",
  2609. },
  2610. }
  2611. if input == nil {
  2612. input = &DescribeDefaultClusterParametersInput{}
  2613. }
  2614. req = c.newRequest(op, input, output)
  2615. output = &DescribeDefaultClusterParametersOutput{}
  2616. req.Data = output
  2617. return
  2618. }
  2619. // DescribeDefaultClusterParameters API operation for Amazon Redshift.
  2620. //
  2621. // Returns a list of parameter settings for the specified parameter group family.
  2622. //
  2623. // For more information about parameters and parameter groups, go to Amazon
  2624. // Redshift Parameter Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
  2625. // in the Amazon Redshift Cluster Management Guide.
  2626. //
  2627. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2628. // with awserr.Error's Code and Message methods to get detailed information about
  2629. // the error.
  2630. //
  2631. // See the AWS API reference guide for Amazon Redshift's
  2632. // API operation DescribeDefaultClusterParameters for usage and error information.
  2633. func (c *Redshift) DescribeDefaultClusterParameters(input *DescribeDefaultClusterParametersInput) (*DescribeDefaultClusterParametersOutput, error) {
  2634. req, out := c.DescribeDefaultClusterParametersRequest(input)
  2635. err := req.Send()
  2636. return out, err
  2637. }
  2638. // DescribeDefaultClusterParametersPages iterates over the pages of a DescribeDefaultClusterParameters operation,
  2639. // calling the "fn" function with the response data for each page. To stop
  2640. // iterating, return false from the fn function.
  2641. //
  2642. // See DescribeDefaultClusterParameters method for more information on how to use this operation.
  2643. //
  2644. // Note: This operation can generate multiple requests to a service.
  2645. //
  2646. // // Example iterating over at most 3 pages of a DescribeDefaultClusterParameters operation.
  2647. // pageNum := 0
  2648. // err := client.DescribeDefaultClusterParametersPages(params,
  2649. // func(page *DescribeDefaultClusterParametersOutput, lastPage bool) bool {
  2650. // pageNum++
  2651. // fmt.Println(page)
  2652. // return pageNum <= 3
  2653. // })
  2654. //
  2655. func (c *Redshift) DescribeDefaultClusterParametersPages(input *DescribeDefaultClusterParametersInput, fn func(p *DescribeDefaultClusterParametersOutput, lastPage bool) (shouldContinue bool)) error {
  2656. page, _ := c.DescribeDefaultClusterParametersRequest(input)
  2657. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  2658. return page.EachPage(func(p interface{}, lastPage bool) bool {
  2659. return fn(p.(*DescribeDefaultClusterParametersOutput), lastPage)
  2660. })
  2661. }
  2662. const opDescribeEventCategories = "DescribeEventCategories"
  2663. // DescribeEventCategoriesRequest generates a "aws/request.Request" representing the
  2664. // client's request for the DescribeEventCategories operation. The "output" return
  2665. // value can be used to capture response data after the request's "Send" method
  2666. // is called.
  2667. //
  2668. // See DescribeEventCategories for usage and error information.
  2669. //
  2670. // Creating a request object using this method should be used when you want to inject
  2671. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2672. // access properties on the request object before or after sending the request. If
  2673. // you just want the service response, call the DescribeEventCategories method directly
  2674. // instead.
  2675. //
  2676. // Note: You must call the "Send" method on the returned request object in order
  2677. // to execute the request.
  2678. //
  2679. // // Example sending a request using the DescribeEventCategoriesRequest method.
  2680. // req, resp := client.DescribeEventCategoriesRequest(params)
  2681. //
  2682. // err := req.Send()
  2683. // if err == nil { // resp is now filled
  2684. // fmt.Println(resp)
  2685. // }
  2686. //
  2687. func (c *Redshift) DescribeEventCategoriesRequest(input *DescribeEventCategoriesInput) (req *request.Request, output *DescribeEventCategoriesOutput) {
  2688. op := &request.Operation{
  2689. Name: opDescribeEventCategories,
  2690. HTTPMethod: "POST",
  2691. HTTPPath: "/",
  2692. }
  2693. if input == nil {
  2694. input = &DescribeEventCategoriesInput{}
  2695. }
  2696. req = c.newRequest(op, input, output)
  2697. output = &DescribeEventCategoriesOutput{}
  2698. req.Data = output
  2699. return
  2700. }
  2701. // DescribeEventCategories API operation for Amazon Redshift.
  2702. //
  2703. // Displays a list of event categories for all event source types, or for a
  2704. // specified source type. For a list of the event categories and source types,
  2705. // go to Amazon Redshift Event Notifications (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-event-notifications.html).
  2706. //
  2707. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2708. // with awserr.Error's Code and Message methods to get detailed information about
  2709. // the error.
  2710. //
  2711. // See the AWS API reference guide for Amazon Redshift's
  2712. // API operation DescribeEventCategories for usage and error information.
  2713. func (c *Redshift) DescribeEventCategories(input *DescribeEventCategoriesInput) (*DescribeEventCategoriesOutput, error) {
  2714. req, out := c.DescribeEventCategoriesRequest(input)
  2715. err := req.Send()
  2716. return out, err
  2717. }
  2718. const opDescribeEventSubscriptions = "DescribeEventSubscriptions"
  2719. // DescribeEventSubscriptionsRequest generates a "aws/request.Request" representing the
  2720. // client's request for the DescribeEventSubscriptions operation. The "output" return
  2721. // value can be used to capture response data after the request's "Send" method
  2722. // is called.
  2723. //
  2724. // See DescribeEventSubscriptions for usage and error information.
  2725. //
  2726. // Creating a request object using this method should be used when you want to inject
  2727. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2728. // access properties on the request object before or after sending the request. If
  2729. // you just want the service response, call the DescribeEventSubscriptions method directly
  2730. // instead.
  2731. //
  2732. // Note: You must call the "Send" method on the returned request object in order
  2733. // to execute the request.
  2734. //
  2735. // // Example sending a request using the DescribeEventSubscriptionsRequest method.
  2736. // req, resp := client.DescribeEventSubscriptionsRequest(params)
  2737. //
  2738. // err := req.Send()
  2739. // if err == nil { // resp is now filled
  2740. // fmt.Println(resp)
  2741. // }
  2742. //
  2743. func (c *Redshift) DescribeEventSubscriptionsRequest(input *DescribeEventSubscriptionsInput) (req *request.Request, output *DescribeEventSubscriptionsOutput) {
  2744. op := &request.Operation{
  2745. Name: opDescribeEventSubscriptions,
  2746. HTTPMethod: "POST",
  2747. HTTPPath: "/",
  2748. Paginator: &request.Paginator{
  2749. InputTokens: []string{"Marker"},
  2750. OutputTokens: []string{"Marker"},
  2751. LimitToken: "MaxRecords",
  2752. TruncationToken: "",
  2753. },
  2754. }
  2755. if input == nil {
  2756. input = &DescribeEventSubscriptionsInput{}
  2757. }
  2758. req = c.newRequest(op, input, output)
  2759. output = &DescribeEventSubscriptionsOutput{}
  2760. req.Data = output
  2761. return
  2762. }
  2763. // DescribeEventSubscriptions API operation for Amazon Redshift.
  2764. //
  2765. // Lists descriptions of all the Amazon Redshift event notifications subscription
  2766. // for a customer account. If you specify a subscription name, lists the description
  2767. // for that subscription.
  2768. //
  2769. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2770. // with awserr.Error's Code and Message methods to get detailed information about
  2771. // the error.
  2772. //
  2773. // See the AWS API reference guide for Amazon Redshift's
  2774. // API operation DescribeEventSubscriptions for usage and error information.
  2775. //
  2776. // Returned Error Codes:
  2777. // * SubscriptionNotFound
  2778. // An Amazon Redshift event notification subscription with the specified name
  2779. // does not exist.
  2780. //
  2781. func (c *Redshift) DescribeEventSubscriptions(input *DescribeEventSubscriptionsInput) (*DescribeEventSubscriptionsOutput, error) {
  2782. req, out := c.DescribeEventSubscriptionsRequest(input)
  2783. err := req.Send()
  2784. return out, err
  2785. }
  2786. // DescribeEventSubscriptionsPages iterates over the pages of a DescribeEventSubscriptions operation,
  2787. // calling the "fn" function with the response data for each page. To stop
  2788. // iterating, return false from the fn function.
  2789. //
  2790. // See DescribeEventSubscriptions method for more information on how to use this operation.
  2791. //
  2792. // Note: This operation can generate multiple requests to a service.
  2793. //
  2794. // // Example iterating over at most 3 pages of a DescribeEventSubscriptions operation.
  2795. // pageNum := 0
  2796. // err := client.DescribeEventSubscriptionsPages(params,
  2797. // func(page *DescribeEventSubscriptionsOutput, lastPage bool) bool {
  2798. // pageNum++
  2799. // fmt.Println(page)
  2800. // return pageNum <= 3
  2801. // })
  2802. //
  2803. func (c *Redshift) DescribeEventSubscriptionsPages(input *DescribeEventSubscriptionsInput, fn func(p *DescribeEventSubscriptionsOutput, lastPage bool) (shouldContinue bool)) error {
  2804. page, _ := c.DescribeEventSubscriptionsRequest(input)
  2805. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  2806. return page.EachPage(func(p interface{}, lastPage bool) bool {
  2807. return fn(p.(*DescribeEventSubscriptionsOutput), lastPage)
  2808. })
  2809. }
  2810. const opDescribeEvents = "DescribeEvents"
  2811. // DescribeEventsRequest generates a "aws/request.Request" representing the
  2812. // client's request for the DescribeEvents operation. The "output" return
  2813. // value can be used to capture response data after the request's "Send" method
  2814. // is called.
  2815. //
  2816. // See DescribeEvents for usage and error information.
  2817. //
  2818. // Creating a request object using this method should be used when you want to inject
  2819. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2820. // access properties on the request object before or after sending the request. If
  2821. // you just want the service response, call the DescribeEvents method directly
  2822. // instead.
  2823. //
  2824. // Note: You must call the "Send" method on the returned request object in order
  2825. // to execute the request.
  2826. //
  2827. // // Example sending a request using the DescribeEventsRequest method.
  2828. // req, resp := client.DescribeEventsRequest(params)
  2829. //
  2830. // err := req.Send()
  2831. // if err == nil { // resp is now filled
  2832. // fmt.Println(resp)
  2833. // }
  2834. //
  2835. func (c *Redshift) DescribeEventsRequest(input *DescribeEventsInput) (req *request.Request, output *DescribeEventsOutput) {
  2836. op := &request.Operation{
  2837. Name: opDescribeEvents,
  2838. HTTPMethod: "POST",
  2839. HTTPPath: "/",
  2840. Paginator: &request.Paginator{
  2841. InputTokens: []string{"Marker"},
  2842. OutputTokens: []string{"Marker"},
  2843. LimitToken: "MaxRecords",
  2844. TruncationToken: "",
  2845. },
  2846. }
  2847. if input == nil {
  2848. input = &DescribeEventsInput{}
  2849. }
  2850. req = c.newRequest(op, input, output)
  2851. output = &DescribeEventsOutput{}
  2852. req.Data = output
  2853. return
  2854. }
  2855. // DescribeEvents API operation for Amazon Redshift.
  2856. //
  2857. // Returns events related to clusters, security groups, snapshots, and parameter
  2858. // groups for the past 14 days. Events specific to a particular cluster, security
  2859. // group, snapshot or parameter group can be obtained by providing the name
  2860. // as a parameter. By default, the past hour of events are returned.
  2861. //
  2862. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2863. // with awserr.Error's Code and Message methods to get detailed information about
  2864. // the error.
  2865. //
  2866. // See the AWS API reference guide for Amazon Redshift's
  2867. // API operation DescribeEvents for usage and error information.
  2868. func (c *Redshift) DescribeEvents(input *DescribeEventsInput) (*DescribeEventsOutput, error) {
  2869. req, out := c.DescribeEventsRequest(input)
  2870. err := req.Send()
  2871. return out, err
  2872. }
  2873. // DescribeEventsPages iterates over the pages of a DescribeEvents operation,
  2874. // calling the "fn" function with the response data for each page. To stop
  2875. // iterating, return false from the fn function.
  2876. //
  2877. // See DescribeEvents method for more information on how to use this operation.
  2878. //
  2879. // Note: This operation can generate multiple requests to a service.
  2880. //
  2881. // // Example iterating over at most 3 pages of a DescribeEvents operation.
  2882. // pageNum := 0
  2883. // err := client.DescribeEventsPages(params,
  2884. // func(page *DescribeEventsOutput, lastPage bool) bool {
  2885. // pageNum++
  2886. // fmt.Println(page)
  2887. // return pageNum <= 3
  2888. // })
  2889. //
  2890. func (c *Redshift) DescribeEventsPages(input *DescribeEventsInput, fn func(p *DescribeEventsOutput, lastPage bool) (shouldContinue bool)) error {
  2891. page, _ := c.DescribeEventsRequest(input)
  2892. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  2893. return page.EachPage(func(p interface{}, lastPage bool) bool {
  2894. return fn(p.(*DescribeEventsOutput), lastPage)
  2895. })
  2896. }
  2897. const opDescribeHsmClientCertificates = "DescribeHsmClientCertificates"
  2898. // DescribeHsmClientCertificatesRequest generates a "aws/request.Request" representing the
  2899. // client's request for the DescribeHsmClientCertificates operation. The "output" return
  2900. // value can be used to capture response data after the request's "Send" method
  2901. // is called.
  2902. //
  2903. // See DescribeHsmClientCertificates for usage and error information.
  2904. //
  2905. // Creating a request object using this method should be used when you want to inject
  2906. // custom logic into the request's lifecycle using a custom handler, or if you want to
  2907. // access properties on the request object before or after sending the request. If
  2908. // you just want the service response, call the DescribeHsmClientCertificates method directly
  2909. // instead.
  2910. //
  2911. // Note: You must call the "Send" method on the returned request object in order
  2912. // to execute the request.
  2913. //
  2914. // // Example sending a request using the DescribeHsmClientCertificatesRequest method.
  2915. // req, resp := client.DescribeHsmClientCertificatesRequest(params)
  2916. //
  2917. // err := req.Send()
  2918. // if err == nil { // resp is now filled
  2919. // fmt.Println(resp)
  2920. // }
  2921. //
  2922. func (c *Redshift) DescribeHsmClientCertificatesRequest(input *DescribeHsmClientCertificatesInput) (req *request.Request, output *DescribeHsmClientCertificatesOutput) {
  2923. op := &request.Operation{
  2924. Name: opDescribeHsmClientCertificates,
  2925. HTTPMethod: "POST",
  2926. HTTPPath: "/",
  2927. Paginator: &request.Paginator{
  2928. InputTokens: []string{"Marker"},
  2929. OutputTokens: []string{"Marker"},
  2930. LimitToken: "MaxRecords",
  2931. TruncationToken: "",
  2932. },
  2933. }
  2934. if input == nil {
  2935. input = &DescribeHsmClientCertificatesInput{}
  2936. }
  2937. req = c.newRequest(op, input, output)
  2938. output = &DescribeHsmClientCertificatesOutput{}
  2939. req.Data = output
  2940. return
  2941. }
  2942. // DescribeHsmClientCertificates API operation for Amazon Redshift.
  2943. //
  2944. // Returns information about the specified HSM client certificate. If no certificate
  2945. // ID is specified, returns information about all the HSM certificates owned
  2946. // by your AWS customer account.
  2947. //
  2948. // If you specify both tag keys and tag values in the same request, Amazon Redshift
  2949. // returns all HSM client certificates that match any combination of the specified
  2950. // keys and values. For example, if you have owner and environment for tag keys,
  2951. // and admin and test for tag values, all HSM client certificates that have
  2952. // any combination of those values are returned.
  2953. //
  2954. // If both tag keys and values are omitted from the request, HSM client certificates
  2955. // are returned regardless of whether they have tag keys or values associated
  2956. // with them.
  2957. //
  2958. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2959. // with awserr.Error's Code and Message methods to get detailed information about
  2960. // the error.
  2961. //
  2962. // See the AWS API reference guide for Amazon Redshift's
  2963. // API operation DescribeHsmClientCertificates for usage and error information.
  2964. //
  2965. // Returned Error Codes:
  2966. // * HsmClientCertificateNotFoundFault
  2967. // There is no Amazon Redshift HSM client certificate with the specified identifier.
  2968. //
  2969. // * InvalidTagFault
  2970. // The tag is invalid.
  2971. //
  2972. func (c *Redshift) DescribeHsmClientCertificates(input *DescribeHsmClientCertificatesInput) (*DescribeHsmClientCertificatesOutput, error) {
  2973. req, out := c.DescribeHsmClientCertificatesRequest(input)
  2974. err := req.Send()
  2975. return out, err
  2976. }
  2977. // DescribeHsmClientCertificatesPages iterates over the pages of a DescribeHsmClientCertificates operation,
  2978. // calling the "fn" function with the response data for each page. To stop
  2979. // iterating, return false from the fn function.
  2980. //
  2981. // See DescribeHsmClientCertificates method for more information on how to use this operation.
  2982. //
  2983. // Note: This operation can generate multiple requests to a service.
  2984. //
  2985. // // Example iterating over at most 3 pages of a DescribeHsmClientCertificates operation.
  2986. // pageNum := 0
  2987. // err := client.DescribeHsmClientCertificatesPages(params,
  2988. // func(page *DescribeHsmClientCertificatesOutput, lastPage bool) bool {
  2989. // pageNum++
  2990. // fmt.Println(page)
  2991. // return pageNum <= 3
  2992. // })
  2993. //
  2994. func (c *Redshift) DescribeHsmClientCertificatesPages(input *DescribeHsmClientCertificatesInput, fn func(p *DescribeHsmClientCertificatesOutput, lastPage bool) (shouldContinue bool)) error {
  2995. page, _ := c.DescribeHsmClientCertificatesRequest(input)
  2996. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  2997. return page.EachPage(func(p interface{}, lastPage bool) bool {
  2998. return fn(p.(*DescribeHsmClientCertificatesOutput), lastPage)
  2999. })
  3000. }
  3001. const opDescribeHsmConfigurations = "DescribeHsmConfigurations"
  3002. // DescribeHsmConfigurationsRequest generates a "aws/request.Request" representing the
  3003. // client's request for the DescribeHsmConfigurations operation. The "output" return
  3004. // value can be used to capture response data after the request's "Send" method
  3005. // is called.
  3006. //
  3007. // See DescribeHsmConfigurations for usage and error information.
  3008. //
  3009. // Creating a request object using this method should be used when you want to inject
  3010. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3011. // access properties on the request object before or after sending the request. If
  3012. // you just want the service response, call the DescribeHsmConfigurations method directly
  3013. // instead.
  3014. //
  3015. // Note: You must call the "Send" method on the returned request object in order
  3016. // to execute the request.
  3017. //
  3018. // // Example sending a request using the DescribeHsmConfigurationsRequest method.
  3019. // req, resp := client.DescribeHsmConfigurationsRequest(params)
  3020. //
  3021. // err := req.Send()
  3022. // if err == nil { // resp is now filled
  3023. // fmt.Println(resp)
  3024. // }
  3025. //
  3026. func (c *Redshift) DescribeHsmConfigurationsRequest(input *DescribeHsmConfigurationsInput) (req *request.Request, output *DescribeHsmConfigurationsOutput) {
  3027. op := &request.Operation{
  3028. Name: opDescribeHsmConfigurations,
  3029. HTTPMethod: "POST",
  3030. HTTPPath: "/",
  3031. Paginator: &request.Paginator{
  3032. InputTokens: []string{"Marker"},
  3033. OutputTokens: []string{"Marker"},
  3034. LimitToken: "MaxRecords",
  3035. TruncationToken: "",
  3036. },
  3037. }
  3038. if input == nil {
  3039. input = &DescribeHsmConfigurationsInput{}
  3040. }
  3041. req = c.newRequest(op, input, output)
  3042. output = &DescribeHsmConfigurationsOutput{}
  3043. req.Data = output
  3044. return
  3045. }
  3046. // DescribeHsmConfigurations API operation for Amazon Redshift.
  3047. //
  3048. // Returns information about the specified Amazon Redshift HSM configuration.
  3049. // If no configuration ID is specified, returns information about all the HSM
  3050. // configurations owned by your AWS customer account.
  3051. //
  3052. // If you specify both tag keys and tag values in the same request, Amazon Redshift
  3053. // returns all HSM connections that match any combination of the specified keys
  3054. // and values. For example, if you have owner and environment for tag keys,
  3055. // and admin and test for tag values, all HSM connections that have any combination
  3056. // of those values are returned.
  3057. //
  3058. // If both tag keys and values are omitted from the request, HSM connections
  3059. // are returned regardless of whether they have tag keys or values associated
  3060. // with them.
  3061. //
  3062. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3063. // with awserr.Error's Code and Message methods to get detailed information about
  3064. // the error.
  3065. //
  3066. // See the AWS API reference guide for Amazon Redshift's
  3067. // API operation DescribeHsmConfigurations for usage and error information.
  3068. //
  3069. // Returned Error Codes:
  3070. // * HsmConfigurationNotFoundFault
  3071. // There is no Amazon Redshift HSM configuration with the specified identifier.
  3072. //
  3073. // * InvalidTagFault
  3074. // The tag is invalid.
  3075. //
  3076. func (c *Redshift) DescribeHsmConfigurations(input *DescribeHsmConfigurationsInput) (*DescribeHsmConfigurationsOutput, error) {
  3077. req, out := c.DescribeHsmConfigurationsRequest(input)
  3078. err := req.Send()
  3079. return out, err
  3080. }
  3081. // DescribeHsmConfigurationsPages iterates over the pages of a DescribeHsmConfigurations operation,
  3082. // calling the "fn" function with the response data for each page. To stop
  3083. // iterating, return false from the fn function.
  3084. //
  3085. // See DescribeHsmConfigurations method for more information on how to use this operation.
  3086. //
  3087. // Note: This operation can generate multiple requests to a service.
  3088. //
  3089. // // Example iterating over at most 3 pages of a DescribeHsmConfigurations operation.
  3090. // pageNum := 0
  3091. // err := client.DescribeHsmConfigurationsPages(params,
  3092. // func(page *DescribeHsmConfigurationsOutput, lastPage bool) bool {
  3093. // pageNum++
  3094. // fmt.Println(page)
  3095. // return pageNum <= 3
  3096. // })
  3097. //
  3098. func (c *Redshift) DescribeHsmConfigurationsPages(input *DescribeHsmConfigurationsInput, fn func(p *DescribeHsmConfigurationsOutput, lastPage bool) (shouldContinue bool)) error {
  3099. page, _ := c.DescribeHsmConfigurationsRequest(input)
  3100. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  3101. return page.EachPage(func(p interface{}, lastPage bool) bool {
  3102. return fn(p.(*DescribeHsmConfigurationsOutput), lastPage)
  3103. })
  3104. }
  3105. const opDescribeLoggingStatus = "DescribeLoggingStatus"
  3106. // DescribeLoggingStatusRequest generates a "aws/request.Request" representing the
  3107. // client's request for the DescribeLoggingStatus operation. The "output" return
  3108. // value can be used to capture response data after the request's "Send" method
  3109. // is called.
  3110. //
  3111. // See DescribeLoggingStatus for usage and error information.
  3112. //
  3113. // Creating a request object using this method should be used when you want to inject
  3114. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3115. // access properties on the request object before or after sending the request. If
  3116. // you just want the service response, call the DescribeLoggingStatus method directly
  3117. // instead.
  3118. //
  3119. // Note: You must call the "Send" method on the returned request object in order
  3120. // to execute the request.
  3121. //
  3122. // // Example sending a request using the DescribeLoggingStatusRequest method.
  3123. // req, resp := client.DescribeLoggingStatusRequest(params)
  3124. //
  3125. // err := req.Send()
  3126. // if err == nil { // resp is now filled
  3127. // fmt.Println(resp)
  3128. // }
  3129. //
  3130. func (c *Redshift) DescribeLoggingStatusRequest(input *DescribeLoggingStatusInput) (req *request.Request, output *LoggingStatus) {
  3131. op := &request.Operation{
  3132. Name: opDescribeLoggingStatus,
  3133. HTTPMethod: "POST",
  3134. HTTPPath: "/",
  3135. }
  3136. if input == nil {
  3137. input = &DescribeLoggingStatusInput{}
  3138. }
  3139. req = c.newRequest(op, input, output)
  3140. output = &LoggingStatus{}
  3141. req.Data = output
  3142. return
  3143. }
  3144. // DescribeLoggingStatus API operation for Amazon Redshift.
  3145. //
  3146. // Describes whether information, such as queries and connection attempts, is
  3147. // being logged for the specified Amazon Redshift cluster.
  3148. //
  3149. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3150. // with awserr.Error's Code and Message methods to get detailed information about
  3151. // the error.
  3152. //
  3153. // See the AWS API reference guide for Amazon Redshift's
  3154. // API operation DescribeLoggingStatus for usage and error information.
  3155. //
  3156. // Returned Error Codes:
  3157. // * ClusterNotFound
  3158. // The ClusterIdentifier parameter does not refer to an existing cluster.
  3159. //
  3160. func (c *Redshift) DescribeLoggingStatus(input *DescribeLoggingStatusInput) (*LoggingStatus, error) {
  3161. req, out := c.DescribeLoggingStatusRequest(input)
  3162. err := req.Send()
  3163. return out, err
  3164. }
  3165. const opDescribeOrderableClusterOptions = "DescribeOrderableClusterOptions"
  3166. // DescribeOrderableClusterOptionsRequest generates a "aws/request.Request" representing the
  3167. // client's request for the DescribeOrderableClusterOptions operation. The "output" return
  3168. // value can be used to capture response data after the request's "Send" method
  3169. // is called.
  3170. //
  3171. // See DescribeOrderableClusterOptions for usage and error information.
  3172. //
  3173. // Creating a request object using this method should be used when you want to inject
  3174. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3175. // access properties on the request object before or after sending the request. If
  3176. // you just want the service response, call the DescribeOrderableClusterOptions method directly
  3177. // instead.
  3178. //
  3179. // Note: You must call the "Send" method on the returned request object in order
  3180. // to execute the request.
  3181. //
  3182. // // Example sending a request using the DescribeOrderableClusterOptionsRequest method.
  3183. // req, resp := client.DescribeOrderableClusterOptionsRequest(params)
  3184. //
  3185. // err := req.Send()
  3186. // if err == nil { // resp is now filled
  3187. // fmt.Println(resp)
  3188. // }
  3189. //
  3190. func (c *Redshift) DescribeOrderableClusterOptionsRequest(input *DescribeOrderableClusterOptionsInput) (req *request.Request, output *DescribeOrderableClusterOptionsOutput) {
  3191. op := &request.Operation{
  3192. Name: opDescribeOrderableClusterOptions,
  3193. HTTPMethod: "POST",
  3194. HTTPPath: "/",
  3195. Paginator: &request.Paginator{
  3196. InputTokens: []string{"Marker"},
  3197. OutputTokens: []string{"Marker"},
  3198. LimitToken: "MaxRecords",
  3199. TruncationToken: "",
  3200. },
  3201. }
  3202. if input == nil {
  3203. input = &DescribeOrderableClusterOptionsInput{}
  3204. }
  3205. req = c.newRequest(op, input, output)
  3206. output = &DescribeOrderableClusterOptionsOutput{}
  3207. req.Data = output
  3208. return
  3209. }
  3210. // DescribeOrderableClusterOptions API operation for Amazon Redshift.
  3211. //
  3212. // Returns a list of orderable cluster options. Before you create a new cluster
  3213. // you can use this operation to find what options are available, such as the
  3214. // EC2 Availability Zones (AZ) in the specific AWS region that you can specify,
  3215. // and the node types you can request. The node types differ by available storage,
  3216. // memory, CPU and price. With the cost involved you might want to obtain a
  3217. // list of cluster options in the specific region and specify values when creating
  3218. // a cluster. For more information about managing clusters, go to Amazon Redshift
  3219. // Clusters (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
  3220. // in the Amazon Redshift Cluster Management Guide.
  3221. //
  3222. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3223. // with awserr.Error's Code and Message methods to get detailed information about
  3224. // the error.
  3225. //
  3226. // See the AWS API reference guide for Amazon Redshift's
  3227. // API operation DescribeOrderableClusterOptions for usage and error information.
  3228. func (c *Redshift) DescribeOrderableClusterOptions(input *DescribeOrderableClusterOptionsInput) (*DescribeOrderableClusterOptionsOutput, error) {
  3229. req, out := c.DescribeOrderableClusterOptionsRequest(input)
  3230. err := req.Send()
  3231. return out, err
  3232. }
  3233. // DescribeOrderableClusterOptionsPages iterates over the pages of a DescribeOrderableClusterOptions operation,
  3234. // calling the "fn" function with the response data for each page. To stop
  3235. // iterating, return false from the fn function.
  3236. //
  3237. // See DescribeOrderableClusterOptions method for more information on how to use this operation.
  3238. //
  3239. // Note: This operation can generate multiple requests to a service.
  3240. //
  3241. // // Example iterating over at most 3 pages of a DescribeOrderableClusterOptions operation.
  3242. // pageNum := 0
  3243. // err := client.DescribeOrderableClusterOptionsPages(params,
  3244. // func(page *DescribeOrderableClusterOptionsOutput, lastPage bool) bool {
  3245. // pageNum++
  3246. // fmt.Println(page)
  3247. // return pageNum <= 3
  3248. // })
  3249. //
  3250. func (c *Redshift) DescribeOrderableClusterOptionsPages(input *DescribeOrderableClusterOptionsInput, fn func(p *DescribeOrderableClusterOptionsOutput, lastPage bool) (shouldContinue bool)) error {
  3251. page, _ := c.DescribeOrderableClusterOptionsRequest(input)
  3252. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  3253. return page.EachPage(func(p interface{}, lastPage bool) bool {
  3254. return fn(p.(*DescribeOrderableClusterOptionsOutput), lastPage)
  3255. })
  3256. }
  3257. const opDescribeReservedNodeOfferings = "DescribeReservedNodeOfferings"
  3258. // DescribeReservedNodeOfferingsRequest generates a "aws/request.Request" representing the
  3259. // client's request for the DescribeReservedNodeOfferings operation. The "output" return
  3260. // value can be used to capture response data after the request's "Send" method
  3261. // is called.
  3262. //
  3263. // See DescribeReservedNodeOfferings for usage and error information.
  3264. //
  3265. // Creating a request object using this method should be used when you want to inject
  3266. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3267. // access properties on the request object before or after sending the request. If
  3268. // you just want the service response, call the DescribeReservedNodeOfferings method directly
  3269. // instead.
  3270. //
  3271. // Note: You must call the "Send" method on the returned request object in order
  3272. // to execute the request.
  3273. //
  3274. // // Example sending a request using the DescribeReservedNodeOfferingsRequest method.
  3275. // req, resp := client.DescribeReservedNodeOfferingsRequest(params)
  3276. //
  3277. // err := req.Send()
  3278. // if err == nil { // resp is now filled
  3279. // fmt.Println(resp)
  3280. // }
  3281. //
  3282. func (c *Redshift) DescribeReservedNodeOfferingsRequest(input *DescribeReservedNodeOfferingsInput) (req *request.Request, output *DescribeReservedNodeOfferingsOutput) {
  3283. op := &request.Operation{
  3284. Name: opDescribeReservedNodeOfferings,
  3285. HTTPMethod: "POST",
  3286. HTTPPath: "/",
  3287. Paginator: &request.Paginator{
  3288. InputTokens: []string{"Marker"},
  3289. OutputTokens: []string{"Marker"},
  3290. LimitToken: "MaxRecords",
  3291. TruncationToken: "",
  3292. },
  3293. }
  3294. if input == nil {
  3295. input = &DescribeReservedNodeOfferingsInput{}
  3296. }
  3297. req = c.newRequest(op, input, output)
  3298. output = &DescribeReservedNodeOfferingsOutput{}
  3299. req.Data = output
  3300. return
  3301. }
  3302. // DescribeReservedNodeOfferings API operation for Amazon Redshift.
  3303. //
  3304. // Returns a list of the available reserved node offerings by Amazon Redshift
  3305. // with their descriptions including the node type, the fixed and recurring
  3306. // costs of reserving the node and duration the node will be reserved for you.
  3307. // These descriptions help you determine which reserve node offering you want
  3308. // to purchase. You then use the unique offering ID in you call to PurchaseReservedNodeOffering
  3309. // to reserve one or more nodes for your Amazon Redshift cluster.
  3310. //
  3311. // For more information about reserved node offerings, go to Purchasing Reserved
  3312. // Nodes (http://docs.aws.amazon.com/redshift/latest/mgmt/purchase-reserved-node-instance.html)
  3313. // in the Amazon Redshift Cluster Management Guide.
  3314. //
  3315. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3316. // with awserr.Error's Code and Message methods to get detailed information about
  3317. // the error.
  3318. //
  3319. // See the AWS API reference guide for Amazon Redshift's
  3320. // API operation DescribeReservedNodeOfferings for usage and error information.
  3321. //
  3322. // Returned Error Codes:
  3323. // * ReservedNodeOfferingNotFound
  3324. // Specified offering does not exist.
  3325. //
  3326. // * UnsupportedOperation
  3327. // The requested operation isn't supported.
  3328. //
  3329. func (c *Redshift) DescribeReservedNodeOfferings(input *DescribeReservedNodeOfferingsInput) (*DescribeReservedNodeOfferingsOutput, error) {
  3330. req, out := c.DescribeReservedNodeOfferingsRequest(input)
  3331. err := req.Send()
  3332. return out, err
  3333. }
  3334. // DescribeReservedNodeOfferingsPages iterates over the pages of a DescribeReservedNodeOfferings operation,
  3335. // calling the "fn" function with the response data for each page. To stop
  3336. // iterating, return false from the fn function.
  3337. //
  3338. // See DescribeReservedNodeOfferings method for more information on how to use this operation.
  3339. //
  3340. // Note: This operation can generate multiple requests to a service.
  3341. //
  3342. // // Example iterating over at most 3 pages of a DescribeReservedNodeOfferings operation.
  3343. // pageNum := 0
  3344. // err := client.DescribeReservedNodeOfferingsPages(params,
  3345. // func(page *DescribeReservedNodeOfferingsOutput, lastPage bool) bool {
  3346. // pageNum++
  3347. // fmt.Println(page)
  3348. // return pageNum <= 3
  3349. // })
  3350. //
  3351. func (c *Redshift) DescribeReservedNodeOfferingsPages(input *DescribeReservedNodeOfferingsInput, fn func(p *DescribeReservedNodeOfferingsOutput, lastPage bool) (shouldContinue bool)) error {
  3352. page, _ := c.DescribeReservedNodeOfferingsRequest(input)
  3353. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  3354. return page.EachPage(func(p interface{}, lastPage bool) bool {
  3355. return fn(p.(*DescribeReservedNodeOfferingsOutput), lastPage)
  3356. })
  3357. }
  3358. const opDescribeReservedNodes = "DescribeReservedNodes"
  3359. // DescribeReservedNodesRequest generates a "aws/request.Request" representing the
  3360. // client's request for the DescribeReservedNodes operation. The "output" return
  3361. // value can be used to capture response data after the request's "Send" method
  3362. // is called.
  3363. //
  3364. // See DescribeReservedNodes for usage and error information.
  3365. //
  3366. // Creating a request object using this method should be used when you want to inject
  3367. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3368. // access properties on the request object before or after sending the request. If
  3369. // you just want the service response, call the DescribeReservedNodes method directly
  3370. // instead.
  3371. //
  3372. // Note: You must call the "Send" method on the returned request object in order
  3373. // to execute the request.
  3374. //
  3375. // // Example sending a request using the DescribeReservedNodesRequest method.
  3376. // req, resp := client.DescribeReservedNodesRequest(params)
  3377. //
  3378. // err := req.Send()
  3379. // if err == nil { // resp is now filled
  3380. // fmt.Println(resp)
  3381. // }
  3382. //
  3383. func (c *Redshift) DescribeReservedNodesRequest(input *DescribeReservedNodesInput) (req *request.Request, output *DescribeReservedNodesOutput) {
  3384. op := &request.Operation{
  3385. Name: opDescribeReservedNodes,
  3386. HTTPMethod: "POST",
  3387. HTTPPath: "/",
  3388. Paginator: &request.Paginator{
  3389. InputTokens: []string{"Marker"},
  3390. OutputTokens: []string{"Marker"},
  3391. LimitToken: "MaxRecords",
  3392. TruncationToken: "",
  3393. },
  3394. }
  3395. if input == nil {
  3396. input = &DescribeReservedNodesInput{}
  3397. }
  3398. req = c.newRequest(op, input, output)
  3399. output = &DescribeReservedNodesOutput{}
  3400. req.Data = output
  3401. return
  3402. }
  3403. // DescribeReservedNodes API operation for Amazon Redshift.
  3404. //
  3405. // Returns the descriptions of the reserved nodes.
  3406. //
  3407. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3408. // with awserr.Error's Code and Message methods to get detailed information about
  3409. // the error.
  3410. //
  3411. // See the AWS API reference guide for Amazon Redshift's
  3412. // API operation DescribeReservedNodes for usage and error information.
  3413. //
  3414. // Returned Error Codes:
  3415. // * ReservedNodeNotFound
  3416. // The specified reserved compute node not found.
  3417. //
  3418. func (c *Redshift) DescribeReservedNodes(input *DescribeReservedNodesInput) (*DescribeReservedNodesOutput, error) {
  3419. req, out := c.DescribeReservedNodesRequest(input)
  3420. err := req.Send()
  3421. return out, err
  3422. }
  3423. // DescribeReservedNodesPages iterates over the pages of a DescribeReservedNodes operation,
  3424. // calling the "fn" function with the response data for each page. To stop
  3425. // iterating, return false from the fn function.
  3426. //
  3427. // See DescribeReservedNodes method for more information on how to use this operation.
  3428. //
  3429. // Note: This operation can generate multiple requests to a service.
  3430. //
  3431. // // Example iterating over at most 3 pages of a DescribeReservedNodes operation.
  3432. // pageNum := 0
  3433. // err := client.DescribeReservedNodesPages(params,
  3434. // func(page *DescribeReservedNodesOutput, lastPage bool) bool {
  3435. // pageNum++
  3436. // fmt.Println(page)
  3437. // return pageNum <= 3
  3438. // })
  3439. //
  3440. func (c *Redshift) DescribeReservedNodesPages(input *DescribeReservedNodesInput, fn func(p *DescribeReservedNodesOutput, lastPage bool) (shouldContinue bool)) error {
  3441. page, _ := c.DescribeReservedNodesRequest(input)
  3442. page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
  3443. return page.EachPage(func(p interface{}, lastPage bool) bool {
  3444. return fn(p.(*DescribeReservedNodesOutput), lastPage)
  3445. })
  3446. }
  3447. const opDescribeResize = "DescribeResize"
  3448. // DescribeResizeRequest generates a "aws/request.Request" representing the
  3449. // client's request for the DescribeResize operation. The "output" return
  3450. // value can be used to capture response data after the request's "Send" method
  3451. // is called.
  3452. //
  3453. // See DescribeResize for usage and error information.
  3454. //
  3455. // Creating a request object using this method should be used when you want to inject
  3456. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3457. // access properties on the request object before or after sending the request. If
  3458. // you just want the service response, call the DescribeResize method directly
  3459. // instead.
  3460. //
  3461. // Note: You must call the "Send" method on the returned request object in order
  3462. // to execute the request.
  3463. //
  3464. // // Example sending a request using the DescribeResizeRequest method.
  3465. // req, resp := client.DescribeResizeRequest(params)
  3466. //
  3467. // err := req.Send()
  3468. // if err == nil { // resp is now filled
  3469. // fmt.Println(resp)
  3470. // }
  3471. //
  3472. func (c *Redshift) DescribeResizeRequest(input *DescribeResizeInput) (req *request.Request, output *DescribeResizeOutput) {
  3473. op := &request.Operation{
  3474. Name: opDescribeResize,
  3475. HTTPMethod: "POST",
  3476. HTTPPath: "/",
  3477. }
  3478. if input == nil {
  3479. input = &DescribeResizeInput{}
  3480. }
  3481. req = c.newRequest(op, input, output)
  3482. output = &DescribeResizeOutput{}
  3483. req.Data = output
  3484. return
  3485. }
  3486. // DescribeResize API operation for Amazon Redshift.
  3487. //
  3488. // Returns information about the last resize operation for the specified cluster.
  3489. // If no resize operation has ever been initiated for the specified cluster,
  3490. // a HTTP 404 error is returned. If a resize operation was initiated and completed,
  3491. // the status of the resize remains as SUCCEEDED until the next resize.
  3492. //
  3493. // A resize operation can be requested using ModifyCluster and specifying a
  3494. // different number or type of nodes for the cluster.
  3495. //
  3496. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3497. // with awserr.Error's Code and Message methods to get detailed information about
  3498. // the error.
  3499. //
  3500. // See the AWS API reference guide for Amazon Redshift's
  3501. // API operation DescribeResize for usage and error information.
  3502. //
  3503. // Returned Error Codes:
  3504. // * ClusterNotFound
  3505. // The ClusterIdentifier parameter does not refer to an existing cluster.
  3506. //
  3507. // * ResizeNotFound
  3508. // A resize operation for the specified cluster is not found.
  3509. //
  3510. func (c *Redshift) DescribeResize(input *DescribeResizeInput) (*DescribeResizeOutput, error) {
  3511. req, out := c.DescribeResizeRequest(input)
  3512. err := req.Send()
  3513. return out, err
  3514. }
  3515. const opDescribeSnapshotCopyGrants = "DescribeSnapshotCopyGrants"
  3516. // DescribeSnapshotCopyGrantsRequest generates a "aws/request.Request" representing the
  3517. // client's request for the DescribeSnapshotCopyGrants operation. The "output" return
  3518. // value can be used to capture response data after the request's "Send" method
  3519. // is called.
  3520. //
  3521. // See DescribeSnapshotCopyGrants for usage and error information.
  3522. //
  3523. // Creating a request object using this method should be used when you want to inject
  3524. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3525. // access properties on the request object before or after sending the request. If
  3526. // you just want the service response, call the DescribeSnapshotCopyGrants method directly
  3527. // instead.
  3528. //
  3529. // Note: You must call the "Send" method on the returned request object in order
  3530. // to execute the request.
  3531. //
  3532. // // Example sending a request using the DescribeSnapshotCopyGrantsRequest method.
  3533. // req, resp := client.DescribeSnapshotCopyGrantsRequest(params)
  3534. //
  3535. // err := req.Send()
  3536. // if err == nil { // resp is now filled
  3537. // fmt.Println(resp)
  3538. // }
  3539. //
  3540. func (c *Redshift) DescribeSnapshotCopyGrantsRequest(input *DescribeSnapshotCopyGrantsInput) (req *request.Request, output *DescribeSnapshotCopyGrantsOutput) {
  3541. op := &request.Operation{
  3542. Name: opDescribeSnapshotCopyGrants,
  3543. HTTPMethod: "POST",
  3544. HTTPPath: "/",
  3545. }
  3546. if input == nil {
  3547. input = &DescribeSnapshotCopyGrantsInput{}
  3548. }
  3549. req = c.newRequest(op, input, output)
  3550. output = &DescribeSnapshotCopyGrantsOutput{}
  3551. req.Data = output
  3552. return
  3553. }
  3554. // DescribeSnapshotCopyGrants API operation for Amazon Redshift.
  3555. //
  3556. // Returns a list of snapshot copy grants owned by the AWS account in the destination
  3557. // region.
  3558. //
  3559. // For more information about managing snapshot copy grants, go to Amazon Redshift
  3560. // Database Encryption (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
  3561. // in the Amazon Redshift Cluster Management Guide.
  3562. //
  3563. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3564. // with awserr.Error's Code and Message methods to get detailed information about
  3565. // the error.
  3566. //
  3567. // See the AWS API reference guide for Amazon Redshift's
  3568. // API operation DescribeSnapshotCopyGrants for usage and error information.
  3569. //
  3570. // Returned Error Codes:
  3571. // * SnapshotCopyGrantNotFoundFault
  3572. // The specified snapshot copy grant can't be found. Make sure that the name
  3573. // is typed correctly and that the grant exists in the destination region.
  3574. //
  3575. // * InvalidTagFault
  3576. // The tag is invalid.
  3577. //
  3578. func (c *Redshift) DescribeSnapshotCopyGrants(input *DescribeSnapshotCopyGrantsInput) (*DescribeSnapshotCopyGrantsOutput, error) {
  3579. req, out := c.DescribeSnapshotCopyGrantsRequest(input)
  3580. err := req.Send()
  3581. return out, err
  3582. }
  3583. const opDescribeTableRestoreStatus = "DescribeTableRestoreStatus"
  3584. // DescribeTableRestoreStatusRequest generates a "aws/request.Request" representing the
  3585. // client's request for the DescribeTableRestoreStatus operation. The "output" return
  3586. // value can be used to capture response data after the request's "Send" method
  3587. // is called.
  3588. //
  3589. // See DescribeTableRestoreStatus for usage and error information.
  3590. //
  3591. // Creating a request object using this method should be used when you want to inject
  3592. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3593. // access properties on the request object before or after sending the request. If
  3594. // you just want the service response, call the DescribeTableRestoreStatus method directly
  3595. // instead.
  3596. //
  3597. // Note: You must call the "Send" method on the returned request object in order
  3598. // to execute the request.
  3599. //
  3600. // // Example sending a request using the DescribeTableRestoreStatusRequest method.
  3601. // req, resp := client.DescribeTableRestoreStatusRequest(params)
  3602. //
  3603. // err := req.Send()
  3604. // if err == nil { // resp is now filled
  3605. // fmt.Println(resp)
  3606. // }
  3607. //
  3608. func (c *Redshift) DescribeTableRestoreStatusRequest(input *DescribeTableRestoreStatusInput) (req *request.Request, output *DescribeTableRestoreStatusOutput) {
  3609. op := &request.Operation{
  3610. Name: opDescribeTableRestoreStatus,
  3611. HTTPMethod: "POST",
  3612. HTTPPath: "/",
  3613. }
  3614. if input == nil {
  3615. input = &DescribeTableRestoreStatusInput{}
  3616. }
  3617. req = c.newRequest(op, input, output)
  3618. output = &DescribeTableRestoreStatusOutput{}
  3619. req.Data = output
  3620. return
  3621. }
  3622. // DescribeTableRestoreStatus API operation for Amazon Redshift.
  3623. //
  3624. // Lists the status of one or more table restore requests made using the RestoreTableFromClusterSnapshot
  3625. // API action. If you don't specify a value for the TableRestoreRequestId parameter,
  3626. // then DescribeTableRestoreStatus returns the status of all table restore requests
  3627. // ordered by the date and time of the request in ascending order. Otherwise
  3628. // DescribeTableRestoreStatus returns the status of the table specified by TableRestoreRequestId.
  3629. //
  3630. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3631. // with awserr.Error's Code and Message methods to get detailed information about
  3632. // the error.
  3633. //
  3634. // See the AWS API reference guide for Amazon Redshift's
  3635. // API operation DescribeTableRestoreStatus for usage and error information.
  3636. //
  3637. // Returned Error Codes:
  3638. // * TableRestoreNotFoundFault
  3639. // The specified TableRestoreRequestId value was not found.
  3640. //
  3641. // * ClusterNotFound
  3642. // The ClusterIdentifier parameter does not refer to an existing cluster.
  3643. //
  3644. func (c *Redshift) DescribeTableRestoreStatus(input *DescribeTableRestoreStatusInput) (*DescribeTableRestoreStatusOutput, error) {
  3645. req, out := c.DescribeTableRestoreStatusRequest(input)
  3646. err := req.Send()
  3647. return out, err
  3648. }
  3649. const opDescribeTags = "DescribeTags"
  3650. // DescribeTagsRequest generates a "aws/request.Request" representing the
  3651. // client's request for the DescribeTags operation. The "output" return
  3652. // value can be used to capture response data after the request's "Send" method
  3653. // is called.
  3654. //
  3655. // See DescribeTags for usage and error information.
  3656. //
  3657. // Creating a request object using this method should be used when you want to inject
  3658. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3659. // access properties on the request object before or after sending the request. If
  3660. // you just want the service response, call the DescribeTags method directly
  3661. // instead.
  3662. //
  3663. // Note: You must call the "Send" method on the returned request object in order
  3664. // to execute the request.
  3665. //
  3666. // // Example sending a request using the DescribeTagsRequest method.
  3667. // req, resp := client.DescribeTagsRequest(params)
  3668. //
  3669. // err := req.Send()
  3670. // if err == nil { // resp is now filled
  3671. // fmt.Println(resp)
  3672. // }
  3673. //
  3674. func (c *Redshift) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Request, output *DescribeTagsOutput) {
  3675. op := &request.Operation{
  3676. Name: opDescribeTags,
  3677. HTTPMethod: "POST",
  3678. HTTPPath: "/",
  3679. }
  3680. if input == nil {
  3681. input = &DescribeTagsInput{}
  3682. }
  3683. req = c.newRequest(op, input, output)
  3684. output = &DescribeTagsOutput{}
  3685. req.Data = output
  3686. return
  3687. }
  3688. // DescribeTags API operation for Amazon Redshift.
  3689. //
  3690. // Returns a list of tags. You can return tags from a specific resource by specifying
  3691. // an ARN, or you can return all tags for a given type of resource, such as
  3692. // clusters, snapshots, and so on.
  3693. //
  3694. // The following are limitations for DescribeTags:
  3695. //
  3696. // * You cannot specify an ARN and a resource-type value together in the
  3697. // same request.
  3698. //
  3699. // * You cannot use the MaxRecords and Marker parameters together with the
  3700. // ARN parameter.
  3701. //
  3702. // * The MaxRecords parameter can be a range from 10 to 50 results to return
  3703. // in a request.
  3704. //
  3705. // If you specify both tag keys and tag values in the same request, Amazon Redshift
  3706. // returns all resources that match any combination of the specified keys and
  3707. // values. For example, if you have owner and environment for tag keys, and
  3708. // admin and test for tag values, all resources that have any combination of
  3709. // those values are returned.
  3710. //
  3711. // If both tag keys and values are omitted from the request, resources are returned
  3712. // regardless of whether they have tag keys or values associated with them.
  3713. //
  3714. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3715. // with awserr.Error's Code and Message methods to get detailed information about
  3716. // the error.
  3717. //
  3718. // See the AWS API reference guide for Amazon Redshift's
  3719. // API operation DescribeTags for usage and error information.
  3720. //
  3721. // Returned Error Codes:
  3722. // * ResourceNotFoundFault
  3723. // The resource could not be found.
  3724. //
  3725. // * InvalidTagFault
  3726. // The tag is invalid.
  3727. //
  3728. func (c *Redshift) DescribeTags(input *DescribeTagsInput) (*DescribeTagsOutput, error) {
  3729. req, out := c.DescribeTagsRequest(input)
  3730. err := req.Send()
  3731. return out, err
  3732. }
  3733. const opDisableLogging = "DisableLogging"
  3734. // DisableLoggingRequest generates a "aws/request.Request" representing the
  3735. // client's request for the DisableLogging operation. The "output" return
  3736. // value can be used to capture response data after the request's "Send" method
  3737. // is called.
  3738. //
  3739. // See DisableLogging for usage and error information.
  3740. //
  3741. // Creating a request object using this method should be used when you want to inject
  3742. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3743. // access properties on the request object before or after sending the request. If
  3744. // you just want the service response, call the DisableLogging method directly
  3745. // instead.
  3746. //
  3747. // Note: You must call the "Send" method on the returned request object in order
  3748. // to execute the request.
  3749. //
  3750. // // Example sending a request using the DisableLoggingRequest method.
  3751. // req, resp := client.DisableLoggingRequest(params)
  3752. //
  3753. // err := req.Send()
  3754. // if err == nil { // resp is now filled
  3755. // fmt.Println(resp)
  3756. // }
  3757. //
  3758. func (c *Redshift) DisableLoggingRequest(input *DisableLoggingInput) (req *request.Request, output *LoggingStatus) {
  3759. op := &request.Operation{
  3760. Name: opDisableLogging,
  3761. HTTPMethod: "POST",
  3762. HTTPPath: "/",
  3763. }
  3764. if input == nil {
  3765. input = &DisableLoggingInput{}
  3766. }
  3767. req = c.newRequest(op, input, output)
  3768. output = &LoggingStatus{}
  3769. req.Data = output
  3770. return
  3771. }
  3772. // DisableLogging API operation for Amazon Redshift.
  3773. //
  3774. // Stops logging information, such as queries and connection attempts, for the
  3775. // specified Amazon Redshift cluster.
  3776. //
  3777. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3778. // with awserr.Error's Code and Message methods to get detailed information about
  3779. // the error.
  3780. //
  3781. // See the AWS API reference guide for Amazon Redshift's
  3782. // API operation DisableLogging for usage and error information.
  3783. //
  3784. // Returned Error Codes:
  3785. // * ClusterNotFound
  3786. // The ClusterIdentifier parameter does not refer to an existing cluster.
  3787. //
  3788. func (c *Redshift) DisableLogging(input *DisableLoggingInput) (*LoggingStatus, error) {
  3789. req, out := c.DisableLoggingRequest(input)
  3790. err := req.Send()
  3791. return out, err
  3792. }
  3793. const opDisableSnapshotCopy = "DisableSnapshotCopy"
  3794. // DisableSnapshotCopyRequest generates a "aws/request.Request" representing the
  3795. // client's request for the DisableSnapshotCopy operation. The "output" return
  3796. // value can be used to capture response data after the request's "Send" method
  3797. // is called.
  3798. //
  3799. // See DisableSnapshotCopy for usage and error information.
  3800. //
  3801. // Creating a request object using this method should be used when you want to inject
  3802. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3803. // access properties on the request object before or after sending the request. If
  3804. // you just want the service response, call the DisableSnapshotCopy method directly
  3805. // instead.
  3806. //
  3807. // Note: You must call the "Send" method on the returned request object in order
  3808. // to execute the request.
  3809. //
  3810. // // Example sending a request using the DisableSnapshotCopyRequest method.
  3811. // req, resp := client.DisableSnapshotCopyRequest(params)
  3812. //
  3813. // err := req.Send()
  3814. // if err == nil { // resp is now filled
  3815. // fmt.Println(resp)
  3816. // }
  3817. //
  3818. func (c *Redshift) DisableSnapshotCopyRequest(input *DisableSnapshotCopyInput) (req *request.Request, output *DisableSnapshotCopyOutput) {
  3819. op := &request.Operation{
  3820. Name: opDisableSnapshotCopy,
  3821. HTTPMethod: "POST",
  3822. HTTPPath: "/",
  3823. }
  3824. if input == nil {
  3825. input = &DisableSnapshotCopyInput{}
  3826. }
  3827. req = c.newRequest(op, input, output)
  3828. output = &DisableSnapshotCopyOutput{}
  3829. req.Data = output
  3830. return
  3831. }
  3832. // DisableSnapshotCopy API operation for Amazon Redshift.
  3833. //
  3834. // Disables the automatic copying of snapshots from one region to another region
  3835. // for a specified cluster.
  3836. //
  3837. // If your cluster and its snapshots are encrypted using a customer master key
  3838. // (CMK) from AWS KMS, use DeleteSnapshotCopyGrant to delete the grant that
  3839. // grants Amazon Redshift permission to the CMK in the destination region.
  3840. //
  3841. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3842. // with awserr.Error's Code and Message methods to get detailed information about
  3843. // the error.
  3844. //
  3845. // See the AWS API reference guide for Amazon Redshift's
  3846. // API operation DisableSnapshotCopy for usage and error information.
  3847. //
  3848. // Returned Error Codes:
  3849. // * ClusterNotFound
  3850. // The ClusterIdentifier parameter does not refer to an existing cluster.
  3851. //
  3852. // * SnapshotCopyAlreadyDisabledFault
  3853. // The cluster already has cross-region snapshot copy disabled.
  3854. //
  3855. // * InvalidClusterState
  3856. // The specified cluster is not in the available state.
  3857. //
  3858. // * UnauthorizedOperation
  3859. // Your account is not authorized to perform the requested operation.
  3860. //
  3861. func (c *Redshift) DisableSnapshotCopy(input *DisableSnapshotCopyInput) (*DisableSnapshotCopyOutput, error) {
  3862. req, out := c.DisableSnapshotCopyRequest(input)
  3863. err := req.Send()
  3864. return out, err
  3865. }
  3866. const opEnableLogging = "EnableLogging"
  3867. // EnableLoggingRequest generates a "aws/request.Request" representing the
  3868. // client's request for the EnableLogging operation. The "output" return
  3869. // value can be used to capture response data after the request's "Send" method
  3870. // is called.
  3871. //
  3872. // See EnableLogging for usage and error information.
  3873. //
  3874. // Creating a request object using this method should be used when you want to inject
  3875. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3876. // access properties on the request object before or after sending the request. If
  3877. // you just want the service response, call the EnableLogging method directly
  3878. // instead.
  3879. //
  3880. // Note: You must call the "Send" method on the returned request object in order
  3881. // to execute the request.
  3882. //
  3883. // // Example sending a request using the EnableLoggingRequest method.
  3884. // req, resp := client.EnableLoggingRequest(params)
  3885. //
  3886. // err := req.Send()
  3887. // if err == nil { // resp is now filled
  3888. // fmt.Println(resp)
  3889. // }
  3890. //
  3891. func (c *Redshift) EnableLoggingRequest(input *EnableLoggingInput) (req *request.Request, output *LoggingStatus) {
  3892. op := &request.Operation{
  3893. Name: opEnableLogging,
  3894. HTTPMethod: "POST",
  3895. HTTPPath: "/",
  3896. }
  3897. if input == nil {
  3898. input = &EnableLoggingInput{}
  3899. }
  3900. req = c.newRequest(op, input, output)
  3901. output = &LoggingStatus{}
  3902. req.Data = output
  3903. return
  3904. }
  3905. // EnableLogging API operation for Amazon Redshift.
  3906. //
  3907. // Starts logging information, such as queries and connection attempts, for
  3908. // the specified Amazon Redshift cluster.
  3909. //
  3910. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3911. // with awserr.Error's Code and Message methods to get detailed information about
  3912. // the error.
  3913. //
  3914. // See the AWS API reference guide for Amazon Redshift's
  3915. // API operation EnableLogging for usage and error information.
  3916. //
  3917. // Returned Error Codes:
  3918. // * ClusterNotFound
  3919. // The ClusterIdentifier parameter does not refer to an existing cluster.
  3920. //
  3921. // * BucketNotFoundFault
  3922. // Could not find the specified S3 bucket.
  3923. //
  3924. // * InsufficientS3BucketPolicyFault
  3925. // The cluster does not have read bucket or put object permissions on the S3
  3926. // bucket specified when enabling logging.
  3927. //
  3928. // * InvalidS3KeyPrefixFault
  3929. // The string specified for the logging S3 key prefix does not comply with the
  3930. // documented constraints.
  3931. //
  3932. // * InvalidS3BucketNameFault
  3933. // The S3 bucket name is invalid. For more information about naming rules, go
  3934. // to Bucket Restrictions and Limitations (http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html)
  3935. // in the Amazon Simple Storage Service (S3) Developer Guide.
  3936. //
  3937. func (c *Redshift) EnableLogging(input *EnableLoggingInput) (*LoggingStatus, error) {
  3938. req, out := c.EnableLoggingRequest(input)
  3939. err := req.Send()
  3940. return out, err
  3941. }
  3942. const opEnableSnapshotCopy = "EnableSnapshotCopy"
  3943. // EnableSnapshotCopyRequest generates a "aws/request.Request" representing the
  3944. // client's request for the EnableSnapshotCopy operation. The "output" return
  3945. // value can be used to capture response data after the request's "Send" method
  3946. // is called.
  3947. //
  3948. // See EnableSnapshotCopy for usage and error information.
  3949. //
  3950. // Creating a request object using this method should be used when you want to inject
  3951. // custom logic into the request's lifecycle using a custom handler, or if you want to
  3952. // access properties on the request object before or after sending the request. If
  3953. // you just want the service response, call the EnableSnapshotCopy method directly
  3954. // instead.
  3955. //
  3956. // Note: You must call the "Send" method on the returned request object in order
  3957. // to execute the request.
  3958. //
  3959. // // Example sending a request using the EnableSnapshotCopyRequest method.
  3960. // req, resp := client.EnableSnapshotCopyRequest(params)
  3961. //
  3962. // err := req.Send()
  3963. // if err == nil { // resp is now filled
  3964. // fmt.Println(resp)
  3965. // }
  3966. //
  3967. func (c *Redshift) EnableSnapshotCopyRequest(input *EnableSnapshotCopyInput) (req *request.Request, output *EnableSnapshotCopyOutput) {
  3968. op := &request.Operation{
  3969. Name: opEnableSnapshotCopy,
  3970. HTTPMethod: "POST",
  3971. HTTPPath: "/",
  3972. }
  3973. if input == nil {
  3974. input = &EnableSnapshotCopyInput{}
  3975. }
  3976. req = c.newRequest(op, input, output)
  3977. output = &EnableSnapshotCopyOutput{}
  3978. req.Data = output
  3979. return
  3980. }
  3981. // EnableSnapshotCopy API operation for Amazon Redshift.
  3982. //
  3983. // Enables the automatic copy of snapshots from one region to another region
  3984. // for a specified cluster.
  3985. //
  3986. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3987. // with awserr.Error's Code and Message methods to get detailed information about
  3988. // the error.
  3989. //
  3990. // See the AWS API reference guide for Amazon Redshift's
  3991. // API operation EnableSnapshotCopy for usage and error information.
  3992. //
  3993. // Returned Error Codes:
  3994. // * IncompatibleOrderableOptions
  3995. // The specified options are incompatible.
  3996. //
  3997. // * InvalidClusterState
  3998. // The specified cluster is not in the available state.
  3999. //
  4000. // * ClusterNotFound
  4001. // The ClusterIdentifier parameter does not refer to an existing cluster.
  4002. //
  4003. // * CopyToRegionDisabledFault
  4004. // Cross-region snapshot copy was temporarily disabled. Try your request again.
  4005. //
  4006. // * SnapshotCopyAlreadyEnabledFault
  4007. // The cluster already has cross-region snapshot copy enabled.
  4008. //
  4009. // * UnknownSnapshotCopyRegionFault
  4010. // The specified region is incorrect or does not exist.
  4011. //
  4012. // * UnauthorizedOperation
  4013. // Your account is not authorized to perform the requested operation.
  4014. //
  4015. // * SnapshotCopyGrantNotFoundFault
  4016. // The specified snapshot copy grant can't be found. Make sure that the name
  4017. // is typed correctly and that the grant exists in the destination region.
  4018. //
  4019. // * LimitExceededFault
  4020. // The encryption key has exceeded its grant limit in AWS KMS.
  4021. //
  4022. // * DependentServiceRequestThrottlingFault
  4023. // The request cannot be completed because a dependent service is throttling
  4024. // requests made by Amazon Redshift on your behalf. Wait and retry the request.
  4025. //
  4026. func (c *Redshift) EnableSnapshotCopy(input *EnableSnapshotCopyInput) (*EnableSnapshotCopyOutput, error) {
  4027. req, out := c.EnableSnapshotCopyRequest(input)
  4028. err := req.Send()
  4029. return out, err
  4030. }
  4031. const opModifyCluster = "ModifyCluster"
  4032. // ModifyClusterRequest generates a "aws/request.Request" representing the
  4033. // client's request for the ModifyCluster operation. The "output" return
  4034. // value can be used to capture response data after the request's "Send" method
  4035. // is called.
  4036. //
  4037. // See ModifyCluster for usage and error information.
  4038. //
  4039. // Creating a request object using this method should be used when you want to inject
  4040. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4041. // access properties on the request object before or after sending the request. If
  4042. // you just want the service response, call the ModifyCluster method directly
  4043. // instead.
  4044. //
  4045. // Note: You must call the "Send" method on the returned request object in order
  4046. // to execute the request.
  4047. //
  4048. // // Example sending a request using the ModifyClusterRequest method.
  4049. // req, resp := client.ModifyClusterRequest(params)
  4050. //
  4051. // err := req.Send()
  4052. // if err == nil { // resp is now filled
  4053. // fmt.Println(resp)
  4054. // }
  4055. //
  4056. func (c *Redshift) ModifyClusterRequest(input *ModifyClusterInput) (req *request.Request, output *ModifyClusterOutput) {
  4057. op := &request.Operation{
  4058. Name: opModifyCluster,
  4059. HTTPMethod: "POST",
  4060. HTTPPath: "/",
  4061. }
  4062. if input == nil {
  4063. input = &ModifyClusterInput{}
  4064. }
  4065. req = c.newRequest(op, input, output)
  4066. output = &ModifyClusterOutput{}
  4067. req.Data = output
  4068. return
  4069. }
  4070. // ModifyCluster API operation for Amazon Redshift.
  4071. //
  4072. // Modifies the settings for a cluster. For example, you can add another security
  4073. // or parameter group, update the preferred maintenance window, or change the
  4074. // master user password. Resetting a cluster password or modifying the security
  4075. // groups associated with a cluster do not need a reboot. However, modifying
  4076. // a parameter group requires a reboot for parameters to take effect. For more
  4077. // information about managing clusters, go to Amazon Redshift Clusters (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
  4078. // in the Amazon Redshift Cluster Management Guide.
  4079. //
  4080. // You can also change node type and the number of nodes to scale up or down
  4081. // the cluster. When resizing a cluster, you must specify both the number of
  4082. // nodes and the node type even if one of the parameters does not change.
  4083. //
  4084. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4085. // with awserr.Error's Code and Message methods to get detailed information about
  4086. // the error.
  4087. //
  4088. // See the AWS API reference guide for Amazon Redshift's
  4089. // API operation ModifyCluster for usage and error information.
  4090. //
  4091. // Returned Error Codes:
  4092. // * InvalidClusterState
  4093. // The specified cluster is not in the available state.
  4094. //
  4095. // * InvalidClusterSecurityGroupState
  4096. // The state of the cluster security group is not available.
  4097. //
  4098. // * ClusterNotFound
  4099. // The ClusterIdentifier parameter does not refer to an existing cluster.
  4100. //
  4101. // * NumberOfNodesQuotaExceeded
  4102. // The operation would exceed the number of nodes allotted to the account. For
  4103. // information about increasing your quota, go to Limits in Amazon Redshift
  4104. // (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  4105. // in the Amazon Redshift Cluster Management Guide.
  4106. //
  4107. // * ClusterSecurityGroupNotFound
  4108. // The cluster security group name does not refer to an existing cluster security
  4109. // group.
  4110. //
  4111. // * ClusterParameterGroupNotFound
  4112. // The parameter group name does not refer to an existing parameter group.
  4113. //
  4114. // * InsufficientClusterCapacity
  4115. // The number of nodes specified exceeds the allotted capacity of the cluster.
  4116. //
  4117. // * UnsupportedOptionFault
  4118. // A request option was specified that is not supported.
  4119. //
  4120. // * UnauthorizedOperation
  4121. // Your account is not authorized to perform the requested operation.
  4122. //
  4123. // * HsmClientCertificateNotFoundFault
  4124. // There is no Amazon Redshift HSM client certificate with the specified identifier.
  4125. //
  4126. // * HsmConfigurationNotFoundFault
  4127. // There is no Amazon Redshift HSM configuration with the specified identifier.
  4128. //
  4129. // * ClusterAlreadyExists
  4130. // The account already has a cluster with the given identifier.
  4131. //
  4132. // * LimitExceededFault
  4133. // The encryption key has exceeded its grant limit in AWS KMS.
  4134. //
  4135. // * DependentServiceRequestThrottlingFault
  4136. // The request cannot be completed because a dependent service is throttling
  4137. // requests made by Amazon Redshift on your behalf. Wait and retry the request.
  4138. //
  4139. // * InvalidElasticIpFault
  4140. // The Elastic IP (EIP) is invalid or cannot be found.
  4141. //
  4142. func (c *Redshift) ModifyCluster(input *ModifyClusterInput) (*ModifyClusterOutput, error) {
  4143. req, out := c.ModifyClusterRequest(input)
  4144. err := req.Send()
  4145. return out, err
  4146. }
  4147. const opModifyClusterIamRoles = "ModifyClusterIamRoles"
  4148. // ModifyClusterIamRolesRequest generates a "aws/request.Request" representing the
  4149. // client's request for the ModifyClusterIamRoles operation. The "output" return
  4150. // value can be used to capture response data after the request's "Send" method
  4151. // is called.
  4152. //
  4153. // See ModifyClusterIamRoles for usage and error information.
  4154. //
  4155. // Creating a request object using this method should be used when you want to inject
  4156. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4157. // access properties on the request object before or after sending the request. If
  4158. // you just want the service response, call the ModifyClusterIamRoles method directly
  4159. // instead.
  4160. //
  4161. // Note: You must call the "Send" method on the returned request object in order
  4162. // to execute the request.
  4163. //
  4164. // // Example sending a request using the ModifyClusterIamRolesRequest method.
  4165. // req, resp := client.ModifyClusterIamRolesRequest(params)
  4166. //
  4167. // err := req.Send()
  4168. // if err == nil { // resp is now filled
  4169. // fmt.Println(resp)
  4170. // }
  4171. //
  4172. func (c *Redshift) ModifyClusterIamRolesRequest(input *ModifyClusterIamRolesInput) (req *request.Request, output *ModifyClusterIamRolesOutput) {
  4173. op := &request.Operation{
  4174. Name: opModifyClusterIamRoles,
  4175. HTTPMethod: "POST",
  4176. HTTPPath: "/",
  4177. }
  4178. if input == nil {
  4179. input = &ModifyClusterIamRolesInput{}
  4180. }
  4181. req = c.newRequest(op, input, output)
  4182. output = &ModifyClusterIamRolesOutput{}
  4183. req.Data = output
  4184. return
  4185. }
  4186. // ModifyClusterIamRoles API operation for Amazon Redshift.
  4187. //
  4188. // Modifies the list of AWS Identity and Access Management (IAM) roles that
  4189. // can be used by the cluster to access other AWS services.
  4190. //
  4191. // A cluster can have up to 10 IAM roles associated at any time.
  4192. //
  4193. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4194. // with awserr.Error's Code and Message methods to get detailed information about
  4195. // the error.
  4196. //
  4197. // See the AWS API reference guide for Amazon Redshift's
  4198. // API operation ModifyClusterIamRoles for usage and error information.
  4199. //
  4200. // Returned Error Codes:
  4201. // * InvalidClusterState
  4202. // The specified cluster is not in the available state.
  4203. //
  4204. // * ClusterNotFound
  4205. // The ClusterIdentifier parameter does not refer to an existing cluster.
  4206. //
  4207. func (c *Redshift) ModifyClusterIamRoles(input *ModifyClusterIamRolesInput) (*ModifyClusterIamRolesOutput, error) {
  4208. req, out := c.ModifyClusterIamRolesRequest(input)
  4209. err := req.Send()
  4210. return out, err
  4211. }
  4212. const opModifyClusterParameterGroup = "ModifyClusterParameterGroup"
  4213. // ModifyClusterParameterGroupRequest generates a "aws/request.Request" representing the
  4214. // client's request for the ModifyClusterParameterGroup operation. The "output" return
  4215. // value can be used to capture response data after the request's "Send" method
  4216. // is called.
  4217. //
  4218. // See ModifyClusterParameterGroup for usage and error information.
  4219. //
  4220. // Creating a request object using this method should be used when you want to inject
  4221. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4222. // access properties on the request object before or after sending the request. If
  4223. // you just want the service response, call the ModifyClusterParameterGroup method directly
  4224. // instead.
  4225. //
  4226. // Note: You must call the "Send" method on the returned request object in order
  4227. // to execute the request.
  4228. //
  4229. // // Example sending a request using the ModifyClusterParameterGroupRequest method.
  4230. // req, resp := client.ModifyClusterParameterGroupRequest(params)
  4231. //
  4232. // err := req.Send()
  4233. // if err == nil { // resp is now filled
  4234. // fmt.Println(resp)
  4235. // }
  4236. //
  4237. func (c *Redshift) ModifyClusterParameterGroupRequest(input *ModifyClusterParameterGroupInput) (req *request.Request, output *ClusterParameterGroupNameMessage) {
  4238. op := &request.Operation{
  4239. Name: opModifyClusterParameterGroup,
  4240. HTTPMethod: "POST",
  4241. HTTPPath: "/",
  4242. }
  4243. if input == nil {
  4244. input = &ModifyClusterParameterGroupInput{}
  4245. }
  4246. req = c.newRequest(op, input, output)
  4247. output = &ClusterParameterGroupNameMessage{}
  4248. req.Data = output
  4249. return
  4250. }
  4251. // ModifyClusterParameterGroup API operation for Amazon Redshift.
  4252. //
  4253. // Modifies the parameters of a parameter group.
  4254. //
  4255. // For more information about parameters and parameter groups, go to Amazon
  4256. // Redshift Parameter Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
  4257. // in the Amazon Redshift Cluster Management Guide.
  4258. //
  4259. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4260. // with awserr.Error's Code and Message methods to get detailed information about
  4261. // the error.
  4262. //
  4263. // See the AWS API reference guide for Amazon Redshift's
  4264. // API operation ModifyClusterParameterGroup for usage and error information.
  4265. //
  4266. // Returned Error Codes:
  4267. // * ClusterParameterGroupNotFound
  4268. // The parameter group name does not refer to an existing parameter group.
  4269. //
  4270. // * InvalidClusterParameterGroupState
  4271. // The cluster parameter group action can not be completed because another task
  4272. // is in progress that involves the parameter group. Wait a few moments and
  4273. // try the operation again.
  4274. //
  4275. func (c *Redshift) ModifyClusterParameterGroup(input *ModifyClusterParameterGroupInput) (*ClusterParameterGroupNameMessage, error) {
  4276. req, out := c.ModifyClusterParameterGroupRequest(input)
  4277. err := req.Send()
  4278. return out, err
  4279. }
  4280. const opModifyClusterSubnetGroup = "ModifyClusterSubnetGroup"
  4281. // ModifyClusterSubnetGroupRequest generates a "aws/request.Request" representing the
  4282. // client's request for the ModifyClusterSubnetGroup operation. The "output" return
  4283. // value can be used to capture response data after the request's "Send" method
  4284. // is called.
  4285. //
  4286. // See ModifyClusterSubnetGroup for usage and error information.
  4287. //
  4288. // Creating a request object using this method should be used when you want to inject
  4289. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4290. // access properties on the request object before or after sending the request. If
  4291. // you just want the service response, call the ModifyClusterSubnetGroup method directly
  4292. // instead.
  4293. //
  4294. // Note: You must call the "Send" method on the returned request object in order
  4295. // to execute the request.
  4296. //
  4297. // // Example sending a request using the ModifyClusterSubnetGroupRequest method.
  4298. // req, resp := client.ModifyClusterSubnetGroupRequest(params)
  4299. //
  4300. // err := req.Send()
  4301. // if err == nil { // resp is now filled
  4302. // fmt.Println(resp)
  4303. // }
  4304. //
  4305. func (c *Redshift) ModifyClusterSubnetGroupRequest(input *ModifyClusterSubnetGroupInput) (req *request.Request, output *ModifyClusterSubnetGroupOutput) {
  4306. op := &request.Operation{
  4307. Name: opModifyClusterSubnetGroup,
  4308. HTTPMethod: "POST",
  4309. HTTPPath: "/",
  4310. }
  4311. if input == nil {
  4312. input = &ModifyClusterSubnetGroupInput{}
  4313. }
  4314. req = c.newRequest(op, input, output)
  4315. output = &ModifyClusterSubnetGroupOutput{}
  4316. req.Data = output
  4317. return
  4318. }
  4319. // ModifyClusterSubnetGroup API operation for Amazon Redshift.
  4320. //
  4321. // Modifies a cluster subnet group to include the specified list of VPC subnets.
  4322. // The operation replaces the existing list of subnets with the new list of
  4323. // subnets.
  4324. //
  4325. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4326. // with awserr.Error's Code and Message methods to get detailed information about
  4327. // the error.
  4328. //
  4329. // See the AWS API reference guide for Amazon Redshift's
  4330. // API operation ModifyClusterSubnetGroup for usage and error information.
  4331. //
  4332. // Returned Error Codes:
  4333. // * ClusterSubnetGroupNotFoundFault
  4334. // The cluster subnet group name does not refer to an existing cluster subnet
  4335. // group.
  4336. //
  4337. // * ClusterSubnetQuotaExceededFault
  4338. // The request would result in user exceeding the allowed number of subnets
  4339. // in a cluster subnet groups. For information about increasing your quota,
  4340. // go to Limits in Amazon Redshift (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  4341. // in the Amazon Redshift Cluster Management Guide.
  4342. //
  4343. // * SubnetAlreadyInUse
  4344. // A specified subnet is already in use by another cluster.
  4345. //
  4346. // * InvalidSubnet
  4347. // The requested subnet is not valid, or not all of the subnets are in the same
  4348. // VPC.
  4349. //
  4350. // * UnauthorizedOperation
  4351. // Your account is not authorized to perform the requested operation.
  4352. //
  4353. // * DependentServiceRequestThrottlingFault
  4354. // The request cannot be completed because a dependent service is throttling
  4355. // requests made by Amazon Redshift on your behalf. Wait and retry the request.
  4356. //
  4357. func (c *Redshift) ModifyClusterSubnetGroup(input *ModifyClusterSubnetGroupInput) (*ModifyClusterSubnetGroupOutput, error) {
  4358. req, out := c.ModifyClusterSubnetGroupRequest(input)
  4359. err := req.Send()
  4360. return out, err
  4361. }
  4362. const opModifyEventSubscription = "ModifyEventSubscription"
  4363. // ModifyEventSubscriptionRequest generates a "aws/request.Request" representing the
  4364. // client's request for the ModifyEventSubscription operation. The "output" return
  4365. // value can be used to capture response data after the request's "Send" method
  4366. // is called.
  4367. //
  4368. // See ModifyEventSubscription for usage and error information.
  4369. //
  4370. // Creating a request object using this method should be used when you want to inject
  4371. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4372. // access properties on the request object before or after sending the request. If
  4373. // you just want the service response, call the ModifyEventSubscription method directly
  4374. // instead.
  4375. //
  4376. // Note: You must call the "Send" method on the returned request object in order
  4377. // to execute the request.
  4378. //
  4379. // // Example sending a request using the ModifyEventSubscriptionRequest method.
  4380. // req, resp := client.ModifyEventSubscriptionRequest(params)
  4381. //
  4382. // err := req.Send()
  4383. // if err == nil { // resp is now filled
  4384. // fmt.Println(resp)
  4385. // }
  4386. //
  4387. func (c *Redshift) ModifyEventSubscriptionRequest(input *ModifyEventSubscriptionInput) (req *request.Request, output *ModifyEventSubscriptionOutput) {
  4388. op := &request.Operation{
  4389. Name: opModifyEventSubscription,
  4390. HTTPMethod: "POST",
  4391. HTTPPath: "/",
  4392. }
  4393. if input == nil {
  4394. input = &ModifyEventSubscriptionInput{}
  4395. }
  4396. req = c.newRequest(op, input, output)
  4397. output = &ModifyEventSubscriptionOutput{}
  4398. req.Data = output
  4399. return
  4400. }
  4401. // ModifyEventSubscription API operation for Amazon Redshift.
  4402. //
  4403. // Modifies an existing Amazon Redshift event notification subscription.
  4404. //
  4405. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4406. // with awserr.Error's Code and Message methods to get detailed information about
  4407. // the error.
  4408. //
  4409. // See the AWS API reference guide for Amazon Redshift's
  4410. // API operation ModifyEventSubscription for usage and error information.
  4411. //
  4412. // Returned Error Codes:
  4413. // * SubscriptionNotFound
  4414. // An Amazon Redshift event notification subscription with the specified name
  4415. // does not exist.
  4416. //
  4417. // * SNSInvalidTopic
  4418. // Amazon SNS has responded that there is a problem with the specified Amazon
  4419. // SNS topic.
  4420. //
  4421. // * SNSNoAuthorization
  4422. // You do not have permission to publish to the specified Amazon SNS topic.
  4423. //
  4424. // * SNSTopicArnNotFound
  4425. // An Amazon SNS topic with the specified Amazon Resource Name (ARN) does not
  4426. // exist.
  4427. //
  4428. // * SubscriptionEventIdNotFound
  4429. // An Amazon Redshift event with the specified event ID does not exist.
  4430. //
  4431. // * SubscriptionCategoryNotFound
  4432. // The value specified for the event category was not one of the allowed values,
  4433. // or it specified a category that does not apply to the specified source type.
  4434. // The allowed values are Configuration, Management, Monitoring, and Security.
  4435. //
  4436. // * SubscriptionSeverityNotFound
  4437. // The value specified for the event severity was not one of the allowed values,
  4438. // or it specified a severity that does not apply to the specified source type.
  4439. // The allowed values are ERROR and INFO.
  4440. //
  4441. // * SourceNotFound
  4442. // The specified Amazon Redshift event source could not be found.
  4443. //
  4444. // * InvalidSubscriptionStateFault
  4445. // The subscription request is invalid because it is a duplicate request. This
  4446. // subscription request is already in progress.
  4447. //
  4448. func (c *Redshift) ModifyEventSubscription(input *ModifyEventSubscriptionInput) (*ModifyEventSubscriptionOutput, error) {
  4449. req, out := c.ModifyEventSubscriptionRequest(input)
  4450. err := req.Send()
  4451. return out, err
  4452. }
  4453. const opModifySnapshotCopyRetentionPeriod = "ModifySnapshotCopyRetentionPeriod"
  4454. // ModifySnapshotCopyRetentionPeriodRequest generates a "aws/request.Request" representing the
  4455. // client's request for the ModifySnapshotCopyRetentionPeriod operation. The "output" return
  4456. // value can be used to capture response data after the request's "Send" method
  4457. // is called.
  4458. //
  4459. // See ModifySnapshotCopyRetentionPeriod for usage and error information.
  4460. //
  4461. // Creating a request object using this method should be used when you want to inject
  4462. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4463. // access properties on the request object before or after sending the request. If
  4464. // you just want the service response, call the ModifySnapshotCopyRetentionPeriod method directly
  4465. // instead.
  4466. //
  4467. // Note: You must call the "Send" method on the returned request object in order
  4468. // to execute the request.
  4469. //
  4470. // // Example sending a request using the ModifySnapshotCopyRetentionPeriodRequest method.
  4471. // req, resp := client.ModifySnapshotCopyRetentionPeriodRequest(params)
  4472. //
  4473. // err := req.Send()
  4474. // if err == nil { // resp is now filled
  4475. // fmt.Println(resp)
  4476. // }
  4477. //
  4478. func (c *Redshift) ModifySnapshotCopyRetentionPeriodRequest(input *ModifySnapshotCopyRetentionPeriodInput) (req *request.Request, output *ModifySnapshotCopyRetentionPeriodOutput) {
  4479. op := &request.Operation{
  4480. Name: opModifySnapshotCopyRetentionPeriod,
  4481. HTTPMethod: "POST",
  4482. HTTPPath: "/",
  4483. }
  4484. if input == nil {
  4485. input = &ModifySnapshotCopyRetentionPeriodInput{}
  4486. }
  4487. req = c.newRequest(op, input, output)
  4488. output = &ModifySnapshotCopyRetentionPeriodOutput{}
  4489. req.Data = output
  4490. return
  4491. }
  4492. // ModifySnapshotCopyRetentionPeriod API operation for Amazon Redshift.
  4493. //
  4494. // Modifies the number of days to retain automated snapshots in the destination
  4495. // region after they are copied from the source region.
  4496. //
  4497. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4498. // with awserr.Error's Code and Message methods to get detailed information about
  4499. // the error.
  4500. //
  4501. // See the AWS API reference guide for Amazon Redshift's
  4502. // API operation ModifySnapshotCopyRetentionPeriod for usage and error information.
  4503. //
  4504. // Returned Error Codes:
  4505. // * ClusterNotFound
  4506. // The ClusterIdentifier parameter does not refer to an existing cluster.
  4507. //
  4508. // * SnapshotCopyDisabledFault
  4509. // Cross-region snapshot copy was temporarily disabled. Try your request again.
  4510. //
  4511. // * UnauthorizedOperation
  4512. // Your account is not authorized to perform the requested operation.
  4513. //
  4514. // * InvalidClusterState
  4515. // The specified cluster is not in the available state.
  4516. //
  4517. func (c *Redshift) ModifySnapshotCopyRetentionPeriod(input *ModifySnapshotCopyRetentionPeriodInput) (*ModifySnapshotCopyRetentionPeriodOutput, error) {
  4518. req, out := c.ModifySnapshotCopyRetentionPeriodRequest(input)
  4519. err := req.Send()
  4520. return out, err
  4521. }
  4522. const opPurchaseReservedNodeOffering = "PurchaseReservedNodeOffering"
  4523. // PurchaseReservedNodeOfferingRequest generates a "aws/request.Request" representing the
  4524. // client's request for the PurchaseReservedNodeOffering operation. The "output" return
  4525. // value can be used to capture response data after the request's "Send" method
  4526. // is called.
  4527. //
  4528. // See PurchaseReservedNodeOffering for usage and error information.
  4529. //
  4530. // Creating a request object using this method should be used when you want to inject
  4531. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4532. // access properties on the request object before or after sending the request. If
  4533. // you just want the service response, call the PurchaseReservedNodeOffering method directly
  4534. // instead.
  4535. //
  4536. // Note: You must call the "Send" method on the returned request object in order
  4537. // to execute the request.
  4538. //
  4539. // // Example sending a request using the PurchaseReservedNodeOfferingRequest method.
  4540. // req, resp := client.PurchaseReservedNodeOfferingRequest(params)
  4541. //
  4542. // err := req.Send()
  4543. // if err == nil { // resp is now filled
  4544. // fmt.Println(resp)
  4545. // }
  4546. //
  4547. func (c *Redshift) PurchaseReservedNodeOfferingRequest(input *PurchaseReservedNodeOfferingInput) (req *request.Request, output *PurchaseReservedNodeOfferingOutput) {
  4548. op := &request.Operation{
  4549. Name: opPurchaseReservedNodeOffering,
  4550. HTTPMethod: "POST",
  4551. HTTPPath: "/",
  4552. }
  4553. if input == nil {
  4554. input = &PurchaseReservedNodeOfferingInput{}
  4555. }
  4556. req = c.newRequest(op, input, output)
  4557. output = &PurchaseReservedNodeOfferingOutput{}
  4558. req.Data = output
  4559. return
  4560. }
  4561. // PurchaseReservedNodeOffering API operation for Amazon Redshift.
  4562. //
  4563. // Allows you to purchase reserved nodes. Amazon Redshift offers a predefined
  4564. // set of reserved node offerings. You can purchase one or more of the offerings.
  4565. // You can call the DescribeReservedNodeOfferings API to obtain the available
  4566. // reserved node offerings. You can call this API by providing a specific reserved
  4567. // node offering and the number of nodes you want to reserve.
  4568. //
  4569. // For more information about reserved node offerings, go to Purchasing Reserved
  4570. // Nodes (http://docs.aws.amazon.com/redshift/latest/mgmt/purchase-reserved-node-instance.html)
  4571. // in the Amazon Redshift Cluster Management Guide.
  4572. //
  4573. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4574. // with awserr.Error's Code and Message methods to get detailed information about
  4575. // the error.
  4576. //
  4577. // See the AWS API reference guide for Amazon Redshift's
  4578. // API operation PurchaseReservedNodeOffering for usage and error information.
  4579. //
  4580. // Returned Error Codes:
  4581. // * ReservedNodeOfferingNotFound
  4582. // Specified offering does not exist.
  4583. //
  4584. // * ReservedNodeAlreadyExists
  4585. // User already has a reservation with the given identifier.
  4586. //
  4587. // * ReservedNodeQuotaExceeded
  4588. // Request would exceed the user's compute node quota. For information about
  4589. // increasing your quota, go to Limits in Amazon Redshift (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  4590. // in the Amazon Redshift Cluster Management Guide.
  4591. //
  4592. // * UnsupportedOperation
  4593. // The requested operation isn't supported.
  4594. //
  4595. func (c *Redshift) PurchaseReservedNodeOffering(input *PurchaseReservedNodeOfferingInput) (*PurchaseReservedNodeOfferingOutput, error) {
  4596. req, out := c.PurchaseReservedNodeOfferingRequest(input)
  4597. err := req.Send()
  4598. return out, err
  4599. }
  4600. const opRebootCluster = "RebootCluster"
  4601. // RebootClusterRequest generates a "aws/request.Request" representing the
  4602. // client's request for the RebootCluster operation. The "output" return
  4603. // value can be used to capture response data after the request's "Send" method
  4604. // is called.
  4605. //
  4606. // See RebootCluster for usage and error information.
  4607. //
  4608. // Creating a request object using this method should be used when you want to inject
  4609. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4610. // access properties on the request object before or after sending the request. If
  4611. // you just want the service response, call the RebootCluster method directly
  4612. // instead.
  4613. //
  4614. // Note: You must call the "Send" method on the returned request object in order
  4615. // to execute the request.
  4616. //
  4617. // // Example sending a request using the RebootClusterRequest method.
  4618. // req, resp := client.RebootClusterRequest(params)
  4619. //
  4620. // err := req.Send()
  4621. // if err == nil { // resp is now filled
  4622. // fmt.Println(resp)
  4623. // }
  4624. //
  4625. func (c *Redshift) RebootClusterRequest(input *RebootClusterInput) (req *request.Request, output *RebootClusterOutput) {
  4626. op := &request.Operation{
  4627. Name: opRebootCluster,
  4628. HTTPMethod: "POST",
  4629. HTTPPath: "/",
  4630. }
  4631. if input == nil {
  4632. input = &RebootClusterInput{}
  4633. }
  4634. req = c.newRequest(op, input, output)
  4635. output = &RebootClusterOutput{}
  4636. req.Data = output
  4637. return
  4638. }
  4639. // RebootCluster API operation for Amazon Redshift.
  4640. //
  4641. // Reboots a cluster. This action is taken as soon as possible. It results in
  4642. // a momentary outage to the cluster, during which the cluster status is set
  4643. // to rebooting. A cluster event is created when the reboot is completed. Any
  4644. // pending cluster modifications (see ModifyCluster) are applied at this reboot.
  4645. // For more information about managing clusters, go to Amazon Redshift Clusters
  4646. // (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html)
  4647. // in the Amazon Redshift Cluster Management Guide.
  4648. //
  4649. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4650. // with awserr.Error's Code and Message methods to get detailed information about
  4651. // the error.
  4652. //
  4653. // See the AWS API reference guide for Amazon Redshift's
  4654. // API operation RebootCluster for usage and error information.
  4655. //
  4656. // Returned Error Codes:
  4657. // * InvalidClusterState
  4658. // The specified cluster is not in the available state.
  4659. //
  4660. // * ClusterNotFound
  4661. // The ClusterIdentifier parameter does not refer to an existing cluster.
  4662. //
  4663. func (c *Redshift) RebootCluster(input *RebootClusterInput) (*RebootClusterOutput, error) {
  4664. req, out := c.RebootClusterRequest(input)
  4665. err := req.Send()
  4666. return out, err
  4667. }
  4668. const opResetClusterParameterGroup = "ResetClusterParameterGroup"
  4669. // ResetClusterParameterGroupRequest generates a "aws/request.Request" representing the
  4670. // client's request for the ResetClusterParameterGroup operation. The "output" return
  4671. // value can be used to capture response data after the request's "Send" method
  4672. // is called.
  4673. //
  4674. // See ResetClusterParameterGroup for usage and error information.
  4675. //
  4676. // Creating a request object using this method should be used when you want to inject
  4677. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4678. // access properties on the request object before or after sending the request. If
  4679. // you just want the service response, call the ResetClusterParameterGroup method directly
  4680. // instead.
  4681. //
  4682. // Note: You must call the "Send" method on the returned request object in order
  4683. // to execute the request.
  4684. //
  4685. // // Example sending a request using the ResetClusterParameterGroupRequest method.
  4686. // req, resp := client.ResetClusterParameterGroupRequest(params)
  4687. //
  4688. // err := req.Send()
  4689. // if err == nil { // resp is now filled
  4690. // fmt.Println(resp)
  4691. // }
  4692. //
  4693. func (c *Redshift) ResetClusterParameterGroupRequest(input *ResetClusterParameterGroupInput) (req *request.Request, output *ClusterParameterGroupNameMessage) {
  4694. op := &request.Operation{
  4695. Name: opResetClusterParameterGroup,
  4696. HTTPMethod: "POST",
  4697. HTTPPath: "/",
  4698. }
  4699. if input == nil {
  4700. input = &ResetClusterParameterGroupInput{}
  4701. }
  4702. req = c.newRequest(op, input, output)
  4703. output = &ClusterParameterGroupNameMessage{}
  4704. req.Data = output
  4705. return
  4706. }
  4707. // ResetClusterParameterGroup API operation for Amazon Redshift.
  4708. //
  4709. // Sets one or more parameters of the specified parameter group to their default
  4710. // values and sets the source values of the parameters to "engine-default".
  4711. // To reset the entire parameter group specify the ResetAllParameters parameter.
  4712. // For parameter changes to take effect you must reboot any associated clusters.
  4713. //
  4714. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4715. // with awserr.Error's Code and Message methods to get detailed information about
  4716. // the error.
  4717. //
  4718. // See the AWS API reference guide for Amazon Redshift's
  4719. // API operation ResetClusterParameterGroup for usage and error information.
  4720. //
  4721. // Returned Error Codes:
  4722. // * InvalidClusterParameterGroupState
  4723. // The cluster parameter group action can not be completed because another task
  4724. // is in progress that involves the parameter group. Wait a few moments and
  4725. // try the operation again.
  4726. //
  4727. // * ClusterParameterGroupNotFound
  4728. // The parameter group name does not refer to an existing parameter group.
  4729. //
  4730. func (c *Redshift) ResetClusterParameterGroup(input *ResetClusterParameterGroupInput) (*ClusterParameterGroupNameMessage, error) {
  4731. req, out := c.ResetClusterParameterGroupRequest(input)
  4732. err := req.Send()
  4733. return out, err
  4734. }
  4735. const opRestoreFromClusterSnapshot = "RestoreFromClusterSnapshot"
  4736. // RestoreFromClusterSnapshotRequest generates a "aws/request.Request" representing the
  4737. // client's request for the RestoreFromClusterSnapshot operation. The "output" return
  4738. // value can be used to capture response data after the request's "Send" method
  4739. // is called.
  4740. //
  4741. // See RestoreFromClusterSnapshot for usage and error information.
  4742. //
  4743. // Creating a request object using this method should be used when you want to inject
  4744. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4745. // access properties on the request object before or after sending the request. If
  4746. // you just want the service response, call the RestoreFromClusterSnapshot method directly
  4747. // instead.
  4748. //
  4749. // Note: You must call the "Send" method on the returned request object in order
  4750. // to execute the request.
  4751. //
  4752. // // Example sending a request using the RestoreFromClusterSnapshotRequest method.
  4753. // req, resp := client.RestoreFromClusterSnapshotRequest(params)
  4754. //
  4755. // err := req.Send()
  4756. // if err == nil { // resp is now filled
  4757. // fmt.Println(resp)
  4758. // }
  4759. //
  4760. func (c *Redshift) RestoreFromClusterSnapshotRequest(input *RestoreFromClusterSnapshotInput) (req *request.Request, output *RestoreFromClusterSnapshotOutput) {
  4761. op := &request.Operation{
  4762. Name: opRestoreFromClusterSnapshot,
  4763. HTTPMethod: "POST",
  4764. HTTPPath: "/",
  4765. }
  4766. if input == nil {
  4767. input = &RestoreFromClusterSnapshotInput{}
  4768. }
  4769. req = c.newRequest(op, input, output)
  4770. output = &RestoreFromClusterSnapshotOutput{}
  4771. req.Data = output
  4772. return
  4773. }
  4774. // RestoreFromClusterSnapshot API operation for Amazon Redshift.
  4775. //
  4776. // Creates a new cluster from a snapshot. By default, Amazon Redshift creates
  4777. // the resulting cluster with the same configuration as the original cluster
  4778. // from which the snapshot was created, except that the new cluster is created
  4779. // with the default cluster security and parameter groups. After Amazon Redshift
  4780. // creates the cluster, you can use the ModifyCluster API to associate a different
  4781. // security group and different parameter group with the restored cluster. If
  4782. // you are using a DS node type, you can also choose to change to another DS
  4783. // node type of the same size during restore.
  4784. //
  4785. // If you restore a cluster into a VPC, you must provide a cluster subnet group
  4786. // where you want the cluster restored.
  4787. //
  4788. // For more information about working with snapshots, go to Amazon Redshift
  4789. // Snapshots (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
  4790. // in the Amazon Redshift Cluster Management Guide.
  4791. //
  4792. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4793. // with awserr.Error's Code and Message methods to get detailed information about
  4794. // the error.
  4795. //
  4796. // See the AWS API reference guide for Amazon Redshift's
  4797. // API operation RestoreFromClusterSnapshot for usage and error information.
  4798. //
  4799. // Returned Error Codes:
  4800. // * AccessToSnapshotDenied
  4801. // The owner of the specified snapshot has not authorized your account to access
  4802. // the snapshot.
  4803. //
  4804. // * ClusterAlreadyExists
  4805. // The account already has a cluster with the given identifier.
  4806. //
  4807. // * ClusterSnapshotNotFound
  4808. // The snapshot identifier does not refer to an existing cluster snapshot.
  4809. //
  4810. // * ClusterQuotaExceeded
  4811. // The request would exceed the allowed number of cluster instances for this
  4812. // account. For information about increasing your quota, go to Limits in Amazon
  4813. // Redshift (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  4814. // in the Amazon Redshift Cluster Management Guide.
  4815. //
  4816. // * InsufficientClusterCapacity
  4817. // The number of nodes specified exceeds the allotted capacity of the cluster.
  4818. //
  4819. // * InvalidClusterSnapshotState
  4820. // The specified cluster snapshot is not in the available state, or other accounts
  4821. // are authorized to access the snapshot.
  4822. //
  4823. // * InvalidRestore
  4824. // The restore is invalid.
  4825. //
  4826. // * NumberOfNodesQuotaExceeded
  4827. // The operation would exceed the number of nodes allotted to the account. For
  4828. // information about increasing your quota, go to Limits in Amazon Redshift
  4829. // (http://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)
  4830. // in the Amazon Redshift Cluster Management Guide.
  4831. //
  4832. // * NumberOfNodesPerClusterLimitExceeded
  4833. // The operation would exceed the number of nodes allowed for a cluster.
  4834. //
  4835. // * InvalidVPCNetworkStateFault
  4836. // The cluster subnet group does not cover all Availability Zones.
  4837. //
  4838. // * InvalidClusterSubnetGroupStateFault
  4839. // The cluster subnet group cannot be deleted because it is in use.
  4840. //
  4841. // * InvalidSubnet
  4842. // The requested subnet is not valid, or not all of the subnets are in the same
  4843. // VPC.
  4844. //
  4845. // * ClusterSubnetGroupNotFoundFault
  4846. // The cluster subnet group name does not refer to an existing cluster subnet
  4847. // group.
  4848. //
  4849. // * UnauthorizedOperation
  4850. // Your account is not authorized to perform the requested operation.
  4851. //
  4852. // * HsmClientCertificateNotFoundFault
  4853. // There is no Amazon Redshift HSM client certificate with the specified identifier.
  4854. //
  4855. // * HsmConfigurationNotFoundFault
  4856. // There is no Amazon Redshift HSM configuration with the specified identifier.
  4857. //
  4858. // * InvalidElasticIpFault
  4859. // The Elastic IP (EIP) is invalid or cannot be found.
  4860. //
  4861. // * ClusterParameterGroupNotFound
  4862. // The parameter group name does not refer to an existing parameter group.
  4863. //
  4864. // * ClusterSecurityGroupNotFound
  4865. // The cluster security group name does not refer to an existing cluster security
  4866. // group.
  4867. //
  4868. // * LimitExceededFault
  4869. // The encryption key has exceeded its grant limit in AWS KMS.
  4870. //
  4871. // * DependentServiceRequestThrottlingFault
  4872. // The request cannot be completed because a dependent service is throttling
  4873. // requests made by Amazon Redshift on your behalf. Wait and retry the request.
  4874. //
  4875. func (c *Redshift) RestoreFromClusterSnapshot(input *RestoreFromClusterSnapshotInput) (*RestoreFromClusterSnapshotOutput, error) {
  4876. req, out := c.RestoreFromClusterSnapshotRequest(input)
  4877. err := req.Send()
  4878. return out, err
  4879. }
  4880. const opRestoreTableFromClusterSnapshot = "RestoreTableFromClusterSnapshot"
  4881. // RestoreTableFromClusterSnapshotRequest generates a "aws/request.Request" representing the
  4882. // client's request for the RestoreTableFromClusterSnapshot operation. The "output" return
  4883. // value can be used to capture response data after the request's "Send" method
  4884. // is called.
  4885. //
  4886. // See RestoreTableFromClusterSnapshot for usage and error information.
  4887. //
  4888. // Creating a request object using this method should be used when you want to inject
  4889. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4890. // access properties on the request object before or after sending the request. If
  4891. // you just want the service response, call the RestoreTableFromClusterSnapshot method directly
  4892. // instead.
  4893. //
  4894. // Note: You must call the "Send" method on the returned request object in order
  4895. // to execute the request.
  4896. //
  4897. // // Example sending a request using the RestoreTableFromClusterSnapshotRequest method.
  4898. // req, resp := client.RestoreTableFromClusterSnapshotRequest(params)
  4899. //
  4900. // err := req.Send()
  4901. // if err == nil { // resp is now filled
  4902. // fmt.Println(resp)
  4903. // }
  4904. //
  4905. func (c *Redshift) RestoreTableFromClusterSnapshotRequest(input *RestoreTableFromClusterSnapshotInput) (req *request.Request, output *RestoreTableFromClusterSnapshotOutput) {
  4906. op := &request.Operation{
  4907. Name: opRestoreTableFromClusterSnapshot,
  4908. HTTPMethod: "POST",
  4909. HTTPPath: "/",
  4910. }
  4911. if input == nil {
  4912. input = &RestoreTableFromClusterSnapshotInput{}
  4913. }
  4914. req = c.newRequest(op, input, output)
  4915. output = &RestoreTableFromClusterSnapshotOutput{}
  4916. req.Data = output
  4917. return
  4918. }
  4919. // RestoreTableFromClusterSnapshot API operation for Amazon Redshift.
  4920. //
  4921. // Creates a new table from a table in an Amazon Redshift cluster snapshot.
  4922. // You must create the new table within the Amazon Redshift cluster that the
  4923. // snapshot was taken from.
  4924. //
  4925. // You cannot use RestoreTableFromClusterSnapshot to restore a table with the
  4926. // same name as an existing table in an Amazon Redshift cluster. That is, you
  4927. // cannot overwrite an existing table in a cluster with a restored table. If
  4928. // you want to replace your original table with a new, restored table, then
  4929. // rename or drop your original table before you call RestoreTableFromClusterSnapshot.
  4930. // When you have renamed your original table, then you can pass the original
  4931. // name of the table as the NewTableName parameter value in the call to RestoreTableFromClusterSnapshot.
  4932. // This way, you can replace the original table with the table created from
  4933. // the snapshot.
  4934. //
  4935. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4936. // with awserr.Error's Code and Message methods to get detailed information about
  4937. // the error.
  4938. //
  4939. // See the AWS API reference guide for Amazon Redshift's
  4940. // API operation RestoreTableFromClusterSnapshot for usage and error information.
  4941. //
  4942. // Returned Error Codes:
  4943. // * ClusterSnapshotNotFound
  4944. // The snapshot identifier does not refer to an existing cluster snapshot.
  4945. //
  4946. // * InProgressTableRestoreQuotaExceededFault
  4947. // You have exceeded the allowed number of table restore requests. Wait for
  4948. // your current table restore requests to complete before making a new request.
  4949. //
  4950. // * InvalidClusterSnapshotState
  4951. // The specified cluster snapshot is not in the available state, or other accounts
  4952. // are authorized to access the snapshot.
  4953. //
  4954. // * InvalidTableRestoreArgument
  4955. // The value specified for the sourceDatabaseName, sourceSchemaName, or sourceTableName
  4956. // parameter, or a combination of these, doesn't exist in the snapshot.
  4957. //
  4958. // * ClusterNotFound
  4959. // The ClusterIdentifier parameter does not refer to an existing cluster.
  4960. //
  4961. // * InvalidClusterState
  4962. // The specified cluster is not in the available state.
  4963. //
  4964. // * UnsupportedOperation
  4965. // The requested operation isn't supported.
  4966. //
  4967. func (c *Redshift) RestoreTableFromClusterSnapshot(input *RestoreTableFromClusterSnapshotInput) (*RestoreTableFromClusterSnapshotOutput, error) {
  4968. req, out := c.RestoreTableFromClusterSnapshotRequest(input)
  4969. err := req.Send()
  4970. return out, err
  4971. }
  4972. const opRevokeClusterSecurityGroupIngress = "RevokeClusterSecurityGroupIngress"
  4973. // RevokeClusterSecurityGroupIngressRequest generates a "aws/request.Request" representing the
  4974. // client's request for the RevokeClusterSecurityGroupIngress operation. The "output" return
  4975. // value can be used to capture response data after the request's "Send" method
  4976. // is called.
  4977. //
  4978. // See RevokeClusterSecurityGroupIngress for usage and error information.
  4979. //
  4980. // Creating a request object using this method should be used when you want to inject
  4981. // custom logic into the request's lifecycle using a custom handler, or if you want to
  4982. // access properties on the request object before or after sending the request. If
  4983. // you just want the service response, call the RevokeClusterSecurityGroupIngress method directly
  4984. // instead.
  4985. //
  4986. // Note: You must call the "Send" method on the returned request object in order
  4987. // to execute the request.
  4988. //
  4989. // // Example sending a request using the RevokeClusterSecurityGroupIngressRequest method.
  4990. // req, resp := client.RevokeClusterSecurityGroupIngressRequest(params)
  4991. //
  4992. // err := req.Send()
  4993. // if err == nil { // resp is now filled
  4994. // fmt.Println(resp)
  4995. // }
  4996. //
  4997. func (c *Redshift) RevokeClusterSecurityGroupIngressRequest(input *RevokeClusterSecurityGroupIngressInput) (req *request.Request, output *RevokeClusterSecurityGroupIngressOutput) {
  4998. op := &request.Operation{
  4999. Name: opRevokeClusterSecurityGroupIngress,
  5000. HTTPMethod: "POST",
  5001. HTTPPath: "/",
  5002. }
  5003. if input == nil {
  5004. input = &RevokeClusterSecurityGroupIngressInput{}
  5005. }
  5006. req = c.newRequest(op, input, output)
  5007. output = &RevokeClusterSecurityGroupIngressOutput{}
  5008. req.Data = output
  5009. return
  5010. }
  5011. // RevokeClusterSecurityGroupIngress API operation for Amazon Redshift.
  5012. //
  5013. // Revokes an ingress rule in an Amazon Redshift security group for a previously
  5014. // authorized IP range or Amazon EC2 security group. To add an ingress rule,
  5015. // see AuthorizeClusterSecurityGroupIngress. For information about managing
  5016. // security groups, go to Amazon Redshift Cluster Security Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-security-groups.html)
  5017. // in the Amazon Redshift Cluster Management Guide.
  5018. //
  5019. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5020. // with awserr.Error's Code and Message methods to get detailed information about
  5021. // the error.
  5022. //
  5023. // See the AWS API reference guide for Amazon Redshift's
  5024. // API operation RevokeClusterSecurityGroupIngress for usage and error information.
  5025. //
  5026. // Returned Error Codes:
  5027. // * ClusterSecurityGroupNotFound
  5028. // The cluster security group name does not refer to an existing cluster security
  5029. // group.
  5030. //
  5031. // * AuthorizationNotFound
  5032. // The specified CIDR IP range or EC2 security group is not authorized for the
  5033. // specified cluster security group.
  5034. //
  5035. // * InvalidClusterSecurityGroupState
  5036. // The state of the cluster security group is not available.
  5037. //
  5038. func (c *Redshift) RevokeClusterSecurityGroupIngress(input *RevokeClusterSecurityGroupIngressInput) (*RevokeClusterSecurityGroupIngressOutput, error) {
  5039. req, out := c.RevokeClusterSecurityGroupIngressRequest(input)
  5040. err := req.Send()
  5041. return out, err
  5042. }
  5043. const opRevokeSnapshotAccess = "RevokeSnapshotAccess"
  5044. // RevokeSnapshotAccessRequest generates a "aws/request.Request" representing the
  5045. // client's request for the RevokeSnapshotAccess operation. The "output" return
  5046. // value can be used to capture response data after the request's "Send" method
  5047. // is called.
  5048. //
  5049. // See RevokeSnapshotAccess for usage and error information.
  5050. //
  5051. // Creating a request object using this method should be used when you want to inject
  5052. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5053. // access properties on the request object before or after sending the request. If
  5054. // you just want the service response, call the RevokeSnapshotAccess method directly
  5055. // instead.
  5056. //
  5057. // Note: You must call the "Send" method on the returned request object in order
  5058. // to execute the request.
  5059. //
  5060. // // Example sending a request using the RevokeSnapshotAccessRequest method.
  5061. // req, resp := client.RevokeSnapshotAccessRequest(params)
  5062. //
  5063. // err := req.Send()
  5064. // if err == nil { // resp is now filled
  5065. // fmt.Println(resp)
  5066. // }
  5067. //
  5068. func (c *Redshift) RevokeSnapshotAccessRequest(input *RevokeSnapshotAccessInput) (req *request.Request, output *RevokeSnapshotAccessOutput) {
  5069. op := &request.Operation{
  5070. Name: opRevokeSnapshotAccess,
  5071. HTTPMethod: "POST",
  5072. HTTPPath: "/",
  5073. }
  5074. if input == nil {
  5075. input = &RevokeSnapshotAccessInput{}
  5076. }
  5077. req = c.newRequest(op, input, output)
  5078. output = &RevokeSnapshotAccessOutput{}
  5079. req.Data = output
  5080. return
  5081. }
  5082. // RevokeSnapshotAccess API operation for Amazon Redshift.
  5083. //
  5084. // Removes the ability of the specified AWS customer account to restore the
  5085. // specified snapshot. If the account is currently restoring the snapshot, the
  5086. // restore will run to completion.
  5087. //
  5088. // For more information about working with snapshots, go to Amazon Redshift
  5089. // Snapshots (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)
  5090. // in the Amazon Redshift Cluster Management Guide.
  5091. //
  5092. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5093. // with awserr.Error's Code and Message methods to get detailed information about
  5094. // the error.
  5095. //
  5096. // See the AWS API reference guide for Amazon Redshift's
  5097. // API operation RevokeSnapshotAccess for usage and error information.
  5098. //
  5099. // Returned Error Codes:
  5100. // * AccessToSnapshotDenied
  5101. // The owner of the specified snapshot has not authorized your account to access
  5102. // the snapshot.
  5103. //
  5104. // * AuthorizationNotFound
  5105. // The specified CIDR IP range or EC2 security group is not authorized for the
  5106. // specified cluster security group.
  5107. //
  5108. // * ClusterSnapshotNotFound
  5109. // The snapshot identifier does not refer to an existing cluster snapshot.
  5110. //
  5111. func (c *Redshift) RevokeSnapshotAccess(input *RevokeSnapshotAccessInput) (*RevokeSnapshotAccessOutput, error) {
  5112. req, out := c.RevokeSnapshotAccessRequest(input)
  5113. err := req.Send()
  5114. return out, err
  5115. }
  5116. const opRotateEncryptionKey = "RotateEncryptionKey"
  5117. // RotateEncryptionKeyRequest generates a "aws/request.Request" representing the
  5118. // client's request for the RotateEncryptionKey operation. The "output" return
  5119. // value can be used to capture response data after the request's "Send" method
  5120. // is called.
  5121. //
  5122. // See RotateEncryptionKey for usage and error information.
  5123. //
  5124. // Creating a request object using this method should be used when you want to inject
  5125. // custom logic into the request's lifecycle using a custom handler, or if you want to
  5126. // access properties on the request object before or after sending the request. If
  5127. // you just want the service response, call the RotateEncryptionKey method directly
  5128. // instead.
  5129. //
  5130. // Note: You must call the "Send" method on the returned request object in order
  5131. // to execute the request.
  5132. //
  5133. // // Example sending a request using the RotateEncryptionKeyRequest method.
  5134. // req, resp := client.RotateEncryptionKeyRequest(params)
  5135. //
  5136. // err := req.Send()
  5137. // if err == nil { // resp is now filled
  5138. // fmt.Println(resp)
  5139. // }
  5140. //
  5141. func (c *Redshift) RotateEncryptionKeyRequest(input *RotateEncryptionKeyInput) (req *request.Request, output *RotateEncryptionKeyOutput) {
  5142. op := &request.Operation{
  5143. Name: opRotateEncryptionKey,
  5144. HTTPMethod: "POST",
  5145. HTTPPath: "/",
  5146. }
  5147. if input == nil {
  5148. input = &RotateEncryptionKeyInput{}
  5149. }
  5150. req = c.newRequest(op, input, output)
  5151. output = &RotateEncryptionKeyOutput{}
  5152. req.Data = output
  5153. return
  5154. }
  5155. // RotateEncryptionKey API operation for Amazon Redshift.
  5156. //
  5157. // Rotates the encryption keys for a cluster.
  5158. //
  5159. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5160. // with awserr.Error's Code and Message methods to get detailed information about
  5161. // the error.
  5162. //
  5163. // See the AWS API reference guide for Amazon Redshift's
  5164. // API operation RotateEncryptionKey for usage and error information.
  5165. //
  5166. // Returned Error Codes:
  5167. // * ClusterNotFound
  5168. // The ClusterIdentifier parameter does not refer to an existing cluster.
  5169. //
  5170. // * InvalidClusterState
  5171. // The specified cluster is not in the available state.
  5172. //
  5173. // * DependentServiceRequestThrottlingFault
  5174. // The request cannot be completed because a dependent service is throttling
  5175. // requests made by Amazon Redshift on your behalf. Wait and retry the request.
  5176. //
  5177. func (c *Redshift) RotateEncryptionKey(input *RotateEncryptionKeyInput) (*RotateEncryptionKeyOutput, error) {
  5178. req, out := c.RotateEncryptionKeyRequest(input)
  5179. err := req.Send()
  5180. return out, err
  5181. }
  5182. // Describes an AWS customer account authorized to restore a snapshot.
  5183. type AccountWithRestoreAccess struct {
  5184. _ struct{} `type:"structure"`
  5185. // The identifier of an AWS customer account authorized to restore a snapshot.
  5186. AccountId *string `type:"string"`
  5187. }
  5188. // String returns the string representation
  5189. func (s AccountWithRestoreAccess) String() string {
  5190. return awsutil.Prettify(s)
  5191. }
  5192. // GoString returns the string representation
  5193. func (s AccountWithRestoreAccess) GoString() string {
  5194. return s.String()
  5195. }
  5196. type AuthorizeClusterSecurityGroupIngressInput struct {
  5197. _ struct{} `type:"structure"`
  5198. // The IP range to be added the Amazon Redshift security group.
  5199. CIDRIP *string `type:"string"`
  5200. // The name of the security group to which the ingress rule is added.
  5201. //
  5202. // ClusterSecurityGroupName is a required field
  5203. ClusterSecurityGroupName *string `type:"string" required:"true"`
  5204. // The EC2 security group to be added the Amazon Redshift security group.
  5205. EC2SecurityGroupName *string `type:"string"`
  5206. // The AWS account number of the owner of the security group specified by the
  5207. // EC2SecurityGroupName parameter. The AWS Access Key ID is not an acceptable
  5208. // value.
  5209. //
  5210. // Example: 111122223333
  5211. EC2SecurityGroupOwnerId *string `type:"string"`
  5212. }
  5213. // String returns the string representation
  5214. func (s AuthorizeClusterSecurityGroupIngressInput) String() string {
  5215. return awsutil.Prettify(s)
  5216. }
  5217. // GoString returns the string representation
  5218. func (s AuthorizeClusterSecurityGroupIngressInput) GoString() string {
  5219. return s.String()
  5220. }
  5221. // Validate inspects the fields of the type to determine if they are valid.
  5222. func (s *AuthorizeClusterSecurityGroupIngressInput) Validate() error {
  5223. invalidParams := request.ErrInvalidParams{Context: "AuthorizeClusterSecurityGroupIngressInput"}
  5224. if s.ClusterSecurityGroupName == nil {
  5225. invalidParams.Add(request.NewErrParamRequired("ClusterSecurityGroupName"))
  5226. }
  5227. if invalidParams.Len() > 0 {
  5228. return invalidParams
  5229. }
  5230. return nil
  5231. }
  5232. type AuthorizeClusterSecurityGroupIngressOutput struct {
  5233. _ struct{} `type:"structure"`
  5234. // Describes a security group.
  5235. ClusterSecurityGroup *ClusterSecurityGroup `type:"structure"`
  5236. }
  5237. // String returns the string representation
  5238. func (s AuthorizeClusterSecurityGroupIngressOutput) String() string {
  5239. return awsutil.Prettify(s)
  5240. }
  5241. // GoString returns the string representation
  5242. func (s AuthorizeClusterSecurityGroupIngressOutput) GoString() string {
  5243. return s.String()
  5244. }
  5245. type AuthorizeSnapshotAccessInput struct {
  5246. _ struct{} `type:"structure"`
  5247. // The identifier of the AWS customer account authorized to restore the specified
  5248. // snapshot.
  5249. //
  5250. // AccountWithRestoreAccess is a required field
  5251. AccountWithRestoreAccess *string `type:"string" required:"true"`
  5252. // The identifier of the cluster the snapshot was created from. This parameter
  5253. // is required if your IAM user has a policy containing a snapshot resource
  5254. // element that specifies anything other than * for the cluster name.
  5255. SnapshotClusterIdentifier *string `type:"string"`
  5256. // The identifier of the snapshot the account is authorized to restore.
  5257. //
  5258. // SnapshotIdentifier is a required field
  5259. SnapshotIdentifier *string `type:"string" required:"true"`
  5260. }
  5261. // String returns the string representation
  5262. func (s AuthorizeSnapshotAccessInput) String() string {
  5263. return awsutil.Prettify(s)
  5264. }
  5265. // GoString returns the string representation
  5266. func (s AuthorizeSnapshotAccessInput) GoString() string {
  5267. return s.String()
  5268. }
  5269. // Validate inspects the fields of the type to determine if they are valid.
  5270. func (s *AuthorizeSnapshotAccessInput) Validate() error {
  5271. invalidParams := request.ErrInvalidParams{Context: "AuthorizeSnapshotAccessInput"}
  5272. if s.AccountWithRestoreAccess == nil {
  5273. invalidParams.Add(request.NewErrParamRequired("AccountWithRestoreAccess"))
  5274. }
  5275. if s.SnapshotIdentifier == nil {
  5276. invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
  5277. }
  5278. if invalidParams.Len() > 0 {
  5279. return invalidParams
  5280. }
  5281. return nil
  5282. }
  5283. type AuthorizeSnapshotAccessOutput struct {
  5284. _ struct{} `type:"structure"`
  5285. // Describes a snapshot.
  5286. Snapshot *Snapshot `type:"structure"`
  5287. }
  5288. // String returns the string representation
  5289. func (s AuthorizeSnapshotAccessOutput) String() string {
  5290. return awsutil.Prettify(s)
  5291. }
  5292. // GoString returns the string representation
  5293. func (s AuthorizeSnapshotAccessOutput) GoString() string {
  5294. return s.String()
  5295. }
  5296. // Describes an availability zone.
  5297. type AvailabilityZone struct {
  5298. _ struct{} `type:"structure"`
  5299. // The name of the availability zone.
  5300. Name *string `type:"string"`
  5301. }
  5302. // String returns the string representation
  5303. func (s AvailabilityZone) String() string {
  5304. return awsutil.Prettify(s)
  5305. }
  5306. // GoString returns the string representation
  5307. func (s AvailabilityZone) GoString() string {
  5308. return s.String()
  5309. }
  5310. // Describes a cluster.
  5311. type Cluster struct {
  5312. _ struct{} `type:"structure"`
  5313. // A Boolean value that, if true, indicates that major version upgrades will
  5314. // be applied automatically to the cluster during the maintenance window.
  5315. AllowVersionUpgrade *bool `type:"boolean"`
  5316. // The number of days that automatic cluster snapshots are retained.
  5317. AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
  5318. // The name of the Availability Zone in which the cluster is located.
  5319. AvailabilityZone *string `type:"string"`
  5320. // The date and time that the cluster was created.
  5321. ClusterCreateTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  5322. // The unique identifier of the cluster.
  5323. ClusterIdentifier *string `type:"string"`
  5324. // The nodes in the cluster.
  5325. ClusterNodes []*ClusterNode `type:"list"`
  5326. // The list of cluster parameter groups that are associated with this cluster.
  5327. // Each parameter group in the list is returned with its status.
  5328. ClusterParameterGroups []*ClusterParameterGroupStatus `locationNameList:"ClusterParameterGroup" type:"list"`
  5329. // The public key for the cluster.
  5330. ClusterPublicKey *string `type:"string"`
  5331. // The specific revision number of the database in the cluster.
  5332. ClusterRevisionNumber *string `type:"string"`
  5333. // A list of cluster security group that are associated with the cluster. Each
  5334. // security group is represented by an element that contains ClusterSecurityGroup.Name
  5335. // and ClusterSecurityGroup.Status subelements.
  5336. //
  5337. // Cluster security groups are used when the cluster is not created in an Amazon
  5338. // Virtual Private Cloud (VPC). Clusters that are created in a VPC use VPC security
  5339. // groups, which are listed by the VpcSecurityGroups parameter.
  5340. ClusterSecurityGroups []*ClusterSecurityGroupMembership `locationNameList:"ClusterSecurityGroup" type:"list"`
  5341. // A value that returns the destination region and retention period that are
  5342. // configured for cross-region snapshot copy.
  5343. ClusterSnapshotCopyStatus *ClusterSnapshotCopyStatus `type:"structure"`
  5344. // The current state of the cluster. Possible values are the following:
  5345. //
  5346. // * available
  5347. //
  5348. // * creating
  5349. //
  5350. // * deleting
  5351. //
  5352. // * final-snapshot
  5353. //
  5354. // * hardware-failure
  5355. //
  5356. // * incompatible-hsm
  5357. //
  5358. // * incompatible-network
  5359. //
  5360. // * incompatible-parameters
  5361. //
  5362. // * incompatible-restore
  5363. //
  5364. // * modifying
  5365. //
  5366. // * rebooting
  5367. //
  5368. // * renaming
  5369. //
  5370. // * resizing
  5371. //
  5372. // * rotating-keys
  5373. //
  5374. // * storage-full
  5375. //
  5376. // * updating-hsm
  5377. ClusterStatus *string `type:"string"`
  5378. // The name of the subnet group that is associated with the cluster. This parameter
  5379. // is valid only when the cluster is in a VPC.
  5380. ClusterSubnetGroupName *string `type:"string"`
  5381. // The version ID of the Amazon Redshift engine that is running on the cluster.
  5382. ClusterVersion *string `type:"string"`
  5383. // The name of the initial database that was created when the cluster was created.
  5384. // This same name is returned for the life of the cluster. If an initial database
  5385. // was not specified, a database named devdev was created by default.
  5386. DBName *string `type:"string"`
  5387. // The status of the elastic IP (EIP) address.
  5388. ElasticIpStatus *ElasticIpStatus `type:"structure"`
  5389. // A Boolean value that, if true, indicates that data in the cluster is encrypted
  5390. // at rest.
  5391. Encrypted *bool `type:"boolean"`
  5392. // The connection endpoint.
  5393. Endpoint *Endpoint `type:"structure"`
  5394. // An option that specifies whether to create the cluster with enhanced VPC
  5395. // routing enabled. To create a cluster that uses enhanced VPC routing, the
  5396. // cluster must be in a VPC. For more information, see Enhanced VPC Routing
  5397. // (http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
  5398. // in the Amazon Redshift Cluster Management Guide.
  5399. //
  5400. // If this option is true, enhanced VPC routing is enabled.
  5401. //
  5402. // Default: false
  5403. EnhancedVpcRouting *bool `type:"boolean"`
  5404. // A value that reports whether the Amazon Redshift cluster has finished applying
  5405. // any hardware security module (HSM) settings changes specified in a modify
  5406. // cluster command.
  5407. //
  5408. // Values: active, applying
  5409. HsmStatus *HsmStatus `type:"structure"`
  5410. // A list of AWS Identity and Access Management (IAM) roles that can be used
  5411. // by the cluster to access other AWS services.
  5412. IamRoles []*ClusterIamRole `locationNameList:"ClusterIamRole" type:"list"`
  5413. // The AWS Key Management Service (AWS KMS) key ID of the encryption key used
  5414. // to encrypt data in the cluster.
  5415. KmsKeyId *string `type:"string"`
  5416. // The master user name for the cluster. This name is used to connect to the
  5417. // database that is specified in the DBName parameter.
  5418. MasterUsername *string `type:"string"`
  5419. // The status of a modify operation, if any, initiated for the cluster.
  5420. ModifyStatus *string `type:"string"`
  5421. // The node type for the nodes in the cluster.
  5422. NodeType *string `type:"string"`
  5423. // The number of compute nodes in the cluster.
  5424. NumberOfNodes *int64 `type:"integer"`
  5425. // A value that, if present, indicates that changes to the cluster are pending.
  5426. // Specific pending changes are identified by subelements.
  5427. PendingModifiedValues *PendingModifiedValues `type:"structure"`
  5428. // The weekly time range, in Universal Coordinated Time (UTC), during which
  5429. // system maintenance can occur.
  5430. PreferredMaintenanceWindow *string `type:"string"`
  5431. // A Boolean value that, if true, indicates that the cluster can be accessed
  5432. // from a public network.
  5433. PubliclyAccessible *bool `type:"boolean"`
  5434. // A value that describes the status of a cluster restore action. This parameter
  5435. // returns null if the cluster was not created by restoring a snapshot.
  5436. RestoreStatus *RestoreStatus `type:"structure"`
  5437. // The list of tags for the cluster.
  5438. Tags []*Tag `locationNameList:"Tag" type:"list"`
  5439. // The identifier of the VPC the cluster is in, if the cluster is in a VPC.
  5440. VpcId *string `type:"string"`
  5441. // A list of Amazon Virtual Private Cloud (Amazon VPC) security groups that
  5442. // are associated with the cluster. This parameter is returned only if the cluster
  5443. // is in a VPC.
  5444. VpcSecurityGroups []*VpcSecurityGroupMembership `locationNameList:"VpcSecurityGroup" type:"list"`
  5445. }
  5446. // String returns the string representation
  5447. func (s Cluster) String() string {
  5448. return awsutil.Prettify(s)
  5449. }
  5450. // GoString returns the string representation
  5451. func (s Cluster) GoString() string {
  5452. return s.String()
  5453. }
  5454. // An AWS Identity and Access Management (IAM) role that can be used by the
  5455. // associated Amazon Redshift cluster to access other AWS services.
  5456. type ClusterIamRole struct {
  5457. _ struct{} `type:"structure"`
  5458. // A value that describes the status of the IAM role's association with an Amazon
  5459. // Redshift cluster.
  5460. //
  5461. // The following are possible statuses and descriptions.
  5462. //
  5463. // * in-sync: The role is available for use by the cluster.
  5464. //
  5465. // * adding: The role is in the process of being associated with the cluster.
  5466. //
  5467. // * removing: The role is in the process of being disassociated with the
  5468. // cluster.
  5469. ApplyStatus *string `type:"string"`
  5470. // The Amazon Resource Name (ARN) of the IAM role, for example, arn:aws:iam::123456789012:role/RedshiftCopyUnload.
  5471. IamRoleArn *string `type:"string"`
  5472. }
  5473. // String returns the string representation
  5474. func (s ClusterIamRole) String() string {
  5475. return awsutil.Prettify(s)
  5476. }
  5477. // GoString returns the string representation
  5478. func (s ClusterIamRole) GoString() string {
  5479. return s.String()
  5480. }
  5481. // The identifier of a node in a cluster.
  5482. type ClusterNode struct {
  5483. _ struct{} `type:"structure"`
  5484. // Whether the node is a leader node or a compute node.
  5485. NodeRole *string `type:"string"`
  5486. // The private IP address of a node within a cluster.
  5487. PrivateIPAddress *string `type:"string"`
  5488. // The public IP address of a node within a cluster.
  5489. PublicIPAddress *string `type:"string"`
  5490. }
  5491. // String returns the string representation
  5492. func (s ClusterNode) String() string {
  5493. return awsutil.Prettify(s)
  5494. }
  5495. // GoString returns the string representation
  5496. func (s ClusterNode) GoString() string {
  5497. return s.String()
  5498. }
  5499. // Describes a parameter group.
  5500. type ClusterParameterGroup struct {
  5501. _ struct{} `type:"structure"`
  5502. // The description of the parameter group.
  5503. Description *string `type:"string"`
  5504. // The name of the cluster parameter group family that this cluster parameter
  5505. // group is compatible with.
  5506. ParameterGroupFamily *string `type:"string"`
  5507. // The name of the cluster parameter group.
  5508. ParameterGroupName *string `type:"string"`
  5509. // The list of tags for the cluster parameter group.
  5510. Tags []*Tag `locationNameList:"Tag" type:"list"`
  5511. }
  5512. // String returns the string representation
  5513. func (s ClusterParameterGroup) String() string {
  5514. return awsutil.Prettify(s)
  5515. }
  5516. // GoString returns the string representation
  5517. func (s ClusterParameterGroup) GoString() string {
  5518. return s.String()
  5519. }
  5520. type ClusterParameterGroupNameMessage struct {
  5521. _ struct{} `type:"structure"`
  5522. // The name of the cluster parameter group.
  5523. ParameterGroupName *string `type:"string"`
  5524. // The status of the parameter group. For example, if you made a change to a
  5525. // parameter group name-value pair, then the change could be pending a reboot
  5526. // of an associated cluster.
  5527. ParameterGroupStatus *string `type:"string"`
  5528. }
  5529. // String returns the string representation
  5530. func (s ClusterParameterGroupNameMessage) String() string {
  5531. return awsutil.Prettify(s)
  5532. }
  5533. // GoString returns the string representation
  5534. func (s ClusterParameterGroupNameMessage) GoString() string {
  5535. return s.String()
  5536. }
  5537. // Describes the status of a parameter group.
  5538. type ClusterParameterGroupStatus struct {
  5539. _ struct{} `type:"structure"`
  5540. // The list of parameter statuses.
  5541. //
  5542. // For more information about parameters and parameter groups, go to Amazon
  5543. // Redshift Parameter Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
  5544. // in the Amazon Redshift Cluster Management Guide.
  5545. ClusterParameterStatusList []*ClusterParameterStatus `type:"list"`
  5546. // The status of parameter updates.
  5547. ParameterApplyStatus *string `type:"string"`
  5548. // The name of the cluster parameter group.
  5549. ParameterGroupName *string `type:"string"`
  5550. }
  5551. // String returns the string representation
  5552. func (s ClusterParameterGroupStatus) String() string {
  5553. return awsutil.Prettify(s)
  5554. }
  5555. // GoString returns the string representation
  5556. func (s ClusterParameterGroupStatus) GoString() string {
  5557. return s.String()
  5558. }
  5559. // Describes the status of a parameter group.
  5560. type ClusterParameterStatus struct {
  5561. _ struct{} `type:"structure"`
  5562. // The error that prevented the parameter from being applied to the database.
  5563. ParameterApplyErrorDescription *string `type:"string"`
  5564. // The status of the parameter that indicates whether the parameter is in sync
  5565. // with the database, waiting for a cluster reboot, or encountered an error
  5566. // when being applied.
  5567. //
  5568. // The following are possible statuses and descriptions.
  5569. //
  5570. // * in-sync: The parameter value is in sync with the database.
  5571. //
  5572. // * pending-reboot: The parameter value will be applied after the cluster
  5573. // reboots.
  5574. //
  5575. // * applying: The parameter value is being applied to the database.
  5576. //
  5577. // * invalid-parameter: Cannot apply the parameter value because it has an
  5578. // invalid value or syntax.
  5579. //
  5580. // * apply-deferred: The parameter contains static property changes. The
  5581. // changes are deferred until the cluster reboots.
  5582. //
  5583. // * apply-error: Cannot connect to the cluster. The parameter change will
  5584. // be applied after the cluster reboots.
  5585. //
  5586. // * unknown-error: Cannot apply the parameter change right now. The change
  5587. // will be applied after the cluster reboots.
  5588. ParameterApplyStatus *string `type:"string"`
  5589. // The name of the parameter.
  5590. ParameterName *string `type:"string"`
  5591. }
  5592. // String returns the string representation
  5593. func (s ClusterParameterStatus) String() string {
  5594. return awsutil.Prettify(s)
  5595. }
  5596. // GoString returns the string representation
  5597. func (s ClusterParameterStatus) GoString() string {
  5598. return s.String()
  5599. }
  5600. // Describes a security group.
  5601. type ClusterSecurityGroup struct {
  5602. _ struct{} `type:"structure"`
  5603. // The name of the cluster security group to which the operation was applied.
  5604. ClusterSecurityGroupName *string `type:"string"`
  5605. // A description of the security group.
  5606. Description *string `type:"string"`
  5607. // A list of EC2 security groups that are permitted to access clusters associated
  5608. // with this cluster security group.
  5609. EC2SecurityGroups []*EC2SecurityGroup `locationNameList:"EC2SecurityGroup" type:"list"`
  5610. // A list of IP ranges (CIDR blocks) that are permitted to access clusters associated
  5611. // with this cluster security group.
  5612. IPRanges []*IPRange `locationNameList:"IPRange" type:"list"`
  5613. // The list of tags for the cluster security group.
  5614. Tags []*Tag `locationNameList:"Tag" type:"list"`
  5615. }
  5616. // String returns the string representation
  5617. func (s ClusterSecurityGroup) String() string {
  5618. return awsutil.Prettify(s)
  5619. }
  5620. // GoString returns the string representation
  5621. func (s ClusterSecurityGroup) GoString() string {
  5622. return s.String()
  5623. }
  5624. // Describes a cluster security group.
  5625. type ClusterSecurityGroupMembership struct {
  5626. _ struct{} `type:"structure"`
  5627. // The name of the cluster security group.
  5628. ClusterSecurityGroupName *string `type:"string"`
  5629. // The status of the cluster security group.
  5630. Status *string `type:"string"`
  5631. }
  5632. // String returns the string representation
  5633. func (s ClusterSecurityGroupMembership) String() string {
  5634. return awsutil.Prettify(s)
  5635. }
  5636. // GoString returns the string representation
  5637. func (s ClusterSecurityGroupMembership) GoString() string {
  5638. return s.String()
  5639. }
  5640. // Returns the destination region and retention period that are configured for
  5641. // cross-region snapshot copy.
  5642. type ClusterSnapshotCopyStatus struct {
  5643. _ struct{} `type:"structure"`
  5644. // The destination region that snapshots are automatically copied to when cross-region
  5645. // snapshot copy is enabled.
  5646. DestinationRegion *string `type:"string"`
  5647. // The number of days that automated snapshots are retained in the destination
  5648. // region after they are copied from a source region.
  5649. RetentionPeriod *int64 `type:"long"`
  5650. // The name of the snapshot copy grant.
  5651. SnapshotCopyGrantName *string `type:"string"`
  5652. }
  5653. // String returns the string representation
  5654. func (s ClusterSnapshotCopyStatus) String() string {
  5655. return awsutil.Prettify(s)
  5656. }
  5657. // GoString returns the string representation
  5658. func (s ClusterSnapshotCopyStatus) GoString() string {
  5659. return s.String()
  5660. }
  5661. // Describes a subnet group.
  5662. type ClusterSubnetGroup struct {
  5663. _ struct{} `type:"structure"`
  5664. // The name of the cluster subnet group.
  5665. ClusterSubnetGroupName *string `type:"string"`
  5666. // The description of the cluster subnet group.
  5667. Description *string `type:"string"`
  5668. // The status of the cluster subnet group. Possible values are Complete, Incomplete
  5669. // and Invalid.
  5670. SubnetGroupStatus *string `type:"string"`
  5671. // A list of the VPC Subnet elements.
  5672. Subnets []*Subnet `locationNameList:"Subnet" type:"list"`
  5673. // The list of tags for the cluster subnet group.
  5674. Tags []*Tag `locationNameList:"Tag" type:"list"`
  5675. // The VPC ID of the cluster subnet group.
  5676. VpcId *string `type:"string"`
  5677. }
  5678. // String returns the string representation
  5679. func (s ClusterSubnetGroup) String() string {
  5680. return awsutil.Prettify(s)
  5681. }
  5682. // GoString returns the string representation
  5683. func (s ClusterSubnetGroup) GoString() string {
  5684. return s.String()
  5685. }
  5686. // Describes a cluster version, including the parameter group family and description
  5687. // of the version.
  5688. type ClusterVersion struct {
  5689. _ struct{} `type:"structure"`
  5690. // The name of the cluster parameter group family for the cluster.
  5691. ClusterParameterGroupFamily *string `type:"string"`
  5692. // The version number used by the cluster.
  5693. ClusterVersion *string `type:"string"`
  5694. // The description of the cluster version.
  5695. Description *string `type:"string"`
  5696. }
  5697. // String returns the string representation
  5698. func (s ClusterVersion) String() string {
  5699. return awsutil.Prettify(s)
  5700. }
  5701. // GoString returns the string representation
  5702. func (s ClusterVersion) GoString() string {
  5703. return s.String()
  5704. }
  5705. type CopyClusterSnapshotInput struct {
  5706. _ struct{} `type:"structure"`
  5707. // The identifier of the cluster the source snapshot was created from. This
  5708. // parameter is required if your IAM user has a policy containing a snapshot
  5709. // resource element that specifies anything other than * for the cluster name.
  5710. //
  5711. // Constraints:
  5712. //
  5713. // * Must be the identifier for a valid cluster.
  5714. SourceSnapshotClusterIdentifier *string `type:"string"`
  5715. // The identifier for the source snapshot.
  5716. //
  5717. // Constraints:
  5718. //
  5719. // * Must be the identifier for a valid automated snapshot whose state is
  5720. // available.
  5721. //
  5722. // SourceSnapshotIdentifier is a required field
  5723. SourceSnapshotIdentifier *string `type:"string" required:"true"`
  5724. // The identifier given to the new manual snapshot.
  5725. //
  5726. // Constraints:
  5727. //
  5728. // * Cannot be null, empty, or blank.
  5729. //
  5730. // * Must contain from 1 to 255 alphanumeric characters or hyphens.
  5731. //
  5732. // * First character must be a letter.
  5733. //
  5734. // * Cannot end with a hyphen or contain two consecutive hyphens.
  5735. //
  5736. // * Must be unique for the AWS account that is making the request.
  5737. //
  5738. // TargetSnapshotIdentifier is a required field
  5739. TargetSnapshotIdentifier *string `type:"string" required:"true"`
  5740. }
  5741. // String returns the string representation
  5742. func (s CopyClusterSnapshotInput) String() string {
  5743. return awsutil.Prettify(s)
  5744. }
  5745. // GoString returns the string representation
  5746. func (s CopyClusterSnapshotInput) GoString() string {
  5747. return s.String()
  5748. }
  5749. // Validate inspects the fields of the type to determine if they are valid.
  5750. func (s *CopyClusterSnapshotInput) Validate() error {
  5751. invalidParams := request.ErrInvalidParams{Context: "CopyClusterSnapshotInput"}
  5752. if s.SourceSnapshotIdentifier == nil {
  5753. invalidParams.Add(request.NewErrParamRequired("SourceSnapshotIdentifier"))
  5754. }
  5755. if s.TargetSnapshotIdentifier == nil {
  5756. invalidParams.Add(request.NewErrParamRequired("TargetSnapshotIdentifier"))
  5757. }
  5758. if invalidParams.Len() > 0 {
  5759. return invalidParams
  5760. }
  5761. return nil
  5762. }
  5763. type CopyClusterSnapshotOutput struct {
  5764. _ struct{} `type:"structure"`
  5765. // Describes a snapshot.
  5766. Snapshot *Snapshot `type:"structure"`
  5767. }
  5768. // String returns the string representation
  5769. func (s CopyClusterSnapshotOutput) String() string {
  5770. return awsutil.Prettify(s)
  5771. }
  5772. // GoString returns the string representation
  5773. func (s CopyClusterSnapshotOutput) GoString() string {
  5774. return s.String()
  5775. }
  5776. type CreateClusterInput struct {
  5777. _ struct{} `type:"structure"`
  5778. // Reserved.
  5779. AdditionalInfo *string `type:"string"`
  5780. // If true, major version upgrades can be applied during the maintenance window
  5781. // to the Amazon Redshift engine that is running on the cluster.
  5782. //
  5783. // When a new major version of the Amazon Redshift engine is released, you can
  5784. // request that the service automatically apply upgrades during the maintenance
  5785. // window to the Amazon Redshift engine that is running on your cluster.
  5786. //
  5787. // Default: true
  5788. AllowVersionUpgrade *bool `type:"boolean"`
  5789. // The number of days that automated snapshots are retained. If the value is
  5790. // 0, automated snapshots are disabled. Even if automated snapshots are disabled,
  5791. // you can still create manual snapshots when you want with CreateClusterSnapshot.
  5792. //
  5793. // Default: 1
  5794. //
  5795. // Constraints: Must be a value from 0 to 35.
  5796. AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
  5797. // The EC2 Availability Zone (AZ) in which you want Amazon Redshift to provision
  5798. // the cluster. For example, if you have several EC2 instances running in a
  5799. // specific Availability Zone, then you might want the cluster to be provisioned
  5800. // in the same zone in order to decrease network latency.
  5801. //
  5802. // Default: A random, system-chosen Availability Zone in the region that is
  5803. // specified by the endpoint.
  5804. //
  5805. // Example: us-east-1d
  5806. //
  5807. // Constraint: The specified Availability Zone must be in the same region as
  5808. // the current endpoint.
  5809. AvailabilityZone *string `type:"string"`
  5810. // A unique identifier for the cluster. You use this identifier to refer to
  5811. // the cluster for any subsequent cluster operations such as deleting or modifying.
  5812. // The identifier also appears in the Amazon Redshift console.
  5813. //
  5814. // Constraints:
  5815. //
  5816. // * Must contain from 1 to 63 alphanumeric characters or hyphens.
  5817. //
  5818. // * Alphabetic characters must be lowercase.
  5819. //
  5820. // * First character must be a letter.
  5821. //
  5822. // * Cannot end with a hyphen or contain two consecutive hyphens.
  5823. //
  5824. // * Must be unique for all clusters within an AWS account.
  5825. //
  5826. // Example: myexamplecluster
  5827. //
  5828. // ClusterIdentifier is a required field
  5829. ClusterIdentifier *string `type:"string" required:"true"`
  5830. // The name of the parameter group to be associated with this cluster.
  5831. //
  5832. // Default: The default Amazon Redshift cluster parameter group. For information
  5833. // about the default parameter group, go to Working with Amazon Redshift Parameter
  5834. // Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
  5835. //
  5836. // Constraints:
  5837. //
  5838. // * Must be 1 to 255 alphanumeric characters or hyphens.
  5839. //
  5840. // * First character must be a letter.
  5841. //
  5842. // * Cannot end with a hyphen or contain two consecutive hyphens.
  5843. ClusterParameterGroupName *string `type:"string"`
  5844. // A list of security groups to be associated with this cluster.
  5845. //
  5846. // Default: The default cluster security group for Amazon Redshift.
  5847. ClusterSecurityGroups []*string `locationNameList:"ClusterSecurityGroupName" type:"list"`
  5848. // The name of a cluster subnet group to be associated with this cluster.
  5849. //
  5850. // If this parameter is not provided the resulting cluster will be deployed
  5851. // outside virtual private cloud (VPC).
  5852. ClusterSubnetGroupName *string `type:"string"`
  5853. // The type of the cluster. When cluster type is specified as
  5854. //
  5855. // * single-node, the NumberOfNodes parameter is not required.
  5856. //
  5857. // * multi-node, the NumberOfNodes parameter is required.
  5858. //
  5859. // Valid Values: multi-node | single-node
  5860. //
  5861. // Default: multi-node
  5862. ClusterType *string `type:"string"`
  5863. // The version of the Amazon Redshift engine software that you want to deploy
  5864. // on the cluster.
  5865. //
  5866. // The version selected runs on all the nodes in the cluster.
  5867. //
  5868. // Constraints: Only version 1.0 is currently available.
  5869. //
  5870. // Example: 1.0
  5871. ClusterVersion *string `type:"string"`
  5872. // The name of the first database to be created when the cluster is created.
  5873. //
  5874. // To create additional databases after the cluster is created, connect to the
  5875. // cluster with a SQL client and use SQL commands to create a database. For
  5876. // more information, go to Create a Database (http://docs.aws.amazon.com/redshift/latest/dg/t_creating_database.html)
  5877. // in the Amazon Redshift Database Developer Guide.
  5878. //
  5879. // Default: dev
  5880. //
  5881. // Constraints:
  5882. //
  5883. // * Must contain 1 to 64 alphanumeric characters.
  5884. //
  5885. // * Must contain only lowercase letters.
  5886. //
  5887. // * Cannot be a word that is reserved by the service. A list of reserved
  5888. // words can be found in Reserved Words (http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html)
  5889. // in the Amazon Redshift Database Developer Guide.
  5890. DBName *string `type:"string"`
  5891. // The Elastic IP (EIP) address for the cluster.
  5892. //
  5893. // Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible
  5894. // through an Internet gateway. For more information about provisioning clusters
  5895. // in EC2-VPC, go to Supported Platforms to Launch Your Cluster (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#cluster-platforms)
  5896. // in the Amazon Redshift Cluster Management Guide.
  5897. ElasticIp *string `type:"string"`
  5898. // If true, the data in the cluster is encrypted at rest.
  5899. //
  5900. // Default: false
  5901. Encrypted *bool `type:"boolean"`
  5902. // An option that specifies whether to create the cluster with enhanced VPC
  5903. // routing enabled. To create a cluster that uses enhanced VPC routing, the
  5904. // cluster must be in a VPC. For more information, see Enhanced VPC Routing
  5905. // (http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
  5906. // in the Amazon Redshift Cluster Management Guide.
  5907. //
  5908. // If this option is true, enhanced VPC routing is enabled.
  5909. //
  5910. // Default: false
  5911. EnhancedVpcRouting *bool `type:"boolean"`
  5912. // Specifies the name of the HSM client certificate the Amazon Redshift cluster
  5913. // uses to retrieve the data encryption keys stored in an HSM.
  5914. HsmClientCertificateIdentifier *string `type:"string"`
  5915. // Specifies the name of the HSM configuration that contains the information
  5916. // the Amazon Redshift cluster can use to retrieve and store keys in an HSM.
  5917. HsmConfigurationIdentifier *string `type:"string"`
  5918. // A list of AWS Identity and Access Management (IAM) roles that can be used
  5919. // by the cluster to access other AWS services. You must supply the IAM roles
  5920. // in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM roles
  5921. // in a single request.
  5922. //
  5923. // A cluster can have up to 10 IAM roles associated with it at any time.
  5924. IamRoles []*string `locationNameList:"IamRoleArn" type:"list"`
  5925. // The AWS Key Management Service (KMS) key ID of the encryption key that you
  5926. // want to use to encrypt data in the cluster.
  5927. KmsKeyId *string `type:"string"`
  5928. // The password associated with the master user account for the cluster that
  5929. // is being created.
  5930. //
  5931. // Constraints:
  5932. //
  5933. // * Must be between 8 and 64 characters in length.
  5934. //
  5935. // * Must contain at least one uppercase letter.
  5936. //
  5937. // * Must contain at least one lowercase letter.
  5938. //
  5939. // * Must contain one number.
  5940. //
  5941. // * Can be any printable ASCII character (ASCII code 33 to 126) except '
  5942. // (single quote), " (double quote), \, /, @, or space.
  5943. //
  5944. // MasterUserPassword is a required field
  5945. MasterUserPassword *string `type:"string" required:"true"`
  5946. // The user name associated with the master user account for the cluster that
  5947. // is being created.
  5948. //
  5949. // Constraints:
  5950. //
  5951. // * Must be 1 - 128 alphanumeric characters.
  5952. //
  5953. // * First character must be a letter.
  5954. //
  5955. // * Cannot be a reserved word. A list of reserved words can be found in
  5956. // Reserved Words (http://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html)
  5957. // in the Amazon Redshift Database Developer Guide.
  5958. //
  5959. // MasterUsername is a required field
  5960. MasterUsername *string `type:"string" required:"true"`
  5961. // The node type to be provisioned for the cluster. For information about node
  5962. // types, go to Working with Clusters (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes)
  5963. // in the Amazon Redshift Cluster Management Guide.
  5964. //
  5965. // Valid Values: ds1.xlarge | ds1.8xlarge | ds2.xlarge | ds2.8xlarge | dc1.large
  5966. // | dc1.8xlarge.
  5967. //
  5968. // NodeType is a required field
  5969. NodeType *string `type:"string" required:"true"`
  5970. // The number of compute nodes in the cluster. This parameter is required when
  5971. // the ClusterType parameter is specified as multi-node.
  5972. //
  5973. // For information about determining how many nodes you need, go to Working
  5974. // with Clusters (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes)
  5975. // in the Amazon Redshift Cluster Management Guide.
  5976. //
  5977. // If you don't specify this parameter, you get a single-node cluster. When
  5978. // requesting a multi-node cluster, you must specify the number of nodes that
  5979. // you want in the cluster.
  5980. //
  5981. // Default: 1
  5982. //
  5983. // Constraints: Value must be at least 1 and no more than 100.
  5984. NumberOfNodes *int64 `type:"integer"`
  5985. // The port number on which the cluster accepts incoming connections.
  5986. //
  5987. // The cluster is accessible only via the JDBC and ODBC connection strings.
  5988. // Part of the connection string requires the port on which the cluster will
  5989. // listen for incoming connections.
  5990. //
  5991. // Default: 5439
  5992. //
  5993. // Valid Values: 1150-65535
  5994. Port *int64 `type:"integer"`
  5995. // The weekly time range (in UTC) during which automated cluster maintenance
  5996. // can occur.
  5997. //
  5998. // Format: ddd:hh24:mi-ddd:hh24:mi
  5999. //
  6000. // Default: A 30-minute window selected at random from an 8-hour block of time
  6001. // per region, occurring on a random day of the week. For more information about
  6002. // the time blocks for each region, see Maintenance Windows (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows)
  6003. // in Amazon Redshift Cluster Management Guide.
  6004. //
  6005. // Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
  6006. //
  6007. // Constraints: Minimum 30-minute window.
  6008. PreferredMaintenanceWindow *string `type:"string"`
  6009. // If true, the cluster can be accessed from a public network.
  6010. PubliclyAccessible *bool `type:"boolean"`
  6011. // A list of tag instances.
  6012. Tags []*Tag `locationNameList:"Tag" type:"list"`
  6013. // A list of Virtual Private Cloud (VPC) security groups to be associated with
  6014. // the cluster.
  6015. //
  6016. // Default: The default VPC security group is associated with the cluster.
  6017. VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
  6018. }
  6019. // String returns the string representation
  6020. func (s CreateClusterInput) String() string {
  6021. return awsutil.Prettify(s)
  6022. }
  6023. // GoString returns the string representation
  6024. func (s CreateClusterInput) GoString() string {
  6025. return s.String()
  6026. }
  6027. // Validate inspects the fields of the type to determine if they are valid.
  6028. func (s *CreateClusterInput) Validate() error {
  6029. invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
  6030. if s.ClusterIdentifier == nil {
  6031. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  6032. }
  6033. if s.MasterUserPassword == nil {
  6034. invalidParams.Add(request.NewErrParamRequired("MasterUserPassword"))
  6035. }
  6036. if s.MasterUsername == nil {
  6037. invalidParams.Add(request.NewErrParamRequired("MasterUsername"))
  6038. }
  6039. if s.NodeType == nil {
  6040. invalidParams.Add(request.NewErrParamRequired("NodeType"))
  6041. }
  6042. if invalidParams.Len() > 0 {
  6043. return invalidParams
  6044. }
  6045. return nil
  6046. }
  6047. type CreateClusterOutput struct {
  6048. _ struct{} `type:"structure"`
  6049. // Describes a cluster.
  6050. Cluster *Cluster `type:"structure"`
  6051. }
  6052. // String returns the string representation
  6053. func (s CreateClusterOutput) String() string {
  6054. return awsutil.Prettify(s)
  6055. }
  6056. // GoString returns the string representation
  6057. func (s CreateClusterOutput) GoString() string {
  6058. return s.String()
  6059. }
  6060. type CreateClusterParameterGroupInput struct {
  6061. _ struct{} `type:"structure"`
  6062. // A description of the parameter group.
  6063. //
  6064. // Description is a required field
  6065. Description *string `type:"string" required:"true"`
  6066. // The Amazon Redshift engine version to which the cluster parameter group applies.
  6067. // The cluster engine version determines the set of parameters.
  6068. //
  6069. // To get a list of valid parameter group family names, you can call DescribeClusterParameterGroups.
  6070. // By default, Amazon Redshift returns a list of all the parameter groups that
  6071. // are owned by your AWS account, including the default parameter groups for
  6072. // each Amazon Redshift engine version. The parameter group family names associated
  6073. // with the default parameter groups provide you the valid values. For example,
  6074. // a valid family name is "redshift-1.0".
  6075. //
  6076. // ParameterGroupFamily is a required field
  6077. ParameterGroupFamily *string `type:"string" required:"true"`
  6078. // The name of the cluster parameter group.
  6079. //
  6080. // Constraints:
  6081. //
  6082. // * Must be 1 to 255 alphanumeric characters or hyphens
  6083. //
  6084. // * First character must be a letter.
  6085. //
  6086. // * Cannot end with a hyphen or contain two consecutive hyphens.
  6087. //
  6088. // * Must be unique withing your AWS account.
  6089. //
  6090. // This value is stored as a lower-case string.
  6091. //
  6092. // ParameterGroupName is a required field
  6093. ParameterGroupName *string `type:"string" required:"true"`
  6094. // A list of tag instances.
  6095. Tags []*Tag `locationNameList:"Tag" type:"list"`
  6096. }
  6097. // String returns the string representation
  6098. func (s CreateClusterParameterGroupInput) String() string {
  6099. return awsutil.Prettify(s)
  6100. }
  6101. // GoString returns the string representation
  6102. func (s CreateClusterParameterGroupInput) GoString() string {
  6103. return s.String()
  6104. }
  6105. // Validate inspects the fields of the type to determine if they are valid.
  6106. func (s *CreateClusterParameterGroupInput) Validate() error {
  6107. invalidParams := request.ErrInvalidParams{Context: "CreateClusterParameterGroupInput"}
  6108. if s.Description == nil {
  6109. invalidParams.Add(request.NewErrParamRequired("Description"))
  6110. }
  6111. if s.ParameterGroupFamily == nil {
  6112. invalidParams.Add(request.NewErrParamRequired("ParameterGroupFamily"))
  6113. }
  6114. if s.ParameterGroupName == nil {
  6115. invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
  6116. }
  6117. if invalidParams.Len() > 0 {
  6118. return invalidParams
  6119. }
  6120. return nil
  6121. }
  6122. type CreateClusterParameterGroupOutput struct {
  6123. _ struct{} `type:"structure"`
  6124. // Describes a parameter group.
  6125. ClusterParameterGroup *ClusterParameterGroup `type:"structure"`
  6126. }
  6127. // String returns the string representation
  6128. func (s CreateClusterParameterGroupOutput) String() string {
  6129. return awsutil.Prettify(s)
  6130. }
  6131. // GoString returns the string representation
  6132. func (s CreateClusterParameterGroupOutput) GoString() string {
  6133. return s.String()
  6134. }
  6135. type CreateClusterSecurityGroupInput struct {
  6136. _ struct{} `type:"structure"`
  6137. // The name for the security group. Amazon Redshift stores the value as a lowercase
  6138. // string.
  6139. //
  6140. // Constraints:
  6141. //
  6142. // * Must contain no more than 255 alphanumeric characters or hyphens.
  6143. //
  6144. // * Must not be "Default".
  6145. //
  6146. // * Must be unique for all security groups that are created by your AWS
  6147. // account.
  6148. //
  6149. // Example: examplesecuritygroup
  6150. //
  6151. // ClusterSecurityGroupName is a required field
  6152. ClusterSecurityGroupName *string `type:"string" required:"true"`
  6153. // A description for the security group.
  6154. //
  6155. // Description is a required field
  6156. Description *string `type:"string" required:"true"`
  6157. // A list of tag instances.
  6158. Tags []*Tag `locationNameList:"Tag" type:"list"`
  6159. }
  6160. // String returns the string representation
  6161. func (s CreateClusterSecurityGroupInput) String() string {
  6162. return awsutil.Prettify(s)
  6163. }
  6164. // GoString returns the string representation
  6165. func (s CreateClusterSecurityGroupInput) GoString() string {
  6166. return s.String()
  6167. }
  6168. // Validate inspects the fields of the type to determine if they are valid.
  6169. func (s *CreateClusterSecurityGroupInput) Validate() error {
  6170. invalidParams := request.ErrInvalidParams{Context: "CreateClusterSecurityGroupInput"}
  6171. if s.ClusterSecurityGroupName == nil {
  6172. invalidParams.Add(request.NewErrParamRequired("ClusterSecurityGroupName"))
  6173. }
  6174. if s.Description == nil {
  6175. invalidParams.Add(request.NewErrParamRequired("Description"))
  6176. }
  6177. if invalidParams.Len() > 0 {
  6178. return invalidParams
  6179. }
  6180. return nil
  6181. }
  6182. type CreateClusterSecurityGroupOutput struct {
  6183. _ struct{} `type:"structure"`
  6184. // Describes a security group.
  6185. ClusterSecurityGroup *ClusterSecurityGroup `type:"structure"`
  6186. }
  6187. // String returns the string representation
  6188. func (s CreateClusterSecurityGroupOutput) String() string {
  6189. return awsutil.Prettify(s)
  6190. }
  6191. // GoString returns the string representation
  6192. func (s CreateClusterSecurityGroupOutput) GoString() string {
  6193. return s.String()
  6194. }
  6195. type CreateClusterSnapshotInput struct {
  6196. _ struct{} `type:"structure"`
  6197. // The cluster identifier for which you want a snapshot.
  6198. //
  6199. // ClusterIdentifier is a required field
  6200. ClusterIdentifier *string `type:"string" required:"true"`
  6201. // A unique identifier for the snapshot that you are requesting. This identifier
  6202. // must be unique for all snapshots within the AWS account.
  6203. //
  6204. // Constraints:
  6205. //
  6206. // * Cannot be null, empty, or blank
  6207. //
  6208. // * Must contain from 1 to 255 alphanumeric characters or hyphens
  6209. //
  6210. // * First character must be a letter
  6211. //
  6212. // * Cannot end with a hyphen or contain two consecutive hyphens
  6213. //
  6214. // Example: my-snapshot-id
  6215. //
  6216. // SnapshotIdentifier is a required field
  6217. SnapshotIdentifier *string `type:"string" required:"true"`
  6218. // A list of tag instances.
  6219. Tags []*Tag `locationNameList:"Tag" type:"list"`
  6220. }
  6221. // String returns the string representation
  6222. func (s CreateClusterSnapshotInput) String() string {
  6223. return awsutil.Prettify(s)
  6224. }
  6225. // GoString returns the string representation
  6226. func (s CreateClusterSnapshotInput) GoString() string {
  6227. return s.String()
  6228. }
  6229. // Validate inspects the fields of the type to determine if they are valid.
  6230. func (s *CreateClusterSnapshotInput) Validate() error {
  6231. invalidParams := request.ErrInvalidParams{Context: "CreateClusterSnapshotInput"}
  6232. if s.ClusterIdentifier == nil {
  6233. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  6234. }
  6235. if s.SnapshotIdentifier == nil {
  6236. invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
  6237. }
  6238. if invalidParams.Len() > 0 {
  6239. return invalidParams
  6240. }
  6241. return nil
  6242. }
  6243. type CreateClusterSnapshotOutput struct {
  6244. _ struct{} `type:"structure"`
  6245. // Describes a snapshot.
  6246. Snapshot *Snapshot `type:"structure"`
  6247. }
  6248. // String returns the string representation
  6249. func (s CreateClusterSnapshotOutput) String() string {
  6250. return awsutil.Prettify(s)
  6251. }
  6252. // GoString returns the string representation
  6253. func (s CreateClusterSnapshotOutput) GoString() string {
  6254. return s.String()
  6255. }
  6256. type CreateClusterSubnetGroupInput struct {
  6257. _ struct{} `type:"structure"`
  6258. // The name for the subnet group. Amazon Redshift stores the value as a lowercase
  6259. // string.
  6260. //
  6261. // Constraints:
  6262. //
  6263. // * Must contain no more than 255 alphanumeric characters or hyphens.
  6264. //
  6265. // * Must not be "Default".
  6266. //
  6267. // * Must be unique for all subnet groups that are created by your AWS account.
  6268. //
  6269. // Example: examplesubnetgroup
  6270. //
  6271. // ClusterSubnetGroupName is a required field
  6272. ClusterSubnetGroupName *string `type:"string" required:"true"`
  6273. // A description for the subnet group.
  6274. //
  6275. // Description is a required field
  6276. Description *string `type:"string" required:"true"`
  6277. // An array of VPC subnet IDs. A maximum of 20 subnets can be modified in a
  6278. // single request.
  6279. //
  6280. // SubnetIds is a required field
  6281. SubnetIds []*string `locationNameList:"SubnetIdentifier" type:"list" required:"true"`
  6282. // A list of tag instances.
  6283. Tags []*Tag `locationNameList:"Tag" type:"list"`
  6284. }
  6285. // String returns the string representation
  6286. func (s CreateClusterSubnetGroupInput) String() string {
  6287. return awsutil.Prettify(s)
  6288. }
  6289. // GoString returns the string representation
  6290. func (s CreateClusterSubnetGroupInput) GoString() string {
  6291. return s.String()
  6292. }
  6293. // Validate inspects the fields of the type to determine if they are valid.
  6294. func (s *CreateClusterSubnetGroupInput) Validate() error {
  6295. invalidParams := request.ErrInvalidParams{Context: "CreateClusterSubnetGroupInput"}
  6296. if s.ClusterSubnetGroupName == nil {
  6297. invalidParams.Add(request.NewErrParamRequired("ClusterSubnetGroupName"))
  6298. }
  6299. if s.Description == nil {
  6300. invalidParams.Add(request.NewErrParamRequired("Description"))
  6301. }
  6302. if s.SubnetIds == nil {
  6303. invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
  6304. }
  6305. if invalidParams.Len() > 0 {
  6306. return invalidParams
  6307. }
  6308. return nil
  6309. }
  6310. type CreateClusterSubnetGroupOutput struct {
  6311. _ struct{} `type:"structure"`
  6312. // Describes a subnet group.
  6313. ClusterSubnetGroup *ClusterSubnetGroup `type:"structure"`
  6314. }
  6315. // String returns the string representation
  6316. func (s CreateClusterSubnetGroupOutput) String() string {
  6317. return awsutil.Prettify(s)
  6318. }
  6319. // GoString returns the string representation
  6320. func (s CreateClusterSubnetGroupOutput) GoString() string {
  6321. return s.String()
  6322. }
  6323. type CreateEventSubscriptionInput struct {
  6324. _ struct{} `type:"structure"`
  6325. // A Boolean value; set to true to activate the subscription, set to false to
  6326. // create the subscription but not active it.
  6327. Enabled *bool `type:"boolean"`
  6328. // Specifies the Amazon Redshift event categories to be published by the event
  6329. // notification subscription.
  6330. //
  6331. // Values: Configuration, Management, Monitoring, Security
  6332. EventCategories []*string `locationNameList:"EventCategory" type:"list"`
  6333. // Specifies the Amazon Redshift event severity to be published by the event
  6334. // notification subscription.
  6335. //
  6336. // Values: ERROR, INFO
  6337. Severity *string `type:"string"`
  6338. // The Amazon Resource Name (ARN) of the Amazon SNS topic used to transmit the
  6339. // event notifications. The ARN is created by Amazon SNS when you create a topic
  6340. // and subscribe to it.
  6341. //
  6342. // SnsTopicArn is a required field
  6343. SnsTopicArn *string `type:"string" required:"true"`
  6344. // A list of one or more identifiers of Amazon Redshift source objects. All
  6345. // of the objects must be of the same type as was specified in the source type
  6346. // parameter. The event subscription will return only events generated by the
  6347. // specified objects. If not specified, then events are returned for all objects
  6348. // within the source type specified.
  6349. //
  6350. // Example: my-cluster-1, my-cluster-2
  6351. //
  6352. // Example: my-snapshot-20131010
  6353. SourceIds []*string `locationNameList:"SourceId" type:"list"`
  6354. // The type of source that will be generating the events. For example, if you
  6355. // want to be notified of events generated by a cluster, you would set this
  6356. // parameter to cluster. If this value is not specified, events are returned
  6357. // for all Amazon Redshift objects in your AWS account. You must specify a source
  6358. // type in order to specify source IDs.
  6359. //
  6360. // Valid values: cluster, cluster-parameter-group, cluster-security-group, and
  6361. // cluster-snapshot.
  6362. SourceType *string `type:"string"`
  6363. // The name of the event subscription to be created.
  6364. //
  6365. // Constraints:
  6366. //
  6367. // * Cannot be null, empty, or blank.
  6368. //
  6369. // * Must contain from 1 to 255 alphanumeric characters or hyphens.
  6370. //
  6371. // * First character must be a letter.
  6372. //
  6373. // * Cannot end with a hyphen or contain two consecutive hyphens.
  6374. //
  6375. // SubscriptionName is a required field
  6376. SubscriptionName *string `type:"string" required:"true"`
  6377. // A list of tag instances.
  6378. Tags []*Tag `locationNameList:"Tag" type:"list"`
  6379. }
  6380. // String returns the string representation
  6381. func (s CreateEventSubscriptionInput) String() string {
  6382. return awsutil.Prettify(s)
  6383. }
  6384. // GoString returns the string representation
  6385. func (s CreateEventSubscriptionInput) GoString() string {
  6386. return s.String()
  6387. }
  6388. // Validate inspects the fields of the type to determine if they are valid.
  6389. func (s *CreateEventSubscriptionInput) Validate() error {
  6390. invalidParams := request.ErrInvalidParams{Context: "CreateEventSubscriptionInput"}
  6391. if s.SnsTopicArn == nil {
  6392. invalidParams.Add(request.NewErrParamRequired("SnsTopicArn"))
  6393. }
  6394. if s.SubscriptionName == nil {
  6395. invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
  6396. }
  6397. if invalidParams.Len() > 0 {
  6398. return invalidParams
  6399. }
  6400. return nil
  6401. }
  6402. type CreateEventSubscriptionOutput struct {
  6403. _ struct{} `type:"structure"`
  6404. // Describes event subscriptions.
  6405. EventSubscription *EventSubscription `type:"structure"`
  6406. }
  6407. // String returns the string representation
  6408. func (s CreateEventSubscriptionOutput) String() string {
  6409. return awsutil.Prettify(s)
  6410. }
  6411. // GoString returns the string representation
  6412. func (s CreateEventSubscriptionOutput) GoString() string {
  6413. return s.String()
  6414. }
  6415. type CreateHsmClientCertificateInput struct {
  6416. _ struct{} `type:"structure"`
  6417. // The identifier to be assigned to the new HSM client certificate that the
  6418. // cluster will use to connect to the HSM to use the database encryption keys.
  6419. //
  6420. // HsmClientCertificateIdentifier is a required field
  6421. HsmClientCertificateIdentifier *string `type:"string" required:"true"`
  6422. // A list of tag instances.
  6423. Tags []*Tag `locationNameList:"Tag" type:"list"`
  6424. }
  6425. // String returns the string representation
  6426. func (s CreateHsmClientCertificateInput) String() string {
  6427. return awsutil.Prettify(s)
  6428. }
  6429. // GoString returns the string representation
  6430. func (s CreateHsmClientCertificateInput) GoString() string {
  6431. return s.String()
  6432. }
  6433. // Validate inspects the fields of the type to determine if they are valid.
  6434. func (s *CreateHsmClientCertificateInput) Validate() error {
  6435. invalidParams := request.ErrInvalidParams{Context: "CreateHsmClientCertificateInput"}
  6436. if s.HsmClientCertificateIdentifier == nil {
  6437. invalidParams.Add(request.NewErrParamRequired("HsmClientCertificateIdentifier"))
  6438. }
  6439. if invalidParams.Len() > 0 {
  6440. return invalidParams
  6441. }
  6442. return nil
  6443. }
  6444. type CreateHsmClientCertificateOutput struct {
  6445. _ struct{} `type:"structure"`
  6446. // Returns information about an HSM client certificate. The certificate is stored
  6447. // in a secure Hardware Storage Module (HSM), and used by the Amazon Redshift
  6448. // cluster to encrypt data files.
  6449. HsmClientCertificate *HsmClientCertificate `type:"structure"`
  6450. }
  6451. // String returns the string representation
  6452. func (s CreateHsmClientCertificateOutput) String() string {
  6453. return awsutil.Prettify(s)
  6454. }
  6455. // GoString returns the string representation
  6456. func (s CreateHsmClientCertificateOutput) GoString() string {
  6457. return s.String()
  6458. }
  6459. type CreateHsmConfigurationInput struct {
  6460. _ struct{} `type:"structure"`
  6461. // A text description of the HSM configuration to be created.
  6462. //
  6463. // Description is a required field
  6464. Description *string `type:"string" required:"true"`
  6465. // The identifier to be assigned to the new Amazon Redshift HSM configuration.
  6466. //
  6467. // HsmConfigurationIdentifier is a required field
  6468. HsmConfigurationIdentifier *string `type:"string" required:"true"`
  6469. // The IP address that the Amazon Redshift cluster must use to access the HSM.
  6470. //
  6471. // HsmIpAddress is a required field
  6472. HsmIpAddress *string `type:"string" required:"true"`
  6473. // The name of the partition in the HSM where the Amazon Redshift clusters will
  6474. // store their database encryption keys.
  6475. //
  6476. // HsmPartitionName is a required field
  6477. HsmPartitionName *string `type:"string" required:"true"`
  6478. // The password required to access the HSM partition.
  6479. //
  6480. // HsmPartitionPassword is a required field
  6481. HsmPartitionPassword *string `type:"string" required:"true"`
  6482. // The HSMs public certificate file. When using Cloud HSM, the file name is
  6483. // server.pem.
  6484. //
  6485. // HsmServerPublicCertificate is a required field
  6486. HsmServerPublicCertificate *string `type:"string" required:"true"`
  6487. // A list of tag instances.
  6488. Tags []*Tag `locationNameList:"Tag" type:"list"`
  6489. }
  6490. // String returns the string representation
  6491. func (s CreateHsmConfigurationInput) String() string {
  6492. return awsutil.Prettify(s)
  6493. }
  6494. // GoString returns the string representation
  6495. func (s CreateHsmConfigurationInput) GoString() string {
  6496. return s.String()
  6497. }
  6498. // Validate inspects the fields of the type to determine if they are valid.
  6499. func (s *CreateHsmConfigurationInput) Validate() error {
  6500. invalidParams := request.ErrInvalidParams{Context: "CreateHsmConfigurationInput"}
  6501. if s.Description == nil {
  6502. invalidParams.Add(request.NewErrParamRequired("Description"))
  6503. }
  6504. if s.HsmConfigurationIdentifier == nil {
  6505. invalidParams.Add(request.NewErrParamRequired("HsmConfigurationIdentifier"))
  6506. }
  6507. if s.HsmIpAddress == nil {
  6508. invalidParams.Add(request.NewErrParamRequired("HsmIpAddress"))
  6509. }
  6510. if s.HsmPartitionName == nil {
  6511. invalidParams.Add(request.NewErrParamRequired("HsmPartitionName"))
  6512. }
  6513. if s.HsmPartitionPassword == nil {
  6514. invalidParams.Add(request.NewErrParamRequired("HsmPartitionPassword"))
  6515. }
  6516. if s.HsmServerPublicCertificate == nil {
  6517. invalidParams.Add(request.NewErrParamRequired("HsmServerPublicCertificate"))
  6518. }
  6519. if invalidParams.Len() > 0 {
  6520. return invalidParams
  6521. }
  6522. return nil
  6523. }
  6524. type CreateHsmConfigurationOutput struct {
  6525. _ struct{} `type:"structure"`
  6526. // Returns information about an HSM configuration, which is an object that describes
  6527. // to Amazon Redshift clusters the information they require to connect to an
  6528. // HSM where they can store database encryption keys.
  6529. HsmConfiguration *HsmConfiguration `type:"structure"`
  6530. }
  6531. // String returns the string representation
  6532. func (s CreateHsmConfigurationOutput) String() string {
  6533. return awsutil.Prettify(s)
  6534. }
  6535. // GoString returns the string representation
  6536. func (s CreateHsmConfigurationOutput) GoString() string {
  6537. return s.String()
  6538. }
  6539. // The result of the CreateSnapshotCopyGrant action.
  6540. type CreateSnapshotCopyGrantInput struct {
  6541. _ struct{} `type:"structure"`
  6542. // The unique identifier of the customer master key (CMK) to which to grant
  6543. // Amazon Redshift permission. If no key is specified, the default key is used.
  6544. KmsKeyId *string `type:"string"`
  6545. // The name of the snapshot copy grant. This name must be unique in the region
  6546. // for the AWS account.
  6547. //
  6548. // Constraints:
  6549. //
  6550. // * Must contain from 1 to 63 alphanumeric characters or hyphens.
  6551. //
  6552. // * Alphabetic characters must be lowercase.
  6553. //
  6554. // * First character must be a letter.
  6555. //
  6556. // * Cannot end with a hyphen or contain two consecutive hyphens.
  6557. //
  6558. // * Must be unique for all clusters within an AWS account.
  6559. //
  6560. // SnapshotCopyGrantName is a required field
  6561. SnapshotCopyGrantName *string `type:"string" required:"true"`
  6562. // A list of tag instances.
  6563. Tags []*Tag `locationNameList:"Tag" type:"list"`
  6564. }
  6565. // String returns the string representation
  6566. func (s CreateSnapshotCopyGrantInput) String() string {
  6567. return awsutil.Prettify(s)
  6568. }
  6569. // GoString returns the string representation
  6570. func (s CreateSnapshotCopyGrantInput) GoString() string {
  6571. return s.String()
  6572. }
  6573. // Validate inspects the fields of the type to determine if they are valid.
  6574. func (s *CreateSnapshotCopyGrantInput) Validate() error {
  6575. invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotCopyGrantInput"}
  6576. if s.SnapshotCopyGrantName == nil {
  6577. invalidParams.Add(request.NewErrParamRequired("SnapshotCopyGrantName"))
  6578. }
  6579. if invalidParams.Len() > 0 {
  6580. return invalidParams
  6581. }
  6582. return nil
  6583. }
  6584. type CreateSnapshotCopyGrantOutput struct {
  6585. _ struct{} `type:"structure"`
  6586. // The snapshot copy grant that grants Amazon Redshift permission to encrypt
  6587. // copied snapshots with the specified customer master key (CMK) from AWS KMS
  6588. // in the destination region.
  6589. //
  6590. // For more information about managing snapshot copy grants, go to Amazon Redshift
  6591. // Database Encryption (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
  6592. // in the Amazon Redshift Cluster Management Guide.
  6593. SnapshotCopyGrant *SnapshotCopyGrant `type:"structure"`
  6594. }
  6595. // String returns the string representation
  6596. func (s CreateSnapshotCopyGrantOutput) String() string {
  6597. return awsutil.Prettify(s)
  6598. }
  6599. // GoString returns the string representation
  6600. func (s CreateSnapshotCopyGrantOutput) GoString() string {
  6601. return s.String()
  6602. }
  6603. // Contains the output from the CreateTags action.
  6604. type CreateTagsInput struct {
  6605. _ struct{} `type:"structure"`
  6606. // The Amazon Resource Name (ARN) to which you want to add the tag or tags.
  6607. // For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.
  6608. //
  6609. // ResourceName is a required field
  6610. ResourceName *string `type:"string" required:"true"`
  6611. // One or more name/value pairs to add as tags to the specified resource. Each
  6612. // tag name is passed in with the parameter Key and the corresponding value
  6613. // is passed in with the parameter Value. The Key and Value parameters are separated
  6614. // by a comma (,). Separate multiple tags with a space. For example, --tags
  6615. // "Key"="owner","Value"="admin" "Key"="environment","Value"="test" "Key"="version","Value"="1.0".
  6616. //
  6617. // Tags is a required field
  6618. Tags []*Tag `locationNameList:"Tag" type:"list" required:"true"`
  6619. }
  6620. // String returns the string representation
  6621. func (s CreateTagsInput) String() string {
  6622. return awsutil.Prettify(s)
  6623. }
  6624. // GoString returns the string representation
  6625. func (s CreateTagsInput) GoString() string {
  6626. return s.String()
  6627. }
  6628. // Validate inspects the fields of the type to determine if they are valid.
  6629. func (s *CreateTagsInput) Validate() error {
  6630. invalidParams := request.ErrInvalidParams{Context: "CreateTagsInput"}
  6631. if s.ResourceName == nil {
  6632. invalidParams.Add(request.NewErrParamRequired("ResourceName"))
  6633. }
  6634. if s.Tags == nil {
  6635. invalidParams.Add(request.NewErrParamRequired("Tags"))
  6636. }
  6637. if invalidParams.Len() > 0 {
  6638. return invalidParams
  6639. }
  6640. return nil
  6641. }
  6642. type CreateTagsOutput struct {
  6643. _ struct{} `type:"structure"`
  6644. }
  6645. // String returns the string representation
  6646. func (s CreateTagsOutput) String() string {
  6647. return awsutil.Prettify(s)
  6648. }
  6649. // GoString returns the string representation
  6650. func (s CreateTagsOutput) GoString() string {
  6651. return s.String()
  6652. }
  6653. // Describes the default cluster parameters for a parameter group family.
  6654. type DefaultClusterParameters struct {
  6655. _ struct{} `type:"structure"`
  6656. // A value that indicates the starting point for the next set of response records
  6657. // in a subsequent request. If a value is returned in a response, you can retrieve
  6658. // the next set of records by providing this returned marker value in the Marker
  6659. // parameter and retrying the command. If the Marker field is empty, all response
  6660. // records have been retrieved for the request.
  6661. Marker *string `type:"string"`
  6662. // The name of the cluster parameter group family to which the engine default
  6663. // parameters apply.
  6664. ParameterGroupFamily *string `type:"string"`
  6665. // The list of cluster default parameters.
  6666. Parameters []*Parameter `locationNameList:"Parameter" type:"list"`
  6667. }
  6668. // String returns the string representation
  6669. func (s DefaultClusterParameters) String() string {
  6670. return awsutil.Prettify(s)
  6671. }
  6672. // GoString returns the string representation
  6673. func (s DefaultClusterParameters) GoString() string {
  6674. return s.String()
  6675. }
  6676. type DeleteClusterInput struct {
  6677. _ struct{} `type:"structure"`
  6678. // The identifier of the cluster to be deleted.
  6679. //
  6680. // Constraints:
  6681. //
  6682. // * Must contain lowercase characters.
  6683. //
  6684. // * Must contain from 1 to 63 alphanumeric characters or hyphens.
  6685. //
  6686. // * First character must be a letter.
  6687. //
  6688. // * Cannot end with a hyphen or contain two consecutive hyphens.
  6689. //
  6690. // ClusterIdentifier is a required field
  6691. ClusterIdentifier *string `type:"string" required:"true"`
  6692. // The identifier of the final snapshot that is to be created immediately before
  6693. // deleting the cluster. If this parameter is provided, SkipFinalClusterSnapshot
  6694. // must be false.
  6695. //
  6696. // Constraints:
  6697. //
  6698. // * Must be 1 to 255 alphanumeric characters.
  6699. //
  6700. // * First character must be a letter.
  6701. //
  6702. // * Cannot end with a hyphen or contain two consecutive hyphens.
  6703. FinalClusterSnapshotIdentifier *string `type:"string"`
  6704. // Determines whether a final snapshot of the cluster is created before Amazon
  6705. // Redshift deletes the cluster. If true, a final cluster snapshot is not created.
  6706. // If false, a final cluster snapshot is created before the cluster is deleted.
  6707. //
  6708. // The FinalClusterSnapshotIdentifier parameter must be specified if SkipFinalClusterSnapshot
  6709. // is false.
  6710. //
  6711. // Default: false
  6712. SkipFinalClusterSnapshot *bool `type:"boolean"`
  6713. }
  6714. // String returns the string representation
  6715. func (s DeleteClusterInput) String() string {
  6716. return awsutil.Prettify(s)
  6717. }
  6718. // GoString returns the string representation
  6719. func (s DeleteClusterInput) GoString() string {
  6720. return s.String()
  6721. }
  6722. // Validate inspects the fields of the type to determine if they are valid.
  6723. func (s *DeleteClusterInput) Validate() error {
  6724. invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
  6725. if s.ClusterIdentifier == nil {
  6726. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  6727. }
  6728. if invalidParams.Len() > 0 {
  6729. return invalidParams
  6730. }
  6731. return nil
  6732. }
  6733. type DeleteClusterOutput struct {
  6734. _ struct{} `type:"structure"`
  6735. // Describes a cluster.
  6736. Cluster *Cluster `type:"structure"`
  6737. }
  6738. // String returns the string representation
  6739. func (s DeleteClusterOutput) String() string {
  6740. return awsutil.Prettify(s)
  6741. }
  6742. // GoString returns the string representation
  6743. func (s DeleteClusterOutput) GoString() string {
  6744. return s.String()
  6745. }
  6746. type DeleteClusterParameterGroupInput struct {
  6747. _ struct{} `type:"structure"`
  6748. // The name of the parameter group to be deleted.
  6749. //
  6750. // Constraints:
  6751. //
  6752. // * Must be the name of an existing cluster parameter group.
  6753. //
  6754. // * Cannot delete a default cluster parameter group.
  6755. //
  6756. // ParameterGroupName is a required field
  6757. ParameterGroupName *string `type:"string" required:"true"`
  6758. }
  6759. // String returns the string representation
  6760. func (s DeleteClusterParameterGroupInput) String() string {
  6761. return awsutil.Prettify(s)
  6762. }
  6763. // GoString returns the string representation
  6764. func (s DeleteClusterParameterGroupInput) GoString() string {
  6765. return s.String()
  6766. }
  6767. // Validate inspects the fields of the type to determine if they are valid.
  6768. func (s *DeleteClusterParameterGroupInput) Validate() error {
  6769. invalidParams := request.ErrInvalidParams{Context: "DeleteClusterParameterGroupInput"}
  6770. if s.ParameterGroupName == nil {
  6771. invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
  6772. }
  6773. if invalidParams.Len() > 0 {
  6774. return invalidParams
  6775. }
  6776. return nil
  6777. }
  6778. type DeleteClusterParameterGroupOutput struct {
  6779. _ struct{} `type:"structure"`
  6780. }
  6781. // String returns the string representation
  6782. func (s DeleteClusterParameterGroupOutput) String() string {
  6783. return awsutil.Prettify(s)
  6784. }
  6785. // GoString returns the string representation
  6786. func (s DeleteClusterParameterGroupOutput) GoString() string {
  6787. return s.String()
  6788. }
  6789. type DeleteClusterSecurityGroupInput struct {
  6790. _ struct{} `type:"structure"`
  6791. // The name of the cluster security group to be deleted.
  6792. //
  6793. // ClusterSecurityGroupName is a required field
  6794. ClusterSecurityGroupName *string `type:"string" required:"true"`
  6795. }
  6796. // String returns the string representation
  6797. func (s DeleteClusterSecurityGroupInput) String() string {
  6798. return awsutil.Prettify(s)
  6799. }
  6800. // GoString returns the string representation
  6801. func (s DeleteClusterSecurityGroupInput) GoString() string {
  6802. return s.String()
  6803. }
  6804. // Validate inspects the fields of the type to determine if they are valid.
  6805. func (s *DeleteClusterSecurityGroupInput) Validate() error {
  6806. invalidParams := request.ErrInvalidParams{Context: "DeleteClusterSecurityGroupInput"}
  6807. if s.ClusterSecurityGroupName == nil {
  6808. invalidParams.Add(request.NewErrParamRequired("ClusterSecurityGroupName"))
  6809. }
  6810. if invalidParams.Len() > 0 {
  6811. return invalidParams
  6812. }
  6813. return nil
  6814. }
  6815. type DeleteClusterSecurityGroupOutput struct {
  6816. _ struct{} `type:"structure"`
  6817. }
  6818. // String returns the string representation
  6819. func (s DeleteClusterSecurityGroupOutput) String() string {
  6820. return awsutil.Prettify(s)
  6821. }
  6822. // GoString returns the string representation
  6823. func (s DeleteClusterSecurityGroupOutput) GoString() string {
  6824. return s.String()
  6825. }
  6826. type DeleteClusterSnapshotInput struct {
  6827. _ struct{} `type:"structure"`
  6828. // The unique identifier of the cluster the snapshot was created from. This
  6829. // parameter is required if your IAM user has a policy containing a snapshot
  6830. // resource element that specifies anything other than * for the cluster name.
  6831. //
  6832. // Constraints: Must be the name of valid cluster.
  6833. SnapshotClusterIdentifier *string `type:"string"`
  6834. // The unique identifier of the manual snapshot to be deleted.
  6835. //
  6836. // Constraints: Must be the name of an existing snapshot that is in the available
  6837. // state.
  6838. //
  6839. // SnapshotIdentifier is a required field
  6840. SnapshotIdentifier *string `type:"string" required:"true"`
  6841. }
  6842. // String returns the string representation
  6843. func (s DeleteClusterSnapshotInput) String() string {
  6844. return awsutil.Prettify(s)
  6845. }
  6846. // GoString returns the string representation
  6847. func (s DeleteClusterSnapshotInput) GoString() string {
  6848. return s.String()
  6849. }
  6850. // Validate inspects the fields of the type to determine if they are valid.
  6851. func (s *DeleteClusterSnapshotInput) Validate() error {
  6852. invalidParams := request.ErrInvalidParams{Context: "DeleteClusterSnapshotInput"}
  6853. if s.SnapshotIdentifier == nil {
  6854. invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
  6855. }
  6856. if invalidParams.Len() > 0 {
  6857. return invalidParams
  6858. }
  6859. return nil
  6860. }
  6861. type DeleteClusterSnapshotOutput struct {
  6862. _ struct{} `type:"structure"`
  6863. // Describes a snapshot.
  6864. Snapshot *Snapshot `type:"structure"`
  6865. }
  6866. // String returns the string representation
  6867. func (s DeleteClusterSnapshotOutput) String() string {
  6868. return awsutil.Prettify(s)
  6869. }
  6870. // GoString returns the string representation
  6871. func (s DeleteClusterSnapshotOutput) GoString() string {
  6872. return s.String()
  6873. }
  6874. type DeleteClusterSubnetGroupInput struct {
  6875. _ struct{} `type:"structure"`
  6876. // The name of the cluster subnet group name to be deleted.
  6877. //
  6878. // ClusterSubnetGroupName is a required field
  6879. ClusterSubnetGroupName *string `type:"string" required:"true"`
  6880. }
  6881. // String returns the string representation
  6882. func (s DeleteClusterSubnetGroupInput) String() string {
  6883. return awsutil.Prettify(s)
  6884. }
  6885. // GoString returns the string representation
  6886. func (s DeleteClusterSubnetGroupInput) GoString() string {
  6887. return s.String()
  6888. }
  6889. // Validate inspects the fields of the type to determine if they are valid.
  6890. func (s *DeleteClusterSubnetGroupInput) Validate() error {
  6891. invalidParams := request.ErrInvalidParams{Context: "DeleteClusterSubnetGroupInput"}
  6892. if s.ClusterSubnetGroupName == nil {
  6893. invalidParams.Add(request.NewErrParamRequired("ClusterSubnetGroupName"))
  6894. }
  6895. if invalidParams.Len() > 0 {
  6896. return invalidParams
  6897. }
  6898. return nil
  6899. }
  6900. type DeleteClusterSubnetGroupOutput struct {
  6901. _ struct{} `type:"structure"`
  6902. }
  6903. // String returns the string representation
  6904. func (s DeleteClusterSubnetGroupOutput) String() string {
  6905. return awsutil.Prettify(s)
  6906. }
  6907. // GoString returns the string representation
  6908. func (s DeleteClusterSubnetGroupOutput) GoString() string {
  6909. return s.String()
  6910. }
  6911. type DeleteEventSubscriptionInput struct {
  6912. _ struct{} `type:"structure"`
  6913. // The name of the Amazon Redshift event notification subscription to be deleted.
  6914. //
  6915. // SubscriptionName is a required field
  6916. SubscriptionName *string `type:"string" required:"true"`
  6917. }
  6918. // String returns the string representation
  6919. func (s DeleteEventSubscriptionInput) String() string {
  6920. return awsutil.Prettify(s)
  6921. }
  6922. // GoString returns the string representation
  6923. func (s DeleteEventSubscriptionInput) GoString() string {
  6924. return s.String()
  6925. }
  6926. // Validate inspects the fields of the type to determine if they are valid.
  6927. func (s *DeleteEventSubscriptionInput) Validate() error {
  6928. invalidParams := request.ErrInvalidParams{Context: "DeleteEventSubscriptionInput"}
  6929. if s.SubscriptionName == nil {
  6930. invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
  6931. }
  6932. if invalidParams.Len() > 0 {
  6933. return invalidParams
  6934. }
  6935. return nil
  6936. }
  6937. type DeleteEventSubscriptionOutput struct {
  6938. _ struct{} `type:"structure"`
  6939. }
  6940. // String returns the string representation
  6941. func (s DeleteEventSubscriptionOutput) String() string {
  6942. return awsutil.Prettify(s)
  6943. }
  6944. // GoString returns the string representation
  6945. func (s DeleteEventSubscriptionOutput) GoString() string {
  6946. return s.String()
  6947. }
  6948. type DeleteHsmClientCertificateInput struct {
  6949. _ struct{} `type:"structure"`
  6950. // The identifier of the HSM client certificate to be deleted.
  6951. //
  6952. // HsmClientCertificateIdentifier is a required field
  6953. HsmClientCertificateIdentifier *string `type:"string" required:"true"`
  6954. }
  6955. // String returns the string representation
  6956. func (s DeleteHsmClientCertificateInput) String() string {
  6957. return awsutil.Prettify(s)
  6958. }
  6959. // GoString returns the string representation
  6960. func (s DeleteHsmClientCertificateInput) GoString() string {
  6961. return s.String()
  6962. }
  6963. // Validate inspects the fields of the type to determine if they are valid.
  6964. func (s *DeleteHsmClientCertificateInput) Validate() error {
  6965. invalidParams := request.ErrInvalidParams{Context: "DeleteHsmClientCertificateInput"}
  6966. if s.HsmClientCertificateIdentifier == nil {
  6967. invalidParams.Add(request.NewErrParamRequired("HsmClientCertificateIdentifier"))
  6968. }
  6969. if invalidParams.Len() > 0 {
  6970. return invalidParams
  6971. }
  6972. return nil
  6973. }
  6974. type DeleteHsmClientCertificateOutput struct {
  6975. _ struct{} `type:"structure"`
  6976. }
  6977. // String returns the string representation
  6978. func (s DeleteHsmClientCertificateOutput) String() string {
  6979. return awsutil.Prettify(s)
  6980. }
  6981. // GoString returns the string representation
  6982. func (s DeleteHsmClientCertificateOutput) GoString() string {
  6983. return s.String()
  6984. }
  6985. type DeleteHsmConfigurationInput struct {
  6986. _ struct{} `type:"structure"`
  6987. // The identifier of the Amazon Redshift HSM configuration to be deleted.
  6988. //
  6989. // HsmConfigurationIdentifier is a required field
  6990. HsmConfigurationIdentifier *string `type:"string" required:"true"`
  6991. }
  6992. // String returns the string representation
  6993. func (s DeleteHsmConfigurationInput) String() string {
  6994. return awsutil.Prettify(s)
  6995. }
  6996. // GoString returns the string representation
  6997. func (s DeleteHsmConfigurationInput) GoString() string {
  6998. return s.String()
  6999. }
  7000. // Validate inspects the fields of the type to determine if they are valid.
  7001. func (s *DeleteHsmConfigurationInput) Validate() error {
  7002. invalidParams := request.ErrInvalidParams{Context: "DeleteHsmConfigurationInput"}
  7003. if s.HsmConfigurationIdentifier == nil {
  7004. invalidParams.Add(request.NewErrParamRequired("HsmConfigurationIdentifier"))
  7005. }
  7006. if invalidParams.Len() > 0 {
  7007. return invalidParams
  7008. }
  7009. return nil
  7010. }
  7011. type DeleteHsmConfigurationOutput struct {
  7012. _ struct{} `type:"structure"`
  7013. }
  7014. // String returns the string representation
  7015. func (s DeleteHsmConfigurationOutput) String() string {
  7016. return awsutil.Prettify(s)
  7017. }
  7018. // GoString returns the string representation
  7019. func (s DeleteHsmConfigurationOutput) GoString() string {
  7020. return s.String()
  7021. }
  7022. // The result of the DeleteSnapshotCopyGrant action.
  7023. type DeleteSnapshotCopyGrantInput struct {
  7024. _ struct{} `type:"structure"`
  7025. // The name of the snapshot copy grant to delete.
  7026. //
  7027. // SnapshotCopyGrantName is a required field
  7028. SnapshotCopyGrantName *string `type:"string" required:"true"`
  7029. }
  7030. // String returns the string representation
  7031. func (s DeleteSnapshotCopyGrantInput) String() string {
  7032. return awsutil.Prettify(s)
  7033. }
  7034. // GoString returns the string representation
  7035. func (s DeleteSnapshotCopyGrantInput) GoString() string {
  7036. return s.String()
  7037. }
  7038. // Validate inspects the fields of the type to determine if they are valid.
  7039. func (s *DeleteSnapshotCopyGrantInput) Validate() error {
  7040. invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotCopyGrantInput"}
  7041. if s.SnapshotCopyGrantName == nil {
  7042. invalidParams.Add(request.NewErrParamRequired("SnapshotCopyGrantName"))
  7043. }
  7044. if invalidParams.Len() > 0 {
  7045. return invalidParams
  7046. }
  7047. return nil
  7048. }
  7049. type DeleteSnapshotCopyGrantOutput struct {
  7050. _ struct{} `type:"structure"`
  7051. }
  7052. // String returns the string representation
  7053. func (s DeleteSnapshotCopyGrantOutput) String() string {
  7054. return awsutil.Prettify(s)
  7055. }
  7056. // GoString returns the string representation
  7057. func (s DeleteSnapshotCopyGrantOutput) GoString() string {
  7058. return s.String()
  7059. }
  7060. // Contains the output from the DeleteTags action.
  7061. type DeleteTagsInput struct {
  7062. _ struct{} `type:"structure"`
  7063. // The Amazon Resource Name (ARN) from which you want to remove the tag or tags.
  7064. // For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.
  7065. //
  7066. // ResourceName is a required field
  7067. ResourceName *string `type:"string" required:"true"`
  7068. // The tag key that you want to delete.
  7069. //
  7070. // TagKeys is a required field
  7071. TagKeys []*string `locationNameList:"TagKey" type:"list" required:"true"`
  7072. }
  7073. // String returns the string representation
  7074. func (s DeleteTagsInput) String() string {
  7075. return awsutil.Prettify(s)
  7076. }
  7077. // GoString returns the string representation
  7078. func (s DeleteTagsInput) GoString() string {
  7079. return s.String()
  7080. }
  7081. // Validate inspects the fields of the type to determine if they are valid.
  7082. func (s *DeleteTagsInput) Validate() error {
  7083. invalidParams := request.ErrInvalidParams{Context: "DeleteTagsInput"}
  7084. if s.ResourceName == nil {
  7085. invalidParams.Add(request.NewErrParamRequired("ResourceName"))
  7086. }
  7087. if s.TagKeys == nil {
  7088. invalidParams.Add(request.NewErrParamRequired("TagKeys"))
  7089. }
  7090. if invalidParams.Len() > 0 {
  7091. return invalidParams
  7092. }
  7093. return nil
  7094. }
  7095. type DeleteTagsOutput struct {
  7096. _ struct{} `type:"structure"`
  7097. }
  7098. // String returns the string representation
  7099. func (s DeleteTagsOutput) String() string {
  7100. return awsutil.Prettify(s)
  7101. }
  7102. // GoString returns the string representation
  7103. func (s DeleteTagsOutput) GoString() string {
  7104. return s.String()
  7105. }
  7106. type DescribeClusterParameterGroupsInput struct {
  7107. _ struct{} `type:"structure"`
  7108. // An optional parameter that specifies the starting point to return a set of
  7109. // response records. When the results of a DescribeClusterParameterGroups request
  7110. // exceed the value specified in MaxRecords, AWS returns a value in the Marker
  7111. // field of the response. You can retrieve the next set of response records
  7112. // by providing the returned marker value in the Marker parameter and retrying
  7113. // the request.
  7114. Marker *string `type:"string"`
  7115. // The maximum number of response records to return in each call. If the number
  7116. // of remaining response records exceeds the specified MaxRecords value, a value
  7117. // is returned in a marker field of the response. You can retrieve the next
  7118. // set of records by retrying the command with the returned marker value.
  7119. //
  7120. // Default: 100
  7121. //
  7122. // Constraints: minimum 20, maximum 100.
  7123. MaxRecords *int64 `type:"integer"`
  7124. // The name of a specific parameter group for which to return details. By default,
  7125. // details about all parameter groups and the default parameter group are returned.
  7126. ParameterGroupName *string `type:"string"`
  7127. // A tag key or keys for which you want to return all matching cluster parameter
  7128. // groups that are associated with the specified key or keys. For example, suppose
  7129. // that you have parameter groups that are tagged with keys called owner and
  7130. // environment. If you specify both of these tag keys in the request, Amazon
  7131. // Redshift returns a response with the parameter groups that have either or
  7132. // both of these tag keys associated with them.
  7133. TagKeys []*string `locationNameList:"TagKey" type:"list"`
  7134. // A tag value or values for which you want to return all matching cluster parameter
  7135. // groups that are associated with the specified tag value or values. For example,
  7136. // suppose that you have parameter groups that are tagged with values called
  7137. // admin and test. If you specify both of these tag values in the request, Amazon
  7138. // Redshift returns a response with the parameter groups that have either or
  7139. // both of these tag values associated with them.
  7140. TagValues []*string `locationNameList:"TagValue" type:"list"`
  7141. }
  7142. // String returns the string representation
  7143. func (s DescribeClusterParameterGroupsInput) String() string {
  7144. return awsutil.Prettify(s)
  7145. }
  7146. // GoString returns the string representation
  7147. func (s DescribeClusterParameterGroupsInput) GoString() string {
  7148. return s.String()
  7149. }
  7150. // Contains the output from the DescribeClusterParameterGroups action.
  7151. type DescribeClusterParameterGroupsOutput struct {
  7152. _ struct{} `type:"structure"`
  7153. // A value that indicates the starting point for the next set of response records
  7154. // in a subsequent request. If a value is returned in a response, you can retrieve
  7155. // the next set of records by providing this returned marker value in the Marker
  7156. // parameter and retrying the command. If the Marker field is empty, all response
  7157. // records have been retrieved for the request.
  7158. Marker *string `type:"string"`
  7159. // A list of ClusterParameterGroup instances. Each instance describes one cluster
  7160. // parameter group.
  7161. ParameterGroups []*ClusterParameterGroup `locationNameList:"ClusterParameterGroup" type:"list"`
  7162. }
  7163. // String returns the string representation
  7164. func (s DescribeClusterParameterGroupsOutput) String() string {
  7165. return awsutil.Prettify(s)
  7166. }
  7167. // GoString returns the string representation
  7168. func (s DescribeClusterParameterGroupsOutput) GoString() string {
  7169. return s.String()
  7170. }
  7171. type DescribeClusterParametersInput struct {
  7172. _ struct{} `type:"structure"`
  7173. // An optional parameter that specifies the starting point to return a set of
  7174. // response records. When the results of a DescribeClusterParameters request
  7175. // exceed the value specified in MaxRecords, AWS returns a value in the Marker
  7176. // field of the response. You can retrieve the next set of response records
  7177. // by providing the returned marker value in the Marker parameter and retrying
  7178. // the request.
  7179. Marker *string `type:"string"`
  7180. // The maximum number of response records to return in each call. If the number
  7181. // of remaining response records exceeds the specified MaxRecords value, a value
  7182. // is returned in a marker field of the response. You can retrieve the next
  7183. // set of records by retrying the command with the returned marker value.
  7184. //
  7185. // Default: 100
  7186. //
  7187. // Constraints: minimum 20, maximum 100.
  7188. MaxRecords *int64 `type:"integer"`
  7189. // The name of a cluster parameter group for which to return details.
  7190. //
  7191. // ParameterGroupName is a required field
  7192. ParameterGroupName *string `type:"string" required:"true"`
  7193. // The parameter types to return. Specify user to show parameters that are different
  7194. // form the default. Similarly, specify engine-default to show parameters that
  7195. // are the same as the default parameter group.
  7196. //
  7197. // Default: All parameter types returned.
  7198. //
  7199. // Valid Values: user | engine-default
  7200. Source *string `type:"string"`
  7201. }
  7202. // String returns the string representation
  7203. func (s DescribeClusterParametersInput) String() string {
  7204. return awsutil.Prettify(s)
  7205. }
  7206. // GoString returns the string representation
  7207. func (s DescribeClusterParametersInput) GoString() string {
  7208. return s.String()
  7209. }
  7210. // Validate inspects the fields of the type to determine if they are valid.
  7211. func (s *DescribeClusterParametersInput) Validate() error {
  7212. invalidParams := request.ErrInvalidParams{Context: "DescribeClusterParametersInput"}
  7213. if s.ParameterGroupName == nil {
  7214. invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
  7215. }
  7216. if invalidParams.Len() > 0 {
  7217. return invalidParams
  7218. }
  7219. return nil
  7220. }
  7221. // Contains the output from the DescribeClusterParameters action.
  7222. type DescribeClusterParametersOutput struct {
  7223. _ struct{} `type:"structure"`
  7224. // A value that indicates the starting point for the next set of response records
  7225. // in a subsequent request. If a value is returned in a response, you can retrieve
  7226. // the next set of records by providing this returned marker value in the Marker
  7227. // parameter and retrying the command. If the Marker field is empty, all response
  7228. // records have been retrieved for the request.
  7229. Marker *string `type:"string"`
  7230. // A list of Parameter instances. Each instance lists the parameters of one
  7231. // cluster parameter group.
  7232. Parameters []*Parameter `locationNameList:"Parameter" type:"list"`
  7233. }
  7234. // String returns the string representation
  7235. func (s DescribeClusterParametersOutput) String() string {
  7236. return awsutil.Prettify(s)
  7237. }
  7238. // GoString returns the string representation
  7239. func (s DescribeClusterParametersOutput) GoString() string {
  7240. return s.String()
  7241. }
  7242. type DescribeClusterSecurityGroupsInput struct {
  7243. _ struct{} `type:"structure"`
  7244. // The name of a cluster security group for which you are requesting details.
  7245. // You can specify either the Marker parameter or a ClusterSecurityGroupName
  7246. // parameter, but not both.
  7247. //
  7248. // Example: securitygroup1
  7249. ClusterSecurityGroupName *string `type:"string"`
  7250. // An optional parameter that specifies the starting point to return a set of
  7251. // response records. When the results of a DescribeClusterSecurityGroups request
  7252. // exceed the value specified in MaxRecords, AWS returns a value in the Marker
  7253. // field of the response. You can retrieve the next set of response records
  7254. // by providing the returned marker value in the Marker parameter and retrying
  7255. // the request.
  7256. //
  7257. // Constraints: You can specify either the ClusterSecurityGroupName parameter
  7258. // or the Marker parameter, but not both.
  7259. Marker *string `type:"string"`
  7260. // The maximum number of response records to return in each call. If the number
  7261. // of remaining response records exceeds the specified MaxRecords value, a value
  7262. // is returned in a marker field of the response. You can retrieve the next
  7263. // set of records by retrying the command with the returned marker value.
  7264. //
  7265. // Default: 100
  7266. //
  7267. // Constraints: minimum 20, maximum 100.
  7268. MaxRecords *int64 `type:"integer"`
  7269. // A tag key or keys for which you want to return all matching cluster security
  7270. // groups that are associated with the specified key or keys. For example, suppose
  7271. // that you have security groups that are tagged with keys called owner and
  7272. // environment. If you specify both of these tag keys in the request, Amazon
  7273. // Redshift returns a response with the security groups that have either or
  7274. // both of these tag keys associated with them.
  7275. TagKeys []*string `locationNameList:"TagKey" type:"list"`
  7276. // A tag value or values for which you want to return all matching cluster security
  7277. // groups that are associated with the specified tag value or values. For example,
  7278. // suppose that you have security groups that are tagged with values called
  7279. // admin and test. If you specify both of these tag values in the request, Amazon
  7280. // Redshift returns a response with the security groups that have either or
  7281. // both of these tag values associated with them.
  7282. TagValues []*string `locationNameList:"TagValue" type:"list"`
  7283. }
  7284. // String returns the string representation
  7285. func (s DescribeClusterSecurityGroupsInput) String() string {
  7286. return awsutil.Prettify(s)
  7287. }
  7288. // GoString returns the string representation
  7289. func (s DescribeClusterSecurityGroupsInput) GoString() string {
  7290. return s.String()
  7291. }
  7292. type DescribeClusterSecurityGroupsOutput struct {
  7293. _ struct{} `type:"structure"`
  7294. // A list of ClusterSecurityGroup instances.
  7295. ClusterSecurityGroups []*ClusterSecurityGroup `locationNameList:"ClusterSecurityGroup" type:"list"`
  7296. // A value that indicates the starting point for the next set of response records
  7297. // in a subsequent request. If a value is returned in a response, you can retrieve
  7298. // the next set of records by providing this returned marker value in the Marker
  7299. // parameter and retrying the command. If the Marker field is empty, all response
  7300. // records have been retrieved for the request.
  7301. Marker *string `type:"string"`
  7302. }
  7303. // String returns the string representation
  7304. func (s DescribeClusterSecurityGroupsOutput) String() string {
  7305. return awsutil.Prettify(s)
  7306. }
  7307. // GoString returns the string representation
  7308. func (s DescribeClusterSecurityGroupsOutput) GoString() string {
  7309. return s.String()
  7310. }
  7311. type DescribeClusterSnapshotsInput struct {
  7312. _ struct{} `type:"structure"`
  7313. // The identifier of the cluster for which information about snapshots is requested.
  7314. ClusterIdentifier *string `type:"string"`
  7315. // A time value that requests only snapshots created at or before the specified
  7316. // time. The time value is specified in ISO 8601 format. For more information
  7317. // about ISO 8601, go to the ISO8601 Wikipedia page. (http://en.wikipedia.org/wiki/ISO_8601)
  7318. //
  7319. // Example: 2012-07-16T18:00:00Z
  7320. EndTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  7321. // An optional parameter that specifies the starting point to return a set of
  7322. // response records. When the results of a DescribeClusterSnapshots request
  7323. // exceed the value specified in MaxRecords, AWS returns a value in the Marker
  7324. // field of the response. You can retrieve the next set of response records
  7325. // by providing the returned marker value in the Marker parameter and retrying
  7326. // the request.
  7327. Marker *string `type:"string"`
  7328. // The maximum number of response records to return in each call. If the number
  7329. // of remaining response records exceeds the specified MaxRecords value, a value
  7330. // is returned in a marker field of the response. You can retrieve the next
  7331. // set of records by retrying the command with the returned marker value.
  7332. //
  7333. // Default: 100
  7334. //
  7335. // Constraints: minimum 20, maximum 100.
  7336. MaxRecords *int64 `type:"integer"`
  7337. // The AWS customer account used to create or copy the snapshot. Use this field
  7338. // to filter the results to snapshots owned by a particular account. To describe
  7339. // snapshots you own, either specify your AWS customer account, or do not specify
  7340. // the parameter.
  7341. OwnerAccount *string `type:"string"`
  7342. // The snapshot identifier of the snapshot about which to return information.
  7343. SnapshotIdentifier *string `type:"string"`
  7344. // The type of snapshots for which you are requesting information. By default,
  7345. // snapshots of all types are returned.
  7346. //
  7347. // Valid Values: automated | manual
  7348. SnapshotType *string `type:"string"`
  7349. // A value that requests only snapshots created at or after the specified time.
  7350. // The time value is specified in ISO 8601 format. For more information about
  7351. // ISO 8601, go to the ISO8601 Wikipedia page. (http://en.wikipedia.org/wiki/ISO_8601)
  7352. //
  7353. // Example: 2012-07-16T18:00:00Z
  7354. StartTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  7355. // A tag key or keys for which you want to return all matching cluster snapshots
  7356. // that are associated with the specified key or keys. For example, suppose
  7357. // that you have snapshots that are tagged with keys called owner and environment.
  7358. // If you specify both of these tag keys in the request, Amazon Redshift returns
  7359. // a response with the snapshots that have either or both of these tag keys
  7360. // associated with them.
  7361. TagKeys []*string `locationNameList:"TagKey" type:"list"`
  7362. // A tag value or values for which you want to return all matching cluster snapshots
  7363. // that are associated with the specified tag value or values. For example,
  7364. // suppose that you have snapshots that are tagged with values called admin
  7365. // and test. If you specify both of these tag values in the request, Amazon
  7366. // Redshift returns a response with the snapshots that have either or both of
  7367. // these tag values associated with them.
  7368. TagValues []*string `locationNameList:"TagValue" type:"list"`
  7369. }
  7370. // String returns the string representation
  7371. func (s DescribeClusterSnapshotsInput) String() string {
  7372. return awsutil.Prettify(s)
  7373. }
  7374. // GoString returns the string representation
  7375. func (s DescribeClusterSnapshotsInput) GoString() string {
  7376. return s.String()
  7377. }
  7378. // Contains the output from the DescribeClusterSnapshots action.
  7379. type DescribeClusterSnapshotsOutput struct {
  7380. _ struct{} `type:"structure"`
  7381. // A value that indicates the starting point for the next set of response records
  7382. // in a subsequent request. If a value is returned in a response, you can retrieve
  7383. // the next set of records by providing this returned marker value in the Marker
  7384. // parameter and retrying the command. If the Marker field is empty, all response
  7385. // records have been retrieved for the request.
  7386. Marker *string `type:"string"`
  7387. // A list of Snapshot instances.
  7388. Snapshots []*Snapshot `locationNameList:"Snapshot" type:"list"`
  7389. }
  7390. // String returns the string representation
  7391. func (s DescribeClusterSnapshotsOutput) String() string {
  7392. return awsutil.Prettify(s)
  7393. }
  7394. // GoString returns the string representation
  7395. func (s DescribeClusterSnapshotsOutput) GoString() string {
  7396. return s.String()
  7397. }
  7398. type DescribeClusterSubnetGroupsInput struct {
  7399. _ struct{} `type:"structure"`
  7400. // The name of the cluster subnet group for which information is requested.
  7401. ClusterSubnetGroupName *string `type:"string"`
  7402. // An optional parameter that specifies the starting point to return a set of
  7403. // response records. When the results of a DescribeClusterSubnetGroups request
  7404. // exceed the value specified in MaxRecords, AWS returns a value in the Marker
  7405. // field of the response. You can retrieve the next set of response records
  7406. // by providing the returned marker value in the Marker parameter and retrying
  7407. // the request.
  7408. Marker *string `type:"string"`
  7409. // The maximum number of response records to return in each call. If the number
  7410. // of remaining response records exceeds the specified MaxRecords value, a value
  7411. // is returned in a marker field of the response. You can retrieve the next
  7412. // set of records by retrying the command with the returned marker value.
  7413. //
  7414. // Default: 100
  7415. //
  7416. // Constraints: minimum 20, maximum 100.
  7417. MaxRecords *int64 `type:"integer"`
  7418. // A tag key or keys for which you want to return all matching cluster subnet
  7419. // groups that are associated with the specified key or keys. For example, suppose
  7420. // that you have subnet groups that are tagged with keys called owner and environment.
  7421. // If you specify both of these tag keys in the request, Amazon Redshift returns
  7422. // a response with the subnet groups that have either or both of these tag keys
  7423. // associated with them.
  7424. TagKeys []*string `locationNameList:"TagKey" type:"list"`
  7425. // A tag value or values for which you want to return all matching cluster subnet
  7426. // groups that are associated with the specified tag value or values. For example,
  7427. // suppose that you have subnet groups that are tagged with values called admin
  7428. // and test. If you specify both of these tag values in the request, Amazon
  7429. // Redshift returns a response with the subnet groups that have either or both
  7430. // of these tag values associated with them.
  7431. TagValues []*string `locationNameList:"TagValue" type:"list"`
  7432. }
  7433. // String returns the string representation
  7434. func (s DescribeClusterSubnetGroupsInput) String() string {
  7435. return awsutil.Prettify(s)
  7436. }
  7437. // GoString returns the string representation
  7438. func (s DescribeClusterSubnetGroupsInput) GoString() string {
  7439. return s.String()
  7440. }
  7441. // Contains the output from the DescribeClusterSubnetGroups action.
  7442. type DescribeClusterSubnetGroupsOutput struct {
  7443. _ struct{} `type:"structure"`
  7444. // A list of ClusterSubnetGroup instances.
  7445. ClusterSubnetGroups []*ClusterSubnetGroup `locationNameList:"ClusterSubnetGroup" type:"list"`
  7446. // A value that indicates the starting point for the next set of response records
  7447. // in a subsequent request. If a value is returned in a response, you can retrieve
  7448. // the next set of records by providing this returned marker value in the Marker
  7449. // parameter and retrying the command. If the Marker field is empty, all response
  7450. // records have been retrieved for the request.
  7451. Marker *string `type:"string"`
  7452. }
  7453. // String returns the string representation
  7454. func (s DescribeClusterSubnetGroupsOutput) String() string {
  7455. return awsutil.Prettify(s)
  7456. }
  7457. // GoString returns the string representation
  7458. func (s DescribeClusterSubnetGroupsOutput) GoString() string {
  7459. return s.String()
  7460. }
  7461. type DescribeClusterVersionsInput struct {
  7462. _ struct{} `type:"structure"`
  7463. // The name of a specific cluster parameter group family to return details for.
  7464. //
  7465. // Constraints:
  7466. //
  7467. // * Must be 1 to 255 alphanumeric characters
  7468. //
  7469. // * First character must be a letter
  7470. //
  7471. // * Cannot end with a hyphen or contain two consecutive hyphens
  7472. ClusterParameterGroupFamily *string `type:"string"`
  7473. // The specific cluster version to return.
  7474. //
  7475. // Example: 1.0
  7476. ClusterVersion *string `type:"string"`
  7477. // An optional parameter that specifies the starting point to return a set of
  7478. // response records. When the results of a DescribeClusterVersions request exceed
  7479. // the value specified in MaxRecords, AWS returns a value in the Marker field
  7480. // of the response. You can retrieve the next set of response records by providing
  7481. // the returned marker value in the Marker parameter and retrying the request.
  7482. Marker *string `type:"string"`
  7483. // The maximum number of response records to return in each call. If the number
  7484. // of remaining response records exceeds the specified MaxRecords value, a value
  7485. // is returned in a marker field of the response. You can retrieve the next
  7486. // set of records by retrying the command with the returned marker value.
  7487. //
  7488. // Default: 100
  7489. //
  7490. // Constraints: minimum 20, maximum 100.
  7491. MaxRecords *int64 `type:"integer"`
  7492. }
  7493. // String returns the string representation
  7494. func (s DescribeClusterVersionsInput) String() string {
  7495. return awsutil.Prettify(s)
  7496. }
  7497. // GoString returns the string representation
  7498. func (s DescribeClusterVersionsInput) GoString() string {
  7499. return s.String()
  7500. }
  7501. // Contains the output from the DescribeClusterVersions action.
  7502. type DescribeClusterVersionsOutput struct {
  7503. _ struct{} `type:"structure"`
  7504. // A list of Version elements.
  7505. ClusterVersions []*ClusterVersion `locationNameList:"ClusterVersion" type:"list"`
  7506. // A value that indicates the starting point for the next set of response records
  7507. // in a subsequent request. If a value is returned in a response, you can retrieve
  7508. // the next set of records by providing this returned marker value in the Marker
  7509. // parameter and retrying the command. If the Marker field is empty, all response
  7510. // records have been retrieved for the request.
  7511. Marker *string `type:"string"`
  7512. }
  7513. // String returns the string representation
  7514. func (s DescribeClusterVersionsOutput) String() string {
  7515. return awsutil.Prettify(s)
  7516. }
  7517. // GoString returns the string representation
  7518. func (s DescribeClusterVersionsOutput) GoString() string {
  7519. return s.String()
  7520. }
  7521. type DescribeClustersInput struct {
  7522. _ struct{} `type:"structure"`
  7523. // The unique identifier of a cluster whose properties you are requesting. This
  7524. // parameter is case sensitive.
  7525. //
  7526. // The default is that all clusters defined for an account are returned.
  7527. ClusterIdentifier *string `type:"string"`
  7528. // An optional parameter that specifies the starting point to return a set of
  7529. // response records. When the results of a DescribeClusters request exceed the
  7530. // value specified in MaxRecords, AWS returns a value in the Marker field of
  7531. // the response. You can retrieve the next set of response records by providing
  7532. // the returned marker value in the Marker parameter and retrying the request.
  7533. //
  7534. // Constraints: You can specify either the ClusterIdentifier parameter or the
  7535. // Marker parameter, but not both.
  7536. Marker *string `type:"string"`
  7537. // The maximum number of response records to return in each call. If the number
  7538. // of remaining response records exceeds the specified MaxRecords value, a value
  7539. // is returned in a marker field of the response. You can retrieve the next
  7540. // set of records by retrying the command with the returned marker value.
  7541. //
  7542. // Default: 100
  7543. //
  7544. // Constraints: minimum 20, maximum 100.
  7545. MaxRecords *int64 `type:"integer"`
  7546. // A tag key or keys for which you want to return all matching clusters that
  7547. // are associated with the specified key or keys. For example, suppose that
  7548. // you have clusters that are tagged with keys called owner and environment.
  7549. // If you specify both of these tag keys in the request, Amazon Redshift returns
  7550. // a response with the clusters that have either or both of these tag keys associated
  7551. // with them.
  7552. TagKeys []*string `locationNameList:"TagKey" type:"list"`
  7553. // A tag value or values for which you want to return all matching clusters
  7554. // that are associated with the specified tag value or values. For example,
  7555. // suppose that you have clusters that are tagged with values called admin and
  7556. // test. If you specify both of these tag values in the request, Amazon Redshift
  7557. // returns a response with the clusters that have either or both of these tag
  7558. // values associated with them.
  7559. TagValues []*string `locationNameList:"TagValue" type:"list"`
  7560. }
  7561. // String returns the string representation
  7562. func (s DescribeClustersInput) String() string {
  7563. return awsutil.Prettify(s)
  7564. }
  7565. // GoString returns the string representation
  7566. func (s DescribeClustersInput) GoString() string {
  7567. return s.String()
  7568. }
  7569. // Contains the output from the DescribeClusters action.
  7570. type DescribeClustersOutput struct {
  7571. _ struct{} `type:"structure"`
  7572. // A list of Cluster objects, where each object describes one cluster.
  7573. Clusters []*Cluster `locationNameList:"Cluster" type:"list"`
  7574. // A value that indicates the starting point for the next set of response records
  7575. // in a subsequent request. If a value is returned in a response, you can retrieve
  7576. // the next set of records by providing this returned marker value in the Marker
  7577. // parameter and retrying the command. If the Marker field is empty, all response
  7578. // records have been retrieved for the request.
  7579. Marker *string `type:"string"`
  7580. }
  7581. // String returns the string representation
  7582. func (s DescribeClustersOutput) String() string {
  7583. return awsutil.Prettify(s)
  7584. }
  7585. // GoString returns the string representation
  7586. func (s DescribeClustersOutput) GoString() string {
  7587. return s.String()
  7588. }
  7589. type DescribeDefaultClusterParametersInput struct {
  7590. _ struct{} `type:"structure"`
  7591. // An optional parameter that specifies the starting point to return a set of
  7592. // response records. When the results of a DescribeDefaultClusterParameters
  7593. // request exceed the value specified in MaxRecords, AWS returns a value in
  7594. // the Marker field of the response. You can retrieve the next set of response
  7595. // records by providing the returned marker value in the Marker parameter and
  7596. // retrying the request.
  7597. Marker *string `type:"string"`
  7598. // The maximum number of response records to return in each call. If the number
  7599. // of remaining response records exceeds the specified MaxRecords value, a value
  7600. // is returned in a marker field of the response. You can retrieve the next
  7601. // set of records by retrying the command with the returned marker value.
  7602. //
  7603. // Default: 100
  7604. //
  7605. // Constraints: minimum 20, maximum 100.
  7606. MaxRecords *int64 `type:"integer"`
  7607. // The name of the cluster parameter group family.
  7608. //
  7609. // ParameterGroupFamily is a required field
  7610. ParameterGroupFamily *string `type:"string" required:"true"`
  7611. }
  7612. // String returns the string representation
  7613. func (s DescribeDefaultClusterParametersInput) String() string {
  7614. return awsutil.Prettify(s)
  7615. }
  7616. // GoString returns the string representation
  7617. func (s DescribeDefaultClusterParametersInput) GoString() string {
  7618. return s.String()
  7619. }
  7620. // Validate inspects the fields of the type to determine if they are valid.
  7621. func (s *DescribeDefaultClusterParametersInput) Validate() error {
  7622. invalidParams := request.ErrInvalidParams{Context: "DescribeDefaultClusterParametersInput"}
  7623. if s.ParameterGroupFamily == nil {
  7624. invalidParams.Add(request.NewErrParamRequired("ParameterGroupFamily"))
  7625. }
  7626. if invalidParams.Len() > 0 {
  7627. return invalidParams
  7628. }
  7629. return nil
  7630. }
  7631. type DescribeDefaultClusterParametersOutput struct {
  7632. _ struct{} `type:"structure"`
  7633. // Describes the default cluster parameters for a parameter group family.
  7634. DefaultClusterParameters *DefaultClusterParameters `type:"structure"`
  7635. }
  7636. // String returns the string representation
  7637. func (s DescribeDefaultClusterParametersOutput) String() string {
  7638. return awsutil.Prettify(s)
  7639. }
  7640. // GoString returns the string representation
  7641. func (s DescribeDefaultClusterParametersOutput) GoString() string {
  7642. return s.String()
  7643. }
  7644. type DescribeEventCategoriesInput struct {
  7645. _ struct{} `type:"structure"`
  7646. // The source type, such as cluster or parameter group, to which the described
  7647. // event categories apply.
  7648. //
  7649. // Valid values: cluster, cluster-snapshot, cluster-parameter-group, and cluster-security-group.
  7650. SourceType *string `type:"string"`
  7651. }
  7652. // String returns the string representation
  7653. func (s DescribeEventCategoriesInput) String() string {
  7654. return awsutil.Prettify(s)
  7655. }
  7656. // GoString returns the string representation
  7657. func (s DescribeEventCategoriesInput) GoString() string {
  7658. return s.String()
  7659. }
  7660. type DescribeEventCategoriesOutput struct {
  7661. _ struct{} `type:"structure"`
  7662. // A list of event categories descriptions.
  7663. EventCategoriesMapList []*EventCategoriesMap `locationNameList:"EventCategoriesMap" type:"list"`
  7664. }
  7665. // String returns the string representation
  7666. func (s DescribeEventCategoriesOutput) String() string {
  7667. return awsutil.Prettify(s)
  7668. }
  7669. // GoString returns the string representation
  7670. func (s DescribeEventCategoriesOutput) GoString() string {
  7671. return s.String()
  7672. }
  7673. type DescribeEventSubscriptionsInput struct {
  7674. _ struct{} `type:"structure"`
  7675. // An optional parameter that specifies the starting point to return a set of
  7676. // response records. When the results of a DescribeEventSubscriptions request
  7677. // exceed the value specified in MaxRecords, AWS returns a value in the Marker
  7678. // field of the response. You can retrieve the next set of response records
  7679. // by providing the returned marker value in the Marker parameter and retrying
  7680. // the request.
  7681. Marker *string `type:"string"`
  7682. // The maximum number of response records to return in each call. If the number
  7683. // of remaining response records exceeds the specified MaxRecords value, a value
  7684. // is returned in a marker field of the response. You can retrieve the next
  7685. // set of records by retrying the command with the returned marker value.
  7686. //
  7687. // Default: 100
  7688. //
  7689. // Constraints: minimum 20, maximum 100.
  7690. MaxRecords *int64 `type:"integer"`
  7691. // The name of the Amazon Redshift event notification subscription to be described.
  7692. SubscriptionName *string `type:"string"`
  7693. }
  7694. // String returns the string representation
  7695. func (s DescribeEventSubscriptionsInput) String() string {
  7696. return awsutil.Prettify(s)
  7697. }
  7698. // GoString returns the string representation
  7699. func (s DescribeEventSubscriptionsInput) GoString() string {
  7700. return s.String()
  7701. }
  7702. type DescribeEventSubscriptionsOutput struct {
  7703. _ struct{} `type:"structure"`
  7704. // A list of event subscriptions.
  7705. EventSubscriptionsList []*EventSubscription `locationNameList:"EventSubscription" type:"list"`
  7706. // A value that indicates the starting point for the next set of response records
  7707. // in a subsequent request. If a value is returned in a response, you can retrieve
  7708. // the next set of records by providing this returned marker value in the Marker
  7709. // parameter and retrying the command. If the Marker field is empty, all response
  7710. // records have been retrieved for the request.
  7711. Marker *string `type:"string"`
  7712. }
  7713. // String returns the string representation
  7714. func (s DescribeEventSubscriptionsOutput) String() string {
  7715. return awsutil.Prettify(s)
  7716. }
  7717. // GoString returns the string representation
  7718. func (s DescribeEventSubscriptionsOutput) GoString() string {
  7719. return s.String()
  7720. }
  7721. type DescribeEventsInput struct {
  7722. _ struct{} `type:"structure"`
  7723. // The number of minutes prior to the time of the request for which to retrieve
  7724. // events. For example, if the request is sent at 18:00 and you specify a duration
  7725. // of 60, then only events which have occurred after 17:00 will be returned.
  7726. //
  7727. // Default: 60
  7728. Duration *int64 `type:"integer"`
  7729. // The end of the time interval for which to retrieve events, specified in ISO
  7730. // 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia
  7731. // page. (http://en.wikipedia.org/wiki/ISO_8601)
  7732. //
  7733. // Example: 2009-07-08T18:00Z
  7734. EndTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  7735. // An optional parameter that specifies the starting point to return a set of
  7736. // response records. When the results of a DescribeEvents request exceed the
  7737. // value specified in MaxRecords, AWS returns a value in the Marker field of
  7738. // the response. You can retrieve the next set of response records by providing
  7739. // the returned marker value in the Marker parameter and retrying the request.
  7740. Marker *string `type:"string"`
  7741. // The maximum number of response records to return in each call. If the number
  7742. // of remaining response records exceeds the specified MaxRecords value, a value
  7743. // is returned in a marker field of the response. You can retrieve the next
  7744. // set of records by retrying the command with the returned marker value.
  7745. //
  7746. // Default: 100
  7747. //
  7748. // Constraints: minimum 20, maximum 100.
  7749. MaxRecords *int64 `type:"integer"`
  7750. // The identifier of the event source for which events will be returned. If
  7751. // this parameter is not specified, then all sources are included in the response.
  7752. //
  7753. // Constraints:
  7754. //
  7755. // If SourceIdentifier is supplied, SourceType must also be provided.
  7756. //
  7757. // * Specify a cluster identifier when SourceType is cluster.
  7758. //
  7759. // * Specify a cluster security group name when SourceType is cluster-security-group.
  7760. //
  7761. // * Specify a cluster parameter group name when SourceType is cluster-parameter-group.
  7762. //
  7763. // * Specify a cluster snapshot identifier when SourceType is cluster-snapshot.
  7764. SourceIdentifier *string `type:"string"`
  7765. // The event source to retrieve events for. If no value is specified, all events
  7766. // are returned.
  7767. //
  7768. // Constraints:
  7769. //
  7770. // If SourceType is supplied, SourceIdentifier must also be provided.
  7771. //
  7772. // * Specify cluster when SourceIdentifier is a cluster identifier.
  7773. //
  7774. // * Specify cluster-security-group when SourceIdentifier is a cluster security
  7775. // group name.
  7776. //
  7777. // * Specify cluster-parameter-group when SourceIdentifier is a cluster parameter
  7778. // group name.
  7779. //
  7780. // * Specify cluster-snapshot when SourceIdentifier is a cluster snapshot
  7781. // identifier.
  7782. SourceType *string `type:"string" enum:"SourceType"`
  7783. // The beginning of the time interval to retrieve events for, specified in ISO
  7784. // 8601 format. For more information about ISO 8601, go to the ISO8601 Wikipedia
  7785. // page. (http://en.wikipedia.org/wiki/ISO_8601)
  7786. //
  7787. // Example: 2009-07-08T18:00Z
  7788. StartTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  7789. }
  7790. // String returns the string representation
  7791. func (s DescribeEventsInput) String() string {
  7792. return awsutil.Prettify(s)
  7793. }
  7794. // GoString returns the string representation
  7795. func (s DescribeEventsInput) GoString() string {
  7796. return s.String()
  7797. }
  7798. type DescribeEventsOutput struct {
  7799. _ struct{} `type:"structure"`
  7800. // A list of Event instances.
  7801. Events []*Event `locationNameList:"Event" type:"list"`
  7802. // A value that indicates the starting point for the next set of response records
  7803. // in a subsequent request. If a value is returned in a response, you can retrieve
  7804. // the next set of records by providing this returned marker value in the Marker
  7805. // parameter and retrying the command. If the Marker field is empty, all response
  7806. // records have been retrieved for the request.
  7807. Marker *string `type:"string"`
  7808. }
  7809. // String returns the string representation
  7810. func (s DescribeEventsOutput) String() string {
  7811. return awsutil.Prettify(s)
  7812. }
  7813. // GoString returns the string representation
  7814. func (s DescribeEventsOutput) GoString() string {
  7815. return s.String()
  7816. }
  7817. type DescribeHsmClientCertificatesInput struct {
  7818. _ struct{} `type:"structure"`
  7819. // The identifier of a specific HSM client certificate for which you want information.
  7820. // If no identifier is specified, information is returned for all HSM client
  7821. // certificates owned by your AWS customer account.
  7822. HsmClientCertificateIdentifier *string `type:"string"`
  7823. // An optional parameter that specifies the starting point to return a set of
  7824. // response records. When the results of a DescribeHsmClientCertificates request
  7825. // exceed the value specified in MaxRecords, AWS returns a value in the Marker
  7826. // field of the response. You can retrieve the next set of response records
  7827. // by providing the returned marker value in the Marker parameter and retrying
  7828. // the request.
  7829. Marker *string `type:"string"`
  7830. // The maximum number of response records to return in each call. If the number
  7831. // of remaining response records exceeds the specified MaxRecords value, a value
  7832. // is returned in a marker field of the response. You can retrieve the next
  7833. // set of records by retrying the command with the returned marker value.
  7834. //
  7835. // Default: 100
  7836. //
  7837. // Constraints: minimum 20, maximum 100.
  7838. MaxRecords *int64 `type:"integer"`
  7839. // A tag key or keys for which you want to return all matching HSM client certificates
  7840. // that are associated with the specified key or keys. For example, suppose
  7841. // that you have HSM client certificates that are tagged with keys called owner
  7842. // and environment. If you specify both of these tag keys in the request, Amazon
  7843. // Redshift returns a response with the HSM client certificates that have either
  7844. // or both of these tag keys associated with them.
  7845. TagKeys []*string `locationNameList:"TagKey" type:"list"`
  7846. // A tag value or values for which you want to return all matching HSM client
  7847. // certificates that are associated with the specified tag value or values.
  7848. // For example, suppose that you have HSM client certificates that are tagged
  7849. // with values called admin and test. If you specify both of these tag values
  7850. // in the request, Amazon Redshift returns a response with the HSM client certificates
  7851. // that have either or both of these tag values associated with them.
  7852. TagValues []*string `locationNameList:"TagValue" type:"list"`
  7853. }
  7854. // String returns the string representation
  7855. func (s DescribeHsmClientCertificatesInput) String() string {
  7856. return awsutil.Prettify(s)
  7857. }
  7858. // GoString returns the string representation
  7859. func (s DescribeHsmClientCertificatesInput) GoString() string {
  7860. return s.String()
  7861. }
  7862. type DescribeHsmClientCertificatesOutput struct {
  7863. _ struct{} `type:"structure"`
  7864. // A list of the identifiers for one or more HSM client certificates used by
  7865. // Amazon Redshift clusters to store and retrieve database encryption keys in
  7866. // an HSM.
  7867. HsmClientCertificates []*HsmClientCertificate `locationNameList:"HsmClientCertificate" type:"list"`
  7868. // A value that indicates the starting point for the next set of response records
  7869. // in a subsequent request. If a value is returned in a response, you can retrieve
  7870. // the next set of records by providing this returned marker value in the Marker
  7871. // parameter and retrying the command. If the Marker field is empty, all response
  7872. // records have been retrieved for the request.
  7873. Marker *string `type:"string"`
  7874. }
  7875. // String returns the string representation
  7876. func (s DescribeHsmClientCertificatesOutput) String() string {
  7877. return awsutil.Prettify(s)
  7878. }
  7879. // GoString returns the string representation
  7880. func (s DescribeHsmClientCertificatesOutput) GoString() string {
  7881. return s.String()
  7882. }
  7883. type DescribeHsmConfigurationsInput struct {
  7884. _ struct{} `type:"structure"`
  7885. // The identifier of a specific Amazon Redshift HSM configuration to be described.
  7886. // If no identifier is specified, information is returned for all HSM configurations
  7887. // owned by your AWS customer account.
  7888. HsmConfigurationIdentifier *string `type:"string"`
  7889. // An optional parameter that specifies the starting point to return a set of
  7890. // response records. When the results of a DescribeHsmConfigurations request
  7891. // exceed the value specified in MaxRecords, AWS returns a value in the Marker
  7892. // field of the response. You can retrieve the next set of response records
  7893. // by providing the returned marker value in the Marker parameter and retrying
  7894. // the request.
  7895. Marker *string `type:"string"`
  7896. // The maximum number of response records to return in each call. If the number
  7897. // of remaining response records exceeds the specified MaxRecords value, a value
  7898. // is returned in a marker field of the response. You can retrieve the next
  7899. // set of records by retrying the command with the returned marker value.
  7900. //
  7901. // Default: 100
  7902. //
  7903. // Constraints: minimum 20, maximum 100.
  7904. MaxRecords *int64 `type:"integer"`
  7905. // A tag key or keys for which you want to return all matching HSM configurations
  7906. // that are associated with the specified key or keys. For example, suppose
  7907. // that you have HSM configurations that are tagged with keys called owner and
  7908. // environment. If you specify both of these tag keys in the request, Amazon
  7909. // Redshift returns a response with the HSM configurations that have either
  7910. // or both of these tag keys associated with them.
  7911. TagKeys []*string `locationNameList:"TagKey" type:"list"`
  7912. // A tag value or values for which you want to return all matching HSM configurations
  7913. // that are associated with the specified tag value or values. For example,
  7914. // suppose that you have HSM configurations that are tagged with values called
  7915. // admin and test. If you specify both of these tag values in the request, Amazon
  7916. // Redshift returns a response with the HSM configurations that have either
  7917. // or both of these tag values associated with them.
  7918. TagValues []*string `locationNameList:"TagValue" type:"list"`
  7919. }
  7920. // String returns the string representation
  7921. func (s DescribeHsmConfigurationsInput) String() string {
  7922. return awsutil.Prettify(s)
  7923. }
  7924. // GoString returns the string representation
  7925. func (s DescribeHsmConfigurationsInput) GoString() string {
  7926. return s.String()
  7927. }
  7928. type DescribeHsmConfigurationsOutput struct {
  7929. _ struct{} `type:"structure"`
  7930. // A list of HsmConfiguration objects.
  7931. HsmConfigurations []*HsmConfiguration `locationNameList:"HsmConfiguration" type:"list"`
  7932. // A value that indicates the starting point for the next set of response records
  7933. // in a subsequent request. If a value is returned in a response, you can retrieve
  7934. // the next set of records by providing this returned marker value in the Marker
  7935. // parameter and retrying the command. If the Marker field is empty, all response
  7936. // records have been retrieved for the request.
  7937. Marker *string `type:"string"`
  7938. }
  7939. // String returns the string representation
  7940. func (s DescribeHsmConfigurationsOutput) String() string {
  7941. return awsutil.Prettify(s)
  7942. }
  7943. // GoString returns the string representation
  7944. func (s DescribeHsmConfigurationsOutput) GoString() string {
  7945. return s.String()
  7946. }
  7947. type DescribeLoggingStatusInput struct {
  7948. _ struct{} `type:"structure"`
  7949. // The identifier of the cluster from which to get the logging status.
  7950. //
  7951. // Example: examplecluster
  7952. //
  7953. // ClusterIdentifier is a required field
  7954. ClusterIdentifier *string `type:"string" required:"true"`
  7955. }
  7956. // String returns the string representation
  7957. func (s DescribeLoggingStatusInput) String() string {
  7958. return awsutil.Prettify(s)
  7959. }
  7960. // GoString returns the string representation
  7961. func (s DescribeLoggingStatusInput) GoString() string {
  7962. return s.String()
  7963. }
  7964. // Validate inspects the fields of the type to determine if they are valid.
  7965. func (s *DescribeLoggingStatusInput) Validate() error {
  7966. invalidParams := request.ErrInvalidParams{Context: "DescribeLoggingStatusInput"}
  7967. if s.ClusterIdentifier == nil {
  7968. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  7969. }
  7970. if invalidParams.Len() > 0 {
  7971. return invalidParams
  7972. }
  7973. return nil
  7974. }
  7975. type DescribeOrderableClusterOptionsInput struct {
  7976. _ struct{} `type:"structure"`
  7977. // The version filter value. Specify this parameter to show only the available
  7978. // offerings matching the specified version.
  7979. //
  7980. // Default: All versions.
  7981. //
  7982. // Constraints: Must be one of the version returned from DescribeClusterVersions.
  7983. ClusterVersion *string `type:"string"`
  7984. // An optional parameter that specifies the starting point to return a set of
  7985. // response records. When the results of a DescribeOrderableClusterOptions request
  7986. // exceed the value specified in MaxRecords, AWS returns a value in the Marker
  7987. // field of the response. You can retrieve the next set of response records
  7988. // by providing the returned marker value in the Marker parameter and retrying
  7989. // the request.
  7990. Marker *string `type:"string"`
  7991. // The maximum number of response records to return in each call. If the number
  7992. // of remaining response records exceeds the specified MaxRecords value, a value
  7993. // is returned in a marker field of the response. You can retrieve the next
  7994. // set of records by retrying the command with the returned marker value.
  7995. //
  7996. // Default: 100
  7997. //
  7998. // Constraints: minimum 20, maximum 100.
  7999. MaxRecords *int64 `type:"integer"`
  8000. // The node type filter value. Specify this parameter to show only the available
  8001. // offerings matching the specified node type.
  8002. NodeType *string `type:"string"`
  8003. }
  8004. // String returns the string representation
  8005. func (s DescribeOrderableClusterOptionsInput) String() string {
  8006. return awsutil.Prettify(s)
  8007. }
  8008. // GoString returns the string representation
  8009. func (s DescribeOrderableClusterOptionsInput) GoString() string {
  8010. return s.String()
  8011. }
  8012. // Contains the output from the DescribeOrderableClusterOptions action.
  8013. type DescribeOrderableClusterOptionsOutput struct {
  8014. _ struct{} `type:"structure"`
  8015. // A value that indicates the starting point for the next set of response records
  8016. // in a subsequent request. If a value is returned in a response, you can retrieve
  8017. // the next set of records by providing this returned marker value in the Marker
  8018. // parameter and retrying the command. If the Marker field is empty, all response
  8019. // records have been retrieved for the request.
  8020. Marker *string `type:"string"`
  8021. // An OrderableClusterOption structure containing information about orderable
  8022. // options for the cluster.
  8023. OrderableClusterOptions []*OrderableClusterOption `locationNameList:"OrderableClusterOption" type:"list"`
  8024. }
  8025. // String returns the string representation
  8026. func (s DescribeOrderableClusterOptionsOutput) String() string {
  8027. return awsutil.Prettify(s)
  8028. }
  8029. // GoString returns the string representation
  8030. func (s DescribeOrderableClusterOptionsOutput) GoString() string {
  8031. return s.String()
  8032. }
  8033. type DescribeReservedNodeOfferingsInput struct {
  8034. _ struct{} `type:"structure"`
  8035. // An optional parameter that specifies the starting point to return a set of
  8036. // response records. When the results of a DescribeReservedNodeOfferings request
  8037. // exceed the value specified in MaxRecords, AWS returns a value in the Marker
  8038. // field of the response. You can retrieve the next set of response records
  8039. // by providing the returned marker value in the Marker parameter and retrying
  8040. // the request.
  8041. Marker *string `type:"string"`
  8042. // The maximum number of response records to return in each call. If the number
  8043. // of remaining response records exceeds the specified MaxRecords value, a value
  8044. // is returned in a marker field of the response. You can retrieve the next
  8045. // set of records by retrying the command with the returned marker value.
  8046. //
  8047. // Default: 100
  8048. //
  8049. // Constraints: minimum 20, maximum 100.
  8050. MaxRecords *int64 `type:"integer"`
  8051. // The unique identifier for the offering.
  8052. ReservedNodeOfferingId *string `type:"string"`
  8053. }
  8054. // String returns the string representation
  8055. func (s DescribeReservedNodeOfferingsInput) String() string {
  8056. return awsutil.Prettify(s)
  8057. }
  8058. // GoString returns the string representation
  8059. func (s DescribeReservedNodeOfferingsInput) GoString() string {
  8060. return s.String()
  8061. }
  8062. type DescribeReservedNodeOfferingsOutput struct {
  8063. _ struct{} `type:"structure"`
  8064. // A value that indicates the starting point for the next set of response records
  8065. // in a subsequent request. If a value is returned in a response, you can retrieve
  8066. // the next set of records by providing this returned marker value in the Marker
  8067. // parameter and retrying the command. If the Marker field is empty, all response
  8068. // records have been retrieved for the request.
  8069. Marker *string `type:"string"`
  8070. // A list of ReservedNodeOffering objects.
  8071. ReservedNodeOfferings []*ReservedNodeOffering `locationNameList:"ReservedNodeOffering" type:"list"`
  8072. }
  8073. // String returns the string representation
  8074. func (s DescribeReservedNodeOfferingsOutput) String() string {
  8075. return awsutil.Prettify(s)
  8076. }
  8077. // GoString returns the string representation
  8078. func (s DescribeReservedNodeOfferingsOutput) GoString() string {
  8079. return s.String()
  8080. }
  8081. type DescribeReservedNodesInput struct {
  8082. _ struct{} `type:"structure"`
  8083. // An optional parameter that specifies the starting point to return a set of
  8084. // response records. When the results of a DescribeReservedNodes request exceed
  8085. // the value specified in MaxRecords, AWS returns a value in the Marker field
  8086. // of the response. You can retrieve the next set of response records by providing
  8087. // the returned marker value in the Marker parameter and retrying the request.
  8088. Marker *string `type:"string"`
  8089. // The maximum number of response records to return in each call. If the number
  8090. // of remaining response records exceeds the specified MaxRecords value, a value
  8091. // is returned in a marker field of the response. You can retrieve the next
  8092. // set of records by retrying the command with the returned marker value.
  8093. //
  8094. // Default: 100
  8095. //
  8096. // Constraints: minimum 20, maximum 100.
  8097. MaxRecords *int64 `type:"integer"`
  8098. // Identifier for the node reservation.
  8099. ReservedNodeId *string `type:"string"`
  8100. }
  8101. // String returns the string representation
  8102. func (s DescribeReservedNodesInput) String() string {
  8103. return awsutil.Prettify(s)
  8104. }
  8105. // GoString returns the string representation
  8106. func (s DescribeReservedNodesInput) GoString() string {
  8107. return s.String()
  8108. }
  8109. type DescribeReservedNodesOutput struct {
  8110. _ struct{} `type:"structure"`
  8111. // A value that indicates the starting point for the next set of response records
  8112. // in a subsequent request. If a value is returned in a response, you can retrieve
  8113. // the next set of records by providing this returned marker value in the Marker
  8114. // parameter and retrying the command. If the Marker field is empty, all response
  8115. // records have been retrieved for the request.
  8116. Marker *string `type:"string"`
  8117. // The list of ReservedNode objects.
  8118. ReservedNodes []*ReservedNode `locationNameList:"ReservedNode" type:"list"`
  8119. }
  8120. // String returns the string representation
  8121. func (s DescribeReservedNodesOutput) String() string {
  8122. return awsutil.Prettify(s)
  8123. }
  8124. // GoString returns the string representation
  8125. func (s DescribeReservedNodesOutput) GoString() string {
  8126. return s.String()
  8127. }
  8128. type DescribeResizeInput struct {
  8129. _ struct{} `type:"structure"`
  8130. // The unique identifier of a cluster whose resize progress you are requesting.
  8131. // This parameter is case-sensitive.
  8132. //
  8133. // By default, resize operations for all clusters defined for an AWS account
  8134. // are returned.
  8135. //
  8136. // ClusterIdentifier is a required field
  8137. ClusterIdentifier *string `type:"string" required:"true"`
  8138. }
  8139. // String returns the string representation
  8140. func (s DescribeResizeInput) String() string {
  8141. return awsutil.Prettify(s)
  8142. }
  8143. // GoString returns the string representation
  8144. func (s DescribeResizeInput) GoString() string {
  8145. return s.String()
  8146. }
  8147. // Validate inspects the fields of the type to determine if they are valid.
  8148. func (s *DescribeResizeInput) Validate() error {
  8149. invalidParams := request.ErrInvalidParams{Context: "DescribeResizeInput"}
  8150. if s.ClusterIdentifier == nil {
  8151. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  8152. }
  8153. if invalidParams.Len() > 0 {
  8154. return invalidParams
  8155. }
  8156. return nil
  8157. }
  8158. // Describes the result of a cluster resize operation.
  8159. type DescribeResizeOutput struct {
  8160. _ struct{} `type:"structure"`
  8161. // The average rate of the resize operation over the last few minutes, measured
  8162. // in megabytes per second. After the resize operation completes, this value
  8163. // shows the average rate of the entire resize operation.
  8164. AvgResizeRateInMegaBytesPerSecond *float64 `type:"double"`
  8165. // The amount of seconds that have elapsed since the resize operation began.
  8166. // After the resize operation completes, this value shows the total actual time,
  8167. // in seconds, for the resize operation.
  8168. ElapsedTimeInSeconds *int64 `type:"long"`
  8169. // The estimated time remaining, in seconds, until the resize operation is complete.
  8170. // This value is calculated based on the average resize rate and the estimated
  8171. // amount of data remaining to be processed. Once the resize operation is complete,
  8172. // this value will be 0.
  8173. EstimatedTimeToCompletionInSeconds *int64 `type:"long"`
  8174. // The names of tables that have been completely imported .
  8175. //
  8176. // Valid Values: List of table names.
  8177. ImportTablesCompleted []*string `type:"list"`
  8178. // The names of tables that are being currently imported.
  8179. //
  8180. // Valid Values: List of table names.
  8181. ImportTablesInProgress []*string `type:"list"`
  8182. // The names of tables that have not been yet imported.
  8183. //
  8184. // Valid Values: List of table names
  8185. ImportTablesNotStarted []*string `type:"list"`
  8186. // While the resize operation is in progress, this value shows the current amount
  8187. // of data, in megabytes, that has been processed so far. When the resize operation
  8188. // is complete, this value shows the total amount of data, in megabytes, on
  8189. // the cluster, which may be more or less than TotalResizeDataInMegaBytes (the
  8190. // estimated total amount of data before resize).
  8191. ProgressInMegaBytes *int64 `type:"long"`
  8192. // The status of the resize operation.
  8193. //
  8194. // Valid Values: NONE | IN_PROGRESS | FAILED | SUCCEEDED
  8195. Status *string `type:"string"`
  8196. // The cluster type after the resize operation is complete.
  8197. //
  8198. // Valid Values: multi-node | single-node
  8199. TargetClusterType *string `type:"string"`
  8200. // The node type that the cluster will have after the resize operation is complete.
  8201. TargetNodeType *string `type:"string"`
  8202. // The number of nodes that the cluster will have after the resize operation
  8203. // is complete.
  8204. TargetNumberOfNodes *int64 `type:"integer"`
  8205. // The estimated total amount of data, in megabytes, on the cluster before the
  8206. // resize operation began.
  8207. TotalResizeDataInMegaBytes *int64 `type:"long"`
  8208. }
  8209. // String returns the string representation
  8210. func (s DescribeResizeOutput) String() string {
  8211. return awsutil.Prettify(s)
  8212. }
  8213. // GoString returns the string representation
  8214. func (s DescribeResizeOutput) GoString() string {
  8215. return s.String()
  8216. }
  8217. // The result of the DescribeSnapshotCopyGrants action.
  8218. type DescribeSnapshotCopyGrantsInput struct {
  8219. _ struct{} `type:"structure"`
  8220. // An optional parameter that specifies the starting point to return a set of
  8221. // response records. When the results of a DescribeSnapshotCopyGrant request
  8222. // exceed the value specified in MaxRecords, AWS returns a value in the Marker
  8223. // field of the response. You can retrieve the next set of response records
  8224. // by providing the returned marker value in the Marker parameter and retrying
  8225. // the request.
  8226. //
  8227. // Constraints: You can specify either the SnapshotCopyGrantName parameter or
  8228. // the Marker parameter, but not both.
  8229. Marker *string `type:"string"`
  8230. // The maximum number of response records to return in each call. If the number
  8231. // of remaining response records exceeds the specified MaxRecords value, a value
  8232. // is returned in a marker field of the response. You can retrieve the next
  8233. // set of records by retrying the command with the returned marker value.
  8234. //
  8235. // Default: 100
  8236. //
  8237. // Constraints: minimum 20, maximum 100.
  8238. MaxRecords *int64 `type:"integer"`
  8239. // The name of the snapshot copy grant.
  8240. SnapshotCopyGrantName *string `type:"string"`
  8241. // A tag key or keys for which you want to return all matching resources that
  8242. // are associated with the specified key or keys. For example, suppose that
  8243. // you have resources tagged with keys called owner and environment. If you
  8244. // specify both of these tag keys in the request, Amazon Redshift returns a
  8245. // response with all resources that have either or both of these tag keys associated
  8246. // with them.
  8247. TagKeys []*string `locationNameList:"TagKey" type:"list"`
  8248. // A tag value or values for which you want to return all matching resources
  8249. // that are associated with the specified value or values. For example, suppose
  8250. // that you have resources tagged with values called admin and test. If you
  8251. // specify both of these tag values in the request, Amazon Redshift returns
  8252. // a response with all resources that have either or both of these tag values
  8253. // associated with them.
  8254. TagValues []*string `locationNameList:"TagValue" type:"list"`
  8255. }
  8256. // String returns the string representation
  8257. func (s DescribeSnapshotCopyGrantsInput) String() string {
  8258. return awsutil.Prettify(s)
  8259. }
  8260. // GoString returns the string representation
  8261. func (s DescribeSnapshotCopyGrantsInput) GoString() string {
  8262. return s.String()
  8263. }
  8264. type DescribeSnapshotCopyGrantsOutput struct {
  8265. _ struct{} `type:"structure"`
  8266. // An optional parameter that specifies the starting point to return a set of
  8267. // response records. When the results of a DescribeSnapshotCopyGrant request
  8268. // exceed the value specified in MaxRecords, AWS returns a value in the Marker
  8269. // field of the response. You can retrieve the next set of response records
  8270. // by providing the returned marker value in the Marker parameter and retrying
  8271. // the request.
  8272. //
  8273. // Constraints: You can specify either the SnapshotCopyGrantName parameter or
  8274. // the Marker parameter, but not both.
  8275. Marker *string `type:"string"`
  8276. // The list of SnapshotCopyGrant objects.
  8277. SnapshotCopyGrants []*SnapshotCopyGrant `locationNameList:"SnapshotCopyGrant" type:"list"`
  8278. }
  8279. // String returns the string representation
  8280. func (s DescribeSnapshotCopyGrantsOutput) String() string {
  8281. return awsutil.Prettify(s)
  8282. }
  8283. // GoString returns the string representation
  8284. func (s DescribeSnapshotCopyGrantsOutput) GoString() string {
  8285. return s.String()
  8286. }
  8287. type DescribeTableRestoreStatusInput struct {
  8288. _ struct{} `type:"structure"`
  8289. // The Amazon Redshift cluster that the table is being restored to.
  8290. ClusterIdentifier *string `type:"string"`
  8291. // An optional pagination token provided by a previous DescribeTableRestoreStatus
  8292. // request. If this parameter is specified, the response includes only records
  8293. // beyond the marker, up to the value specified by the MaxRecords parameter.
  8294. Marker *string `type:"string"`
  8295. // The maximum number of records to include in the response. If more records
  8296. // exist than the specified MaxRecords value, a pagination token called a marker
  8297. // is included in the response so that the remaining results can be retrieved.
  8298. MaxRecords *int64 `type:"integer"`
  8299. // The identifier of the table restore request to return status for. If you
  8300. // don't specify a TableRestoreRequestId value, then DescribeTableRestoreStatus
  8301. // returns the status of all in-progress table restore requests.
  8302. TableRestoreRequestId *string `type:"string"`
  8303. }
  8304. // String returns the string representation
  8305. func (s DescribeTableRestoreStatusInput) String() string {
  8306. return awsutil.Prettify(s)
  8307. }
  8308. // GoString returns the string representation
  8309. func (s DescribeTableRestoreStatusInput) GoString() string {
  8310. return s.String()
  8311. }
  8312. type DescribeTableRestoreStatusOutput struct {
  8313. _ struct{} `type:"structure"`
  8314. // A pagination token that can be used in a subsequent DescribeTableRestoreStatus
  8315. // request.
  8316. Marker *string `type:"string"`
  8317. // A list of status details for one or more table restore requests.
  8318. TableRestoreStatusDetails []*TableRestoreStatus `locationNameList:"TableRestoreStatus" type:"list"`
  8319. }
  8320. // String returns the string representation
  8321. func (s DescribeTableRestoreStatusOutput) String() string {
  8322. return awsutil.Prettify(s)
  8323. }
  8324. // GoString returns the string representation
  8325. func (s DescribeTableRestoreStatusOutput) GoString() string {
  8326. return s.String()
  8327. }
  8328. type DescribeTagsInput struct {
  8329. _ struct{} `type:"structure"`
  8330. // A value that indicates the starting point for the next set of response records
  8331. // in a subsequent request. If a value is returned in a response, you can retrieve
  8332. // the next set of records by providing this returned marker value in the marker
  8333. // parameter and retrying the command. If the marker field is empty, all response
  8334. // records have been retrieved for the request.
  8335. Marker *string `type:"string"`
  8336. // The maximum number or response records to return in each call. If the number
  8337. // of remaining response records exceeds the specified MaxRecords value, a value
  8338. // is returned in a marker field of the response. You can retrieve the next
  8339. // set of records by retrying the command with the returned marker value.
  8340. MaxRecords *int64 `type:"integer"`
  8341. // The Amazon Resource Name (ARN) for which you want to describe the tag or
  8342. // tags. For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.
  8343. ResourceName *string `type:"string"`
  8344. // The type of resource with which you want to view tags. Valid resource types
  8345. // are:
  8346. //
  8347. // * Cluster
  8348. //
  8349. // * CIDR/IP
  8350. //
  8351. // * EC2 security group
  8352. //
  8353. // * Snapshot
  8354. //
  8355. // * Cluster security group
  8356. //
  8357. // * Subnet group
  8358. //
  8359. // * HSM connection
  8360. //
  8361. // * HSM certificate
  8362. //
  8363. // * Parameter group
  8364. //
  8365. // * Snapshot copy grant
  8366. //
  8367. // For more information about Amazon Redshift resource types and constructing
  8368. // ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) (http://docs.aws.amazon.com/redshift/latest/mgmt/constructing-redshift-arn.html)
  8369. // in the Amazon Redshift Cluster Management Guide.
  8370. ResourceType *string `type:"string"`
  8371. // A tag key or keys for which you want to return all matching resources that
  8372. // are associated with the specified key or keys. For example, suppose that
  8373. // you have resources tagged with keys called owner and environment. If you
  8374. // specify both of these tag keys in the request, Amazon Redshift returns a
  8375. // response with all resources that have either or both of these tag keys associated
  8376. // with them.
  8377. TagKeys []*string `locationNameList:"TagKey" type:"list"`
  8378. // A tag value or values for which you want to return all matching resources
  8379. // that are associated with the specified value or values. For example, suppose
  8380. // that you have resources tagged with values called admin and test. If you
  8381. // specify both of these tag values in the request, Amazon Redshift returns
  8382. // a response with all resources that have either or both of these tag values
  8383. // associated with them.
  8384. TagValues []*string `locationNameList:"TagValue" type:"list"`
  8385. }
  8386. // String returns the string representation
  8387. func (s DescribeTagsInput) String() string {
  8388. return awsutil.Prettify(s)
  8389. }
  8390. // GoString returns the string representation
  8391. func (s DescribeTagsInput) GoString() string {
  8392. return s.String()
  8393. }
  8394. type DescribeTagsOutput struct {
  8395. _ struct{} `type:"structure"`
  8396. // A value that indicates the starting point for the next set of response records
  8397. // in a subsequent request. If a value is returned in a response, you can retrieve
  8398. // the next set of records by providing this returned marker value in the Marker
  8399. // parameter and retrying the command. If the Marker field is empty, all response
  8400. // records have been retrieved for the request.
  8401. Marker *string `type:"string"`
  8402. // A list of tags with their associated resources.
  8403. TaggedResources []*TaggedResource `locationNameList:"TaggedResource" type:"list"`
  8404. }
  8405. // String returns the string representation
  8406. func (s DescribeTagsOutput) String() string {
  8407. return awsutil.Prettify(s)
  8408. }
  8409. // GoString returns the string representation
  8410. func (s DescribeTagsOutput) GoString() string {
  8411. return s.String()
  8412. }
  8413. type DisableLoggingInput struct {
  8414. _ struct{} `type:"structure"`
  8415. // The identifier of the cluster on which logging is to be stopped.
  8416. //
  8417. // Example: examplecluster
  8418. //
  8419. // ClusterIdentifier is a required field
  8420. ClusterIdentifier *string `type:"string" required:"true"`
  8421. }
  8422. // String returns the string representation
  8423. func (s DisableLoggingInput) String() string {
  8424. return awsutil.Prettify(s)
  8425. }
  8426. // GoString returns the string representation
  8427. func (s DisableLoggingInput) GoString() string {
  8428. return s.String()
  8429. }
  8430. // Validate inspects the fields of the type to determine if they are valid.
  8431. func (s *DisableLoggingInput) Validate() error {
  8432. invalidParams := request.ErrInvalidParams{Context: "DisableLoggingInput"}
  8433. if s.ClusterIdentifier == nil {
  8434. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  8435. }
  8436. if invalidParams.Len() > 0 {
  8437. return invalidParams
  8438. }
  8439. return nil
  8440. }
  8441. type DisableSnapshotCopyInput struct {
  8442. _ struct{} `type:"structure"`
  8443. // The unique identifier of the source cluster that you want to disable copying
  8444. // of snapshots to a destination region.
  8445. //
  8446. // Constraints: Must be the valid name of an existing cluster that has cross-region
  8447. // snapshot copy enabled.
  8448. //
  8449. // ClusterIdentifier is a required field
  8450. ClusterIdentifier *string `type:"string" required:"true"`
  8451. }
  8452. // String returns the string representation
  8453. func (s DisableSnapshotCopyInput) String() string {
  8454. return awsutil.Prettify(s)
  8455. }
  8456. // GoString returns the string representation
  8457. func (s DisableSnapshotCopyInput) GoString() string {
  8458. return s.String()
  8459. }
  8460. // Validate inspects the fields of the type to determine if they are valid.
  8461. func (s *DisableSnapshotCopyInput) Validate() error {
  8462. invalidParams := request.ErrInvalidParams{Context: "DisableSnapshotCopyInput"}
  8463. if s.ClusterIdentifier == nil {
  8464. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  8465. }
  8466. if invalidParams.Len() > 0 {
  8467. return invalidParams
  8468. }
  8469. return nil
  8470. }
  8471. type DisableSnapshotCopyOutput struct {
  8472. _ struct{} `type:"structure"`
  8473. // Describes a cluster.
  8474. Cluster *Cluster `type:"structure"`
  8475. }
  8476. // String returns the string representation
  8477. func (s DisableSnapshotCopyOutput) String() string {
  8478. return awsutil.Prettify(s)
  8479. }
  8480. // GoString returns the string representation
  8481. func (s DisableSnapshotCopyOutput) GoString() string {
  8482. return s.String()
  8483. }
  8484. // Describes an Amazon EC2 security group.
  8485. type EC2SecurityGroup struct {
  8486. _ struct{} `type:"structure"`
  8487. // The name of the EC2 Security Group.
  8488. EC2SecurityGroupName *string `type:"string"`
  8489. // The AWS ID of the owner of the EC2 security group specified in the EC2SecurityGroupName
  8490. // field.
  8491. EC2SecurityGroupOwnerId *string `type:"string"`
  8492. // The status of the EC2 security group.
  8493. Status *string `type:"string"`
  8494. // The list of tags for the EC2 security group.
  8495. Tags []*Tag `locationNameList:"Tag" type:"list"`
  8496. }
  8497. // String returns the string representation
  8498. func (s EC2SecurityGroup) String() string {
  8499. return awsutil.Prettify(s)
  8500. }
  8501. // GoString returns the string representation
  8502. func (s EC2SecurityGroup) GoString() string {
  8503. return s.String()
  8504. }
  8505. // Describes the status of the elastic IP (EIP) address.
  8506. type ElasticIpStatus struct {
  8507. _ struct{} `type:"structure"`
  8508. // The elastic IP (EIP) address for the cluster.
  8509. ElasticIp *string `type:"string"`
  8510. // The status of the elastic IP (EIP) address.
  8511. Status *string `type:"string"`
  8512. }
  8513. // String returns the string representation
  8514. func (s ElasticIpStatus) String() string {
  8515. return awsutil.Prettify(s)
  8516. }
  8517. // GoString returns the string representation
  8518. func (s ElasticIpStatus) GoString() string {
  8519. return s.String()
  8520. }
  8521. type EnableLoggingInput struct {
  8522. _ struct{} `type:"structure"`
  8523. // The name of an existing S3 bucket where the log files are to be stored.
  8524. //
  8525. // Constraints:
  8526. //
  8527. // * Must be in the same region as the cluster
  8528. //
  8529. // * The cluster must have read bucket and put object permissions
  8530. //
  8531. // BucketName is a required field
  8532. BucketName *string `type:"string" required:"true"`
  8533. // The identifier of the cluster on which logging is to be started.
  8534. //
  8535. // Example: examplecluster
  8536. //
  8537. // ClusterIdentifier is a required field
  8538. ClusterIdentifier *string `type:"string" required:"true"`
  8539. // The prefix applied to the log file names.
  8540. //
  8541. // Constraints:
  8542. //
  8543. // * Cannot exceed 512 characters
  8544. //
  8545. // * Cannot contain spaces( ), double quotes ("), single quotes ('), a backslash
  8546. // (\), or control characters. The hexadecimal codes for invalid characters
  8547. // are:
  8548. //
  8549. // x00 to x20
  8550. //
  8551. // x22
  8552. //
  8553. // x27
  8554. //
  8555. // x5c
  8556. //
  8557. // x7f or larger
  8558. S3KeyPrefix *string `type:"string"`
  8559. }
  8560. // String returns the string representation
  8561. func (s EnableLoggingInput) String() string {
  8562. return awsutil.Prettify(s)
  8563. }
  8564. // GoString returns the string representation
  8565. func (s EnableLoggingInput) GoString() string {
  8566. return s.String()
  8567. }
  8568. // Validate inspects the fields of the type to determine if they are valid.
  8569. func (s *EnableLoggingInput) Validate() error {
  8570. invalidParams := request.ErrInvalidParams{Context: "EnableLoggingInput"}
  8571. if s.BucketName == nil {
  8572. invalidParams.Add(request.NewErrParamRequired("BucketName"))
  8573. }
  8574. if s.ClusterIdentifier == nil {
  8575. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  8576. }
  8577. if invalidParams.Len() > 0 {
  8578. return invalidParams
  8579. }
  8580. return nil
  8581. }
  8582. type EnableSnapshotCopyInput struct {
  8583. _ struct{} `type:"structure"`
  8584. // The unique identifier of the source cluster to copy snapshots from.
  8585. //
  8586. // Constraints: Must be the valid name of an existing cluster that does not
  8587. // already have cross-region snapshot copy enabled.
  8588. //
  8589. // ClusterIdentifier is a required field
  8590. ClusterIdentifier *string `type:"string" required:"true"`
  8591. // The destination region that you want to copy snapshots to.
  8592. //
  8593. // Constraints: Must be the name of a valid region. For more information, see
  8594. // Regions and Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html#redshift_region)
  8595. // in the Amazon Web Services General Reference.
  8596. //
  8597. // DestinationRegion is a required field
  8598. DestinationRegion *string `type:"string" required:"true"`
  8599. // The number of days to retain automated snapshots in the destination region
  8600. // after they are copied from the source region.
  8601. //
  8602. // Default: 7.
  8603. //
  8604. // Constraints: Must be at least 1 and no more than 35.
  8605. RetentionPeriod *int64 `type:"integer"`
  8606. // The name of the snapshot copy grant to use when snapshots of an AWS KMS-encrypted
  8607. // cluster are copied to the destination region.
  8608. SnapshotCopyGrantName *string `type:"string"`
  8609. }
  8610. // String returns the string representation
  8611. func (s EnableSnapshotCopyInput) String() string {
  8612. return awsutil.Prettify(s)
  8613. }
  8614. // GoString returns the string representation
  8615. func (s EnableSnapshotCopyInput) GoString() string {
  8616. return s.String()
  8617. }
  8618. // Validate inspects the fields of the type to determine if they are valid.
  8619. func (s *EnableSnapshotCopyInput) Validate() error {
  8620. invalidParams := request.ErrInvalidParams{Context: "EnableSnapshotCopyInput"}
  8621. if s.ClusterIdentifier == nil {
  8622. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  8623. }
  8624. if s.DestinationRegion == nil {
  8625. invalidParams.Add(request.NewErrParamRequired("DestinationRegion"))
  8626. }
  8627. if invalidParams.Len() > 0 {
  8628. return invalidParams
  8629. }
  8630. return nil
  8631. }
  8632. type EnableSnapshotCopyOutput struct {
  8633. _ struct{} `type:"structure"`
  8634. // Describes a cluster.
  8635. Cluster *Cluster `type:"structure"`
  8636. }
  8637. // String returns the string representation
  8638. func (s EnableSnapshotCopyOutput) String() string {
  8639. return awsutil.Prettify(s)
  8640. }
  8641. // GoString returns the string representation
  8642. func (s EnableSnapshotCopyOutput) GoString() string {
  8643. return s.String()
  8644. }
  8645. // Describes a connection endpoint.
  8646. type Endpoint struct {
  8647. _ struct{} `type:"structure"`
  8648. // The DNS address of the Cluster.
  8649. Address *string `type:"string"`
  8650. // The port that the database engine is listening on.
  8651. Port *int64 `type:"integer"`
  8652. }
  8653. // String returns the string representation
  8654. func (s Endpoint) String() string {
  8655. return awsutil.Prettify(s)
  8656. }
  8657. // GoString returns the string representation
  8658. func (s Endpoint) GoString() string {
  8659. return s.String()
  8660. }
  8661. // Describes an event.
  8662. type Event struct {
  8663. _ struct{} `type:"structure"`
  8664. // The date and time of the event.
  8665. Date *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  8666. // A list of the event categories.
  8667. //
  8668. // Values: Configuration, Management, Monitoring, Security
  8669. EventCategories []*string `locationNameList:"EventCategory" type:"list"`
  8670. // The identifier of the event.
  8671. EventId *string `type:"string"`
  8672. // The text of this event.
  8673. Message *string `type:"string"`
  8674. // The severity of the event.
  8675. //
  8676. // Values: ERROR, INFO
  8677. Severity *string `type:"string"`
  8678. // The identifier for the source of the event.
  8679. SourceIdentifier *string `type:"string"`
  8680. // The source type for this event.
  8681. SourceType *string `type:"string" enum:"SourceType"`
  8682. }
  8683. // String returns the string representation
  8684. func (s Event) String() string {
  8685. return awsutil.Prettify(s)
  8686. }
  8687. // GoString returns the string representation
  8688. func (s Event) GoString() string {
  8689. return s.String()
  8690. }
  8691. // Describes event categories.
  8692. type EventCategoriesMap struct {
  8693. _ struct{} `type:"structure"`
  8694. // The events in the event category.
  8695. Events []*EventInfoMap `locationNameList:"EventInfoMap" type:"list"`
  8696. // The source type, such as cluster or cluster-snapshot, that the returned categories
  8697. // belong to.
  8698. SourceType *string `type:"string"`
  8699. }
  8700. // String returns the string representation
  8701. func (s EventCategoriesMap) String() string {
  8702. return awsutil.Prettify(s)
  8703. }
  8704. // GoString returns the string representation
  8705. func (s EventCategoriesMap) GoString() string {
  8706. return s.String()
  8707. }
  8708. // Describes event information.
  8709. type EventInfoMap struct {
  8710. _ struct{} `type:"structure"`
  8711. // The category of an Amazon Redshift event.
  8712. EventCategories []*string `locationNameList:"EventCategory" type:"list"`
  8713. // The description of an Amazon Redshift event.
  8714. EventDescription *string `type:"string"`
  8715. // The identifier of an Amazon Redshift event.
  8716. EventId *string `type:"string"`
  8717. // The severity of the event.
  8718. //
  8719. // Values: ERROR, INFO
  8720. Severity *string `type:"string"`
  8721. }
  8722. // String returns the string representation
  8723. func (s EventInfoMap) String() string {
  8724. return awsutil.Prettify(s)
  8725. }
  8726. // GoString returns the string representation
  8727. func (s EventInfoMap) GoString() string {
  8728. return s.String()
  8729. }
  8730. // Describes event subscriptions.
  8731. type EventSubscription struct {
  8732. _ struct{} `type:"structure"`
  8733. // The name of the Amazon Redshift event notification subscription.
  8734. CustSubscriptionId *string `type:"string"`
  8735. // The AWS customer account associated with the Amazon Redshift event notification
  8736. // subscription.
  8737. CustomerAwsId *string `type:"string"`
  8738. // A Boolean value indicating whether the subscription is enabled. true indicates
  8739. // the subscription is enabled.
  8740. Enabled *bool `type:"boolean"`
  8741. // The list of Amazon Redshift event categories specified in the event notification
  8742. // subscription.
  8743. //
  8744. // Values: Configuration, Management, Monitoring, Security
  8745. EventCategoriesList []*string `locationNameList:"EventCategory" type:"list"`
  8746. // The event severity specified in the Amazon Redshift event notification subscription.
  8747. //
  8748. // Values: ERROR, INFO
  8749. Severity *string `type:"string"`
  8750. // The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event
  8751. // notification subscription.
  8752. SnsTopicArn *string `type:"string"`
  8753. // A list of the sources that publish events to the Amazon Redshift event notification
  8754. // subscription.
  8755. SourceIdsList []*string `locationNameList:"SourceId" type:"list"`
  8756. // The source type of the events returned the Amazon Redshift event notification,
  8757. // such as cluster, or cluster-snapshot.
  8758. SourceType *string `type:"string"`
  8759. // The status of the Amazon Redshift event notification subscription.
  8760. //
  8761. // Constraints:
  8762. //
  8763. // * Can be one of the following: active | no-permission | topic-not-exist
  8764. //
  8765. // * The status "no-permission" indicates that Amazon Redshift no longer
  8766. // has permission to post to the Amazon SNS topic. The status "topic-not-exist"
  8767. // indicates that the topic was deleted after the subscription was created.
  8768. Status *string `type:"string"`
  8769. // The date and time the Amazon Redshift event notification subscription was
  8770. // created.
  8771. SubscriptionCreationTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  8772. // The list of tags for the event subscription.
  8773. Tags []*Tag `locationNameList:"Tag" type:"list"`
  8774. }
  8775. // String returns the string representation
  8776. func (s EventSubscription) String() string {
  8777. return awsutil.Prettify(s)
  8778. }
  8779. // GoString returns the string representation
  8780. func (s EventSubscription) GoString() string {
  8781. return s.String()
  8782. }
  8783. // Returns information about an HSM client certificate. The certificate is stored
  8784. // in a secure Hardware Storage Module (HSM), and used by the Amazon Redshift
  8785. // cluster to encrypt data files.
  8786. type HsmClientCertificate struct {
  8787. _ struct{} `type:"structure"`
  8788. // The identifier of the HSM client certificate.
  8789. HsmClientCertificateIdentifier *string `type:"string"`
  8790. // The public key that the Amazon Redshift cluster will use to connect to the
  8791. // HSM. You must register the public key in the HSM.
  8792. HsmClientCertificatePublicKey *string `type:"string"`
  8793. // The list of tags for the HSM client certificate.
  8794. Tags []*Tag `locationNameList:"Tag" type:"list"`
  8795. }
  8796. // String returns the string representation
  8797. func (s HsmClientCertificate) String() string {
  8798. return awsutil.Prettify(s)
  8799. }
  8800. // GoString returns the string representation
  8801. func (s HsmClientCertificate) GoString() string {
  8802. return s.String()
  8803. }
  8804. // Returns information about an HSM configuration, which is an object that describes
  8805. // to Amazon Redshift clusters the information they require to connect to an
  8806. // HSM where they can store database encryption keys.
  8807. type HsmConfiguration struct {
  8808. _ struct{} `type:"structure"`
  8809. // A text description of the HSM configuration.
  8810. Description *string `type:"string"`
  8811. // The name of the Amazon Redshift HSM configuration.
  8812. HsmConfigurationIdentifier *string `type:"string"`
  8813. // The IP address that the Amazon Redshift cluster must use to access the HSM.
  8814. HsmIpAddress *string `type:"string"`
  8815. // The name of the partition in the HSM where the Amazon Redshift clusters will
  8816. // store their database encryption keys.
  8817. HsmPartitionName *string `type:"string"`
  8818. // The list of tags for the HSM configuration.
  8819. Tags []*Tag `locationNameList:"Tag" type:"list"`
  8820. }
  8821. // String returns the string representation
  8822. func (s HsmConfiguration) String() string {
  8823. return awsutil.Prettify(s)
  8824. }
  8825. // GoString returns the string representation
  8826. func (s HsmConfiguration) GoString() string {
  8827. return s.String()
  8828. }
  8829. // Describes the status of changes to HSM settings.
  8830. type HsmStatus struct {
  8831. _ struct{} `type:"structure"`
  8832. // Specifies the name of the HSM client certificate the Amazon Redshift cluster
  8833. // uses to retrieve the data encryption keys stored in an HSM.
  8834. HsmClientCertificateIdentifier *string `type:"string"`
  8835. // Specifies the name of the HSM configuration that contains the information
  8836. // the Amazon Redshift cluster can use to retrieve and store keys in an HSM.
  8837. HsmConfigurationIdentifier *string `type:"string"`
  8838. // Reports whether the Amazon Redshift cluster has finished applying any HSM
  8839. // settings changes specified in a modify cluster command.
  8840. //
  8841. // Values: active, applying
  8842. Status *string `type:"string"`
  8843. }
  8844. // String returns the string representation
  8845. func (s HsmStatus) String() string {
  8846. return awsutil.Prettify(s)
  8847. }
  8848. // GoString returns the string representation
  8849. func (s HsmStatus) GoString() string {
  8850. return s.String()
  8851. }
  8852. // Describes an IP range used in a security group.
  8853. type IPRange struct {
  8854. _ struct{} `type:"structure"`
  8855. // The IP range in Classless Inter-Domain Routing (CIDR) notation.
  8856. CIDRIP *string `type:"string"`
  8857. // The status of the IP range, for example, "authorized".
  8858. Status *string `type:"string"`
  8859. // The list of tags for the IP range.
  8860. Tags []*Tag `locationNameList:"Tag" type:"list"`
  8861. }
  8862. // String returns the string representation
  8863. func (s IPRange) String() string {
  8864. return awsutil.Prettify(s)
  8865. }
  8866. // GoString returns the string representation
  8867. func (s IPRange) GoString() string {
  8868. return s.String()
  8869. }
  8870. // Describes the status of logging for a cluster.
  8871. type LoggingStatus struct {
  8872. _ struct{} `type:"structure"`
  8873. // The name of the S3 bucket where the log files are stored.
  8874. BucketName *string `type:"string"`
  8875. // The message indicating that logs failed to be delivered.
  8876. LastFailureMessage *string `type:"string"`
  8877. // The last time when logs failed to be delivered.
  8878. LastFailureTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  8879. // The last time that logs were delivered.
  8880. LastSuccessfulDeliveryTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  8881. // true if logging is on, false if logging is off.
  8882. LoggingEnabled *bool `type:"boolean"`
  8883. // The prefix applied to the log file names.
  8884. S3KeyPrefix *string `type:"string"`
  8885. }
  8886. // String returns the string representation
  8887. func (s LoggingStatus) String() string {
  8888. return awsutil.Prettify(s)
  8889. }
  8890. // GoString returns the string representation
  8891. func (s LoggingStatus) GoString() string {
  8892. return s.String()
  8893. }
  8894. type ModifyClusterIamRolesInput struct {
  8895. _ struct{} `type:"structure"`
  8896. // Zero or more IAM roles to associate with the cluster. The roles must be in
  8897. // their Amazon Resource Name (ARN) format. You can associate up to 10 IAM roles
  8898. // with a single cluster in a single request.
  8899. AddIamRoles []*string `locationNameList:"IamRoleArn" type:"list"`
  8900. // The unique identifier of the cluster for which you want to associate or disassociate
  8901. // IAM roles.
  8902. //
  8903. // ClusterIdentifier is a required field
  8904. ClusterIdentifier *string `type:"string" required:"true"`
  8905. // Zero or more IAM roles in ARN format to disassociate from the cluster. You
  8906. // can disassociate up to 10 IAM roles from a single cluster in a single request.
  8907. RemoveIamRoles []*string `locationNameList:"IamRoleArn" type:"list"`
  8908. }
  8909. // String returns the string representation
  8910. func (s ModifyClusterIamRolesInput) String() string {
  8911. return awsutil.Prettify(s)
  8912. }
  8913. // GoString returns the string representation
  8914. func (s ModifyClusterIamRolesInput) GoString() string {
  8915. return s.String()
  8916. }
  8917. // Validate inspects the fields of the type to determine if they are valid.
  8918. func (s *ModifyClusterIamRolesInput) Validate() error {
  8919. invalidParams := request.ErrInvalidParams{Context: "ModifyClusterIamRolesInput"}
  8920. if s.ClusterIdentifier == nil {
  8921. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  8922. }
  8923. if invalidParams.Len() > 0 {
  8924. return invalidParams
  8925. }
  8926. return nil
  8927. }
  8928. type ModifyClusterIamRolesOutput struct {
  8929. _ struct{} `type:"structure"`
  8930. // Describes a cluster.
  8931. Cluster *Cluster `type:"structure"`
  8932. }
  8933. // String returns the string representation
  8934. func (s ModifyClusterIamRolesOutput) String() string {
  8935. return awsutil.Prettify(s)
  8936. }
  8937. // GoString returns the string representation
  8938. func (s ModifyClusterIamRolesOutput) GoString() string {
  8939. return s.String()
  8940. }
  8941. type ModifyClusterInput struct {
  8942. _ struct{} `type:"structure"`
  8943. // If true, major version upgrades will be applied automatically to the cluster
  8944. // during the maintenance window.
  8945. //
  8946. // Default: false
  8947. AllowVersionUpgrade *bool `type:"boolean"`
  8948. // The number of days that automated snapshots are retained. If the value is
  8949. // 0, automated snapshots are disabled. Even if automated snapshots are disabled,
  8950. // you can still create manual snapshots when you want with CreateClusterSnapshot.
  8951. //
  8952. // If you decrease the automated snapshot retention period from its current
  8953. // value, existing automated snapshots that fall outside of the new retention
  8954. // period will be immediately deleted.
  8955. //
  8956. // Default: Uses existing setting.
  8957. //
  8958. // Constraints: Must be a value from 0 to 35.
  8959. AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
  8960. // The unique identifier of the cluster to be modified.
  8961. //
  8962. // Example: examplecluster
  8963. //
  8964. // ClusterIdentifier is a required field
  8965. ClusterIdentifier *string `type:"string" required:"true"`
  8966. // The name of the cluster parameter group to apply to this cluster. This change
  8967. // is applied only after the cluster is rebooted. To reboot a cluster use RebootCluster.
  8968. //
  8969. // Default: Uses existing setting.
  8970. //
  8971. // Constraints: The cluster parameter group must be in the same parameter group
  8972. // family that matches the cluster version.
  8973. ClusterParameterGroupName *string `type:"string"`
  8974. // A list of cluster security groups to be authorized on this cluster. This
  8975. // change is asynchronously applied as soon as possible.
  8976. //
  8977. // Security groups currently associated with the cluster, and not in the list
  8978. // of groups to apply, will be revoked from the cluster.
  8979. //
  8980. // Constraints:
  8981. //
  8982. // * Must be 1 to 255 alphanumeric characters or hyphens
  8983. //
  8984. // * First character must be a letter
  8985. //
  8986. // * Cannot end with a hyphen or contain two consecutive hyphens
  8987. ClusterSecurityGroups []*string `locationNameList:"ClusterSecurityGroupName" type:"list"`
  8988. // The new cluster type.
  8989. //
  8990. // When you submit your cluster resize request, your existing cluster goes into
  8991. // a read-only mode. After Amazon Redshift provisions a new cluster based on
  8992. // your resize requirements, there will be outage for a period while the old
  8993. // cluster is deleted and your connection is switched to the new cluster. You
  8994. // can use DescribeResize to track the progress of the resize request.
  8995. //
  8996. // Valid Values: multi-node | single-node
  8997. ClusterType *string `type:"string"`
  8998. // The new version number of the Amazon Redshift engine to upgrade to.
  8999. //
  9000. // For major version upgrades, if a non-default cluster parameter group is currently
  9001. // in use, a new cluster parameter group in the cluster parameter group family
  9002. // for the new version must be specified. The new cluster parameter group can
  9003. // be the default for that cluster parameter group family. For more information
  9004. // about parameters and parameter groups, go to Amazon Redshift Parameter Groups
  9005. // (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
  9006. // in the Amazon Redshift Cluster Management Guide.
  9007. //
  9008. // Example: 1.0
  9009. ClusterVersion *string `type:"string"`
  9010. // The Elastic IP (EIP) address for the cluster.
  9011. //
  9012. // Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible
  9013. // through an Internet gateway. For more information about provisioning clusters
  9014. // in EC2-VPC, go to Supported Platforms to Launch Your Cluster (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#cluster-platforms)
  9015. // in the Amazon Redshift Cluster Management Guide.
  9016. ElasticIp *string `type:"string"`
  9017. // An option that specifies whether to create the cluster with enhanced VPC
  9018. // routing enabled. To create a cluster that uses enhanced VPC routing, the
  9019. // cluster must be in a VPC. For more information, see Enhanced VPC Routing
  9020. // (http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
  9021. // in the Amazon Redshift Cluster Management Guide.
  9022. //
  9023. // If this option is true, enhanced VPC routing is enabled.
  9024. //
  9025. // Default: false
  9026. EnhancedVpcRouting *bool `type:"boolean"`
  9027. // Specifies the name of the HSM client certificate the Amazon Redshift cluster
  9028. // uses to retrieve the data encryption keys stored in an HSM.
  9029. HsmClientCertificateIdentifier *string `type:"string"`
  9030. // Specifies the name of the HSM configuration that contains the information
  9031. // the Amazon Redshift cluster can use to retrieve and store keys in an HSM.
  9032. HsmConfigurationIdentifier *string `type:"string"`
  9033. // The new password for the cluster master user. This change is asynchronously
  9034. // applied as soon as possible. Between the time of the request and the completion
  9035. // of the request, the MasterUserPassword element exists in the PendingModifiedValues
  9036. // element of the operation response.
  9037. //
  9038. // Operations never return the password, so this operation provides a way to
  9039. // regain access to the master user account for a cluster if the password is
  9040. // lost.
  9041. //
  9042. // Default: Uses existing setting.
  9043. //
  9044. // Constraints:
  9045. //
  9046. // * Must be between 8 and 64 characters in length.
  9047. //
  9048. // * Must contain at least one uppercase letter.
  9049. //
  9050. // * Must contain at least one lowercase letter.
  9051. //
  9052. // * Must contain one number.
  9053. //
  9054. // * Can be any printable ASCII character (ASCII code 33 to 126) except '
  9055. // (single quote), " (double quote), \, /, @, or space.
  9056. MasterUserPassword *string `type:"string"`
  9057. // The new identifier for the cluster.
  9058. //
  9059. // Constraints:
  9060. //
  9061. // * Must contain from 1 to 63 alphanumeric characters or hyphens.
  9062. //
  9063. // * Alphabetic characters must be lowercase.
  9064. //
  9065. // * First character must be a letter.
  9066. //
  9067. // * Cannot end with a hyphen or contain two consecutive hyphens.
  9068. //
  9069. // * Must be unique for all clusters within an AWS account.
  9070. //
  9071. // Example: examplecluster
  9072. NewClusterIdentifier *string `type:"string"`
  9073. // The new node type of the cluster. If you specify a new node type, you must
  9074. // also specify the number of nodes parameter.
  9075. //
  9076. // When you submit your request to resize a cluster, Amazon Redshift sets access
  9077. // permissions for the cluster to read-only. After Amazon Redshift provisions
  9078. // a new cluster according to your resize requirements, there will be a temporary
  9079. // outage while the old cluster is deleted and your connection is switched to
  9080. // the new cluster. When the new connection is complete, the original access
  9081. // permissions for the cluster are restored. You can use DescribeResize to track
  9082. // the progress of the resize request.
  9083. //
  9084. // Valid Values: ds1.xlarge | ds1.8xlarge | ds2.xlarge | ds2.8xlarge | dc1.large
  9085. // | dc1.8xlarge.
  9086. NodeType *string `type:"string"`
  9087. // The new number of nodes of the cluster. If you specify a new number of nodes,
  9088. // you must also specify the node type parameter.
  9089. //
  9090. // When you submit your request to resize a cluster, Amazon Redshift sets access
  9091. // permissions for the cluster to read-only. After Amazon Redshift provisions
  9092. // a new cluster according to your resize requirements, there will be a temporary
  9093. // outage while the old cluster is deleted and your connection is switched to
  9094. // the new cluster. When the new connection is complete, the original access
  9095. // permissions for the cluster are restored. You can use DescribeResize to track
  9096. // the progress of the resize request.
  9097. //
  9098. // Valid Values: Integer greater than 0.
  9099. NumberOfNodes *int64 `type:"integer"`
  9100. // The weekly time range (in UTC) during which system maintenance can occur,
  9101. // if necessary. If system maintenance is necessary during the window, it may
  9102. // result in an outage.
  9103. //
  9104. // This maintenance window change is made immediately. If the new maintenance
  9105. // window indicates the current time, there must be at least 120 minutes between
  9106. // the current time and end of the window in order to ensure that pending changes
  9107. // are applied.
  9108. //
  9109. // Default: Uses existing setting.
  9110. //
  9111. // Format: ddd:hh24:mi-ddd:hh24:mi, for example wed:07:30-wed:08:00.
  9112. //
  9113. // Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
  9114. //
  9115. // Constraints: Must be at least 30 minutes.
  9116. PreferredMaintenanceWindow *string `type:"string"`
  9117. // If true, the cluster can be accessed from a public network. Only clusters
  9118. // in VPCs can be set to be publicly available.
  9119. PubliclyAccessible *bool `type:"boolean"`
  9120. // A list of virtual private cloud (VPC) security groups to be associated with
  9121. // the cluster.
  9122. VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
  9123. }
  9124. // String returns the string representation
  9125. func (s ModifyClusterInput) String() string {
  9126. return awsutil.Prettify(s)
  9127. }
  9128. // GoString returns the string representation
  9129. func (s ModifyClusterInput) GoString() string {
  9130. return s.String()
  9131. }
  9132. // Validate inspects the fields of the type to determine if they are valid.
  9133. func (s *ModifyClusterInput) Validate() error {
  9134. invalidParams := request.ErrInvalidParams{Context: "ModifyClusterInput"}
  9135. if s.ClusterIdentifier == nil {
  9136. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  9137. }
  9138. if invalidParams.Len() > 0 {
  9139. return invalidParams
  9140. }
  9141. return nil
  9142. }
  9143. type ModifyClusterOutput struct {
  9144. _ struct{} `type:"structure"`
  9145. // Describes a cluster.
  9146. Cluster *Cluster `type:"structure"`
  9147. }
  9148. // String returns the string representation
  9149. func (s ModifyClusterOutput) String() string {
  9150. return awsutil.Prettify(s)
  9151. }
  9152. // GoString returns the string representation
  9153. func (s ModifyClusterOutput) GoString() string {
  9154. return s.String()
  9155. }
  9156. type ModifyClusterParameterGroupInput struct {
  9157. _ struct{} `type:"structure"`
  9158. // The name of the parameter group to be modified.
  9159. //
  9160. // ParameterGroupName is a required field
  9161. ParameterGroupName *string `type:"string" required:"true"`
  9162. // An array of parameters to be modified. A maximum of 20 parameters can be
  9163. // modified in a single request.
  9164. //
  9165. // For each parameter to be modified, you must supply at least the parameter
  9166. // name and parameter value; other name-value pairs of the parameter are optional.
  9167. //
  9168. // For the workload management (WLM) configuration, you must supply all the
  9169. // name-value pairs in the wlm_json_configuration parameter.
  9170. //
  9171. // Parameters is a required field
  9172. Parameters []*Parameter `locationNameList:"Parameter" type:"list" required:"true"`
  9173. }
  9174. // String returns the string representation
  9175. func (s ModifyClusterParameterGroupInput) String() string {
  9176. return awsutil.Prettify(s)
  9177. }
  9178. // GoString returns the string representation
  9179. func (s ModifyClusterParameterGroupInput) GoString() string {
  9180. return s.String()
  9181. }
  9182. // Validate inspects the fields of the type to determine if they are valid.
  9183. func (s *ModifyClusterParameterGroupInput) Validate() error {
  9184. invalidParams := request.ErrInvalidParams{Context: "ModifyClusterParameterGroupInput"}
  9185. if s.ParameterGroupName == nil {
  9186. invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
  9187. }
  9188. if s.Parameters == nil {
  9189. invalidParams.Add(request.NewErrParamRequired("Parameters"))
  9190. }
  9191. if invalidParams.Len() > 0 {
  9192. return invalidParams
  9193. }
  9194. return nil
  9195. }
  9196. type ModifyClusterSubnetGroupInput struct {
  9197. _ struct{} `type:"structure"`
  9198. // The name of the subnet group to be modified.
  9199. //
  9200. // ClusterSubnetGroupName is a required field
  9201. ClusterSubnetGroupName *string `type:"string" required:"true"`
  9202. // A text description of the subnet group to be modified.
  9203. Description *string `type:"string"`
  9204. // An array of VPC subnet IDs. A maximum of 20 subnets can be modified in a
  9205. // single request.
  9206. //
  9207. // SubnetIds is a required field
  9208. SubnetIds []*string `locationNameList:"SubnetIdentifier" type:"list" required:"true"`
  9209. }
  9210. // String returns the string representation
  9211. func (s ModifyClusterSubnetGroupInput) String() string {
  9212. return awsutil.Prettify(s)
  9213. }
  9214. // GoString returns the string representation
  9215. func (s ModifyClusterSubnetGroupInput) GoString() string {
  9216. return s.String()
  9217. }
  9218. // Validate inspects the fields of the type to determine if they are valid.
  9219. func (s *ModifyClusterSubnetGroupInput) Validate() error {
  9220. invalidParams := request.ErrInvalidParams{Context: "ModifyClusterSubnetGroupInput"}
  9221. if s.ClusterSubnetGroupName == nil {
  9222. invalidParams.Add(request.NewErrParamRequired("ClusterSubnetGroupName"))
  9223. }
  9224. if s.SubnetIds == nil {
  9225. invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
  9226. }
  9227. if invalidParams.Len() > 0 {
  9228. return invalidParams
  9229. }
  9230. return nil
  9231. }
  9232. type ModifyClusterSubnetGroupOutput struct {
  9233. _ struct{} `type:"structure"`
  9234. // Describes a subnet group.
  9235. ClusterSubnetGroup *ClusterSubnetGroup `type:"structure"`
  9236. }
  9237. // String returns the string representation
  9238. func (s ModifyClusterSubnetGroupOutput) String() string {
  9239. return awsutil.Prettify(s)
  9240. }
  9241. // GoString returns the string representation
  9242. func (s ModifyClusterSubnetGroupOutput) GoString() string {
  9243. return s.String()
  9244. }
  9245. type ModifyEventSubscriptionInput struct {
  9246. _ struct{} `type:"structure"`
  9247. // A Boolean value indicating if the subscription is enabled. true indicates
  9248. // the subscription is enabled
  9249. Enabled *bool `type:"boolean"`
  9250. // Specifies the Amazon Redshift event categories to be published by the event
  9251. // notification subscription.
  9252. //
  9253. // Values: Configuration, Management, Monitoring, Security
  9254. EventCategories []*string `locationNameList:"EventCategory" type:"list"`
  9255. // Specifies the Amazon Redshift event severity to be published by the event
  9256. // notification subscription.
  9257. //
  9258. // Values: ERROR, INFO
  9259. Severity *string `type:"string"`
  9260. // The Amazon Resource Name (ARN) of the SNS topic to be used by the event notification
  9261. // subscription.
  9262. SnsTopicArn *string `type:"string"`
  9263. // A list of one or more identifiers of Amazon Redshift source objects. All
  9264. // of the objects must be of the same type as was specified in the source type
  9265. // parameter. The event subscription will return only events generated by the
  9266. // specified objects. If not specified, then events are returned for all objects
  9267. // within the source type specified.
  9268. //
  9269. // Example: my-cluster-1, my-cluster-2
  9270. //
  9271. // Example: my-snapshot-20131010
  9272. SourceIds []*string `locationNameList:"SourceId" type:"list"`
  9273. // The type of source that will be generating the events. For example, if you
  9274. // want to be notified of events generated by a cluster, you would set this
  9275. // parameter to cluster. If this value is not specified, events are returned
  9276. // for all Amazon Redshift objects in your AWS account. You must specify a source
  9277. // type in order to specify source IDs.
  9278. //
  9279. // Valid values: cluster, cluster-parameter-group, cluster-security-group, and
  9280. // cluster-snapshot.
  9281. SourceType *string `type:"string"`
  9282. // The name of the modified Amazon Redshift event notification subscription.
  9283. //
  9284. // SubscriptionName is a required field
  9285. SubscriptionName *string `type:"string" required:"true"`
  9286. }
  9287. // String returns the string representation
  9288. func (s ModifyEventSubscriptionInput) String() string {
  9289. return awsutil.Prettify(s)
  9290. }
  9291. // GoString returns the string representation
  9292. func (s ModifyEventSubscriptionInput) GoString() string {
  9293. return s.String()
  9294. }
  9295. // Validate inspects the fields of the type to determine if they are valid.
  9296. func (s *ModifyEventSubscriptionInput) Validate() error {
  9297. invalidParams := request.ErrInvalidParams{Context: "ModifyEventSubscriptionInput"}
  9298. if s.SubscriptionName == nil {
  9299. invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
  9300. }
  9301. if invalidParams.Len() > 0 {
  9302. return invalidParams
  9303. }
  9304. return nil
  9305. }
  9306. type ModifyEventSubscriptionOutput struct {
  9307. _ struct{} `type:"structure"`
  9308. // Describes event subscriptions.
  9309. EventSubscription *EventSubscription `type:"structure"`
  9310. }
  9311. // String returns the string representation
  9312. func (s ModifyEventSubscriptionOutput) String() string {
  9313. return awsutil.Prettify(s)
  9314. }
  9315. // GoString returns the string representation
  9316. func (s ModifyEventSubscriptionOutput) GoString() string {
  9317. return s.String()
  9318. }
  9319. type ModifySnapshotCopyRetentionPeriodInput struct {
  9320. _ struct{} `type:"structure"`
  9321. // The unique identifier of the cluster for which you want to change the retention
  9322. // period for automated snapshots that are copied to a destination region.
  9323. //
  9324. // Constraints: Must be the valid name of an existing cluster that has cross-region
  9325. // snapshot copy enabled.
  9326. //
  9327. // ClusterIdentifier is a required field
  9328. ClusterIdentifier *string `type:"string" required:"true"`
  9329. // The number of days to retain automated snapshots in the destination region
  9330. // after they are copied from the source region.
  9331. //
  9332. // If you decrease the retention period for automated snapshots that are copied
  9333. // to a destination region, Amazon Redshift will delete any existing automated
  9334. // snapshots that were copied to the destination region and that fall outside
  9335. // of the new retention period.
  9336. //
  9337. // Constraints: Must be at least 1 and no more than 35.
  9338. //
  9339. // RetentionPeriod is a required field
  9340. RetentionPeriod *int64 `type:"integer" required:"true"`
  9341. }
  9342. // String returns the string representation
  9343. func (s ModifySnapshotCopyRetentionPeriodInput) String() string {
  9344. return awsutil.Prettify(s)
  9345. }
  9346. // GoString returns the string representation
  9347. func (s ModifySnapshotCopyRetentionPeriodInput) GoString() string {
  9348. return s.String()
  9349. }
  9350. // Validate inspects the fields of the type to determine if they are valid.
  9351. func (s *ModifySnapshotCopyRetentionPeriodInput) Validate() error {
  9352. invalidParams := request.ErrInvalidParams{Context: "ModifySnapshotCopyRetentionPeriodInput"}
  9353. if s.ClusterIdentifier == nil {
  9354. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  9355. }
  9356. if s.RetentionPeriod == nil {
  9357. invalidParams.Add(request.NewErrParamRequired("RetentionPeriod"))
  9358. }
  9359. if invalidParams.Len() > 0 {
  9360. return invalidParams
  9361. }
  9362. return nil
  9363. }
  9364. type ModifySnapshotCopyRetentionPeriodOutput struct {
  9365. _ struct{} `type:"structure"`
  9366. // Describes a cluster.
  9367. Cluster *Cluster `type:"structure"`
  9368. }
  9369. // String returns the string representation
  9370. func (s ModifySnapshotCopyRetentionPeriodOutput) String() string {
  9371. return awsutil.Prettify(s)
  9372. }
  9373. // GoString returns the string representation
  9374. func (s ModifySnapshotCopyRetentionPeriodOutput) GoString() string {
  9375. return s.String()
  9376. }
  9377. // Describes an orderable cluster option.
  9378. type OrderableClusterOption struct {
  9379. _ struct{} `type:"structure"`
  9380. // A list of availability zones for the orderable cluster.
  9381. AvailabilityZones []*AvailabilityZone `locationNameList:"AvailabilityZone" type:"list"`
  9382. // The cluster type, for example multi-node.
  9383. ClusterType *string `type:"string"`
  9384. // The version of the orderable cluster.
  9385. ClusterVersion *string `type:"string"`
  9386. // The node type for the orderable cluster.
  9387. NodeType *string `type:"string"`
  9388. }
  9389. // String returns the string representation
  9390. func (s OrderableClusterOption) String() string {
  9391. return awsutil.Prettify(s)
  9392. }
  9393. // GoString returns the string representation
  9394. func (s OrderableClusterOption) GoString() string {
  9395. return s.String()
  9396. }
  9397. // Describes a parameter in a cluster parameter group.
  9398. type Parameter struct {
  9399. _ struct{} `type:"structure"`
  9400. // The valid range of values for the parameter.
  9401. AllowedValues *string `type:"string"`
  9402. // Specifies how to apply the WLM configuration parameter. Some properties can
  9403. // be applied dynamically, while other properties require that any associated
  9404. // clusters be rebooted for the configuration changes to be applied. For more
  9405. // information about parameters and parameter groups, go to Amazon Redshift
  9406. // Parameter Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html)
  9407. // in the Amazon Redshift Cluster Management Guide.
  9408. ApplyType *string `type:"string" enum:"ParameterApplyType"`
  9409. // The data type of the parameter.
  9410. DataType *string `type:"string"`
  9411. // A description of the parameter.
  9412. Description *string `type:"string"`
  9413. // If true, the parameter can be modified. Some parameters have security or
  9414. // operational implications that prevent them from being changed.
  9415. IsModifiable *bool `type:"boolean"`
  9416. // The earliest engine version to which the parameter can apply.
  9417. MinimumEngineVersion *string `type:"string"`
  9418. // The name of the parameter.
  9419. ParameterName *string `type:"string"`
  9420. // The value of the parameter.
  9421. ParameterValue *string `type:"string"`
  9422. // The source of the parameter value, such as "engine-default" or "user".
  9423. Source *string `type:"string"`
  9424. }
  9425. // String returns the string representation
  9426. func (s Parameter) String() string {
  9427. return awsutil.Prettify(s)
  9428. }
  9429. // GoString returns the string representation
  9430. func (s Parameter) GoString() string {
  9431. return s.String()
  9432. }
  9433. // Describes cluster attributes that are in a pending state. A change to one
  9434. // or more the attributes was requested and is in progress or will be applied.
  9435. type PendingModifiedValues struct {
  9436. _ struct{} `type:"structure"`
  9437. // The pending or in-progress change of the automated snapshot retention period.
  9438. AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
  9439. // The pending or in-progress change of the new identifier for the cluster.
  9440. ClusterIdentifier *string `type:"string"`
  9441. // The pending or in-progress change of the cluster type.
  9442. ClusterType *string `type:"string"`
  9443. // The pending or in-progress change of the service version.
  9444. ClusterVersion *string `type:"string"`
  9445. // An option that specifies whether to create the cluster with enhanced VPC
  9446. // routing enabled. To create a cluster that uses enhanced VPC routing, the
  9447. // cluster must be in a VPC. For more information, see Enhanced VPC Routing
  9448. // (http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
  9449. // in the Amazon Redshift Cluster Management Guide.
  9450. //
  9451. // If this option is true, enhanced VPC routing is enabled.
  9452. //
  9453. // Default: false
  9454. EnhancedVpcRouting *bool `type:"boolean"`
  9455. // The pending or in-progress change of the master user password for the cluster.
  9456. MasterUserPassword *string `type:"string"`
  9457. // The pending or in-progress change of the cluster's node type.
  9458. NodeType *string `type:"string"`
  9459. // The pending or in-progress change of the number of nodes in the cluster.
  9460. NumberOfNodes *int64 `type:"integer"`
  9461. // The pending or in-progress change of the ability to connect to the cluster
  9462. // from the public network.
  9463. PubliclyAccessible *bool `type:"boolean"`
  9464. }
  9465. // String returns the string representation
  9466. func (s PendingModifiedValues) String() string {
  9467. return awsutil.Prettify(s)
  9468. }
  9469. // GoString returns the string representation
  9470. func (s PendingModifiedValues) GoString() string {
  9471. return s.String()
  9472. }
  9473. type PurchaseReservedNodeOfferingInput struct {
  9474. _ struct{} `type:"structure"`
  9475. // The number of reserved nodes that you want to purchase.
  9476. //
  9477. // Default: 1
  9478. NodeCount *int64 `type:"integer"`
  9479. // The unique identifier of the reserved node offering you want to purchase.
  9480. //
  9481. // ReservedNodeOfferingId is a required field
  9482. ReservedNodeOfferingId *string `type:"string" required:"true"`
  9483. }
  9484. // String returns the string representation
  9485. func (s PurchaseReservedNodeOfferingInput) String() string {
  9486. return awsutil.Prettify(s)
  9487. }
  9488. // GoString returns the string representation
  9489. func (s PurchaseReservedNodeOfferingInput) GoString() string {
  9490. return s.String()
  9491. }
  9492. // Validate inspects the fields of the type to determine if they are valid.
  9493. func (s *PurchaseReservedNodeOfferingInput) Validate() error {
  9494. invalidParams := request.ErrInvalidParams{Context: "PurchaseReservedNodeOfferingInput"}
  9495. if s.ReservedNodeOfferingId == nil {
  9496. invalidParams.Add(request.NewErrParamRequired("ReservedNodeOfferingId"))
  9497. }
  9498. if invalidParams.Len() > 0 {
  9499. return invalidParams
  9500. }
  9501. return nil
  9502. }
  9503. type PurchaseReservedNodeOfferingOutput struct {
  9504. _ struct{} `type:"structure"`
  9505. // Describes a reserved node. You can call the DescribeReservedNodeOfferings
  9506. // API to obtain the available reserved node offerings.
  9507. ReservedNode *ReservedNode `type:"structure"`
  9508. }
  9509. // String returns the string representation
  9510. func (s PurchaseReservedNodeOfferingOutput) String() string {
  9511. return awsutil.Prettify(s)
  9512. }
  9513. // GoString returns the string representation
  9514. func (s PurchaseReservedNodeOfferingOutput) GoString() string {
  9515. return s.String()
  9516. }
  9517. type RebootClusterInput struct {
  9518. _ struct{} `type:"structure"`
  9519. // The cluster identifier.
  9520. //
  9521. // ClusterIdentifier is a required field
  9522. ClusterIdentifier *string `type:"string" required:"true"`
  9523. }
  9524. // String returns the string representation
  9525. func (s RebootClusterInput) String() string {
  9526. return awsutil.Prettify(s)
  9527. }
  9528. // GoString returns the string representation
  9529. func (s RebootClusterInput) GoString() string {
  9530. return s.String()
  9531. }
  9532. // Validate inspects the fields of the type to determine if they are valid.
  9533. func (s *RebootClusterInput) Validate() error {
  9534. invalidParams := request.ErrInvalidParams{Context: "RebootClusterInput"}
  9535. if s.ClusterIdentifier == nil {
  9536. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  9537. }
  9538. if invalidParams.Len() > 0 {
  9539. return invalidParams
  9540. }
  9541. return nil
  9542. }
  9543. type RebootClusterOutput struct {
  9544. _ struct{} `type:"structure"`
  9545. // Describes a cluster.
  9546. Cluster *Cluster `type:"structure"`
  9547. }
  9548. // String returns the string representation
  9549. func (s RebootClusterOutput) String() string {
  9550. return awsutil.Prettify(s)
  9551. }
  9552. // GoString returns the string representation
  9553. func (s RebootClusterOutput) GoString() string {
  9554. return s.String()
  9555. }
  9556. // Describes a recurring charge.
  9557. type RecurringCharge struct {
  9558. _ struct{} `type:"structure"`
  9559. // The amount charged per the period of time specified by the recurring charge
  9560. // frequency.
  9561. RecurringChargeAmount *float64 `type:"double"`
  9562. // The frequency at which the recurring charge amount is applied.
  9563. RecurringChargeFrequency *string `type:"string"`
  9564. }
  9565. // String returns the string representation
  9566. func (s RecurringCharge) String() string {
  9567. return awsutil.Prettify(s)
  9568. }
  9569. // GoString returns the string representation
  9570. func (s RecurringCharge) GoString() string {
  9571. return s.String()
  9572. }
  9573. // Describes a reserved node. You can call the DescribeReservedNodeOfferings
  9574. // API to obtain the available reserved node offerings.
  9575. type ReservedNode struct {
  9576. _ struct{} `type:"structure"`
  9577. // The currency code for the reserved cluster.
  9578. CurrencyCode *string `type:"string"`
  9579. // The duration of the node reservation in seconds.
  9580. Duration *int64 `type:"integer"`
  9581. // The fixed cost Amazon Redshift charges you for this reserved node.
  9582. FixedPrice *float64 `type:"double"`
  9583. // The number of reserved compute nodes.
  9584. NodeCount *int64 `type:"integer"`
  9585. // The node type of the reserved node.
  9586. NodeType *string `type:"string"`
  9587. // The anticipated utilization of the reserved node, as defined in the reserved
  9588. // node offering.
  9589. OfferingType *string `type:"string"`
  9590. // The recurring charges for the reserved node.
  9591. RecurringCharges []*RecurringCharge `locationNameList:"RecurringCharge" type:"list"`
  9592. // The unique identifier for the reservation.
  9593. ReservedNodeId *string `type:"string"`
  9594. // The identifier for the reserved node offering.
  9595. ReservedNodeOfferingId *string `type:"string"`
  9596. // The time the reservation started. You purchase a reserved node offering for
  9597. // a duration. This is the start time of that duration.
  9598. StartTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  9599. // The state of the reserved compute node.
  9600. //
  9601. // Possible Values:
  9602. //
  9603. // * pending-payment-This reserved node has recently been purchased, and
  9604. // the sale has been approved, but payment has not yet been confirmed.
  9605. //
  9606. // * active-This reserved node is owned by the caller and is available for
  9607. // use.
  9608. //
  9609. // * payment-failed-Payment failed for the purchase attempt.
  9610. State *string `type:"string"`
  9611. // The hourly rate Amazon Redshift charges you for this reserved node.
  9612. UsagePrice *float64 `type:"double"`
  9613. }
  9614. // String returns the string representation
  9615. func (s ReservedNode) String() string {
  9616. return awsutil.Prettify(s)
  9617. }
  9618. // GoString returns the string representation
  9619. func (s ReservedNode) GoString() string {
  9620. return s.String()
  9621. }
  9622. // Describes a reserved node offering.
  9623. type ReservedNodeOffering struct {
  9624. _ struct{} `type:"structure"`
  9625. // The currency code for the compute nodes offering.
  9626. CurrencyCode *string `type:"string"`
  9627. // The duration, in seconds, for which the offering will reserve the node.
  9628. Duration *int64 `type:"integer"`
  9629. // The upfront fixed charge you will pay to purchase the specific reserved node
  9630. // offering.
  9631. FixedPrice *float64 `type:"double"`
  9632. // The node type offered by the reserved node offering.
  9633. NodeType *string `type:"string"`
  9634. // The anticipated utilization of the reserved node, as defined in the reserved
  9635. // node offering.
  9636. OfferingType *string `type:"string"`
  9637. // The charge to your account regardless of whether you are creating any clusters
  9638. // using the node offering. Recurring charges are only in effect for heavy-utilization
  9639. // reserved nodes.
  9640. RecurringCharges []*RecurringCharge `locationNameList:"RecurringCharge" type:"list"`
  9641. // The offering identifier.
  9642. ReservedNodeOfferingId *string `type:"string"`
  9643. // The rate you are charged for each hour the cluster that is using the offering
  9644. // is running.
  9645. UsagePrice *float64 `type:"double"`
  9646. }
  9647. // String returns the string representation
  9648. func (s ReservedNodeOffering) String() string {
  9649. return awsutil.Prettify(s)
  9650. }
  9651. // GoString returns the string representation
  9652. func (s ReservedNodeOffering) GoString() string {
  9653. return s.String()
  9654. }
  9655. type ResetClusterParameterGroupInput struct {
  9656. _ struct{} `type:"structure"`
  9657. // The name of the cluster parameter group to be reset.
  9658. //
  9659. // ParameterGroupName is a required field
  9660. ParameterGroupName *string `type:"string" required:"true"`
  9661. // An array of names of parameters to be reset. If ResetAllParameters option
  9662. // is not used, then at least one parameter name must be supplied.
  9663. //
  9664. // Constraints: A maximum of 20 parameters can be reset in a single request.
  9665. Parameters []*Parameter `locationNameList:"Parameter" type:"list"`
  9666. // If true, all parameters in the specified parameter group will be reset to
  9667. // their default values.
  9668. //
  9669. // Default: true
  9670. ResetAllParameters *bool `type:"boolean"`
  9671. }
  9672. // String returns the string representation
  9673. func (s ResetClusterParameterGroupInput) String() string {
  9674. return awsutil.Prettify(s)
  9675. }
  9676. // GoString returns the string representation
  9677. func (s ResetClusterParameterGroupInput) GoString() string {
  9678. return s.String()
  9679. }
  9680. // Validate inspects the fields of the type to determine if they are valid.
  9681. func (s *ResetClusterParameterGroupInput) Validate() error {
  9682. invalidParams := request.ErrInvalidParams{Context: "ResetClusterParameterGroupInput"}
  9683. if s.ParameterGroupName == nil {
  9684. invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
  9685. }
  9686. if invalidParams.Len() > 0 {
  9687. return invalidParams
  9688. }
  9689. return nil
  9690. }
  9691. type RestoreFromClusterSnapshotInput struct {
  9692. _ struct{} `type:"structure"`
  9693. // Reserved.
  9694. AdditionalInfo *string `type:"string"`
  9695. // If true, major version upgrades can be applied during the maintenance window
  9696. // to the Amazon Redshift engine that is running on the cluster.
  9697. //
  9698. // Default: true
  9699. AllowVersionUpgrade *bool `type:"boolean"`
  9700. // The number of days that automated snapshots are retained. If the value is
  9701. // 0, automated snapshots are disabled. Even if automated snapshots are disabled,
  9702. // you can still create manual snapshots when you want with CreateClusterSnapshot.
  9703. //
  9704. // Default: The value selected for the cluster from which the snapshot was taken.
  9705. //
  9706. // Constraints: Must be a value from 0 to 35.
  9707. AutomatedSnapshotRetentionPeriod *int64 `type:"integer"`
  9708. // The Amazon EC2 Availability Zone in which to restore the cluster.
  9709. //
  9710. // Default: A random, system-chosen Availability Zone.
  9711. //
  9712. // Example: us-east-1a
  9713. AvailabilityZone *string `type:"string"`
  9714. // The identifier of the cluster that will be created from restoring the snapshot.
  9715. //
  9716. // Constraints:
  9717. //
  9718. // * Must contain from 1 to 63 alphanumeric characters or hyphens.
  9719. //
  9720. // * Alphabetic characters must be lowercase.
  9721. //
  9722. // * First character must be a letter.
  9723. //
  9724. // * Cannot end with a hyphen or contain two consecutive hyphens.
  9725. //
  9726. // * Must be unique for all clusters within an AWS account.
  9727. //
  9728. // ClusterIdentifier is a required field
  9729. ClusterIdentifier *string `type:"string" required:"true"`
  9730. // The name of the parameter group to be associated with this cluster.
  9731. //
  9732. // Default: The default Amazon Redshift cluster parameter group. For information
  9733. // about the default parameter group, go to Working with Amazon Redshift Parameter
  9734. // Groups (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html).
  9735. //
  9736. // Constraints:
  9737. //
  9738. // * Must be 1 to 255 alphanumeric characters or hyphens.
  9739. //
  9740. // * First character must be a letter.
  9741. //
  9742. // * Cannot end with a hyphen or contain two consecutive hyphens.
  9743. ClusterParameterGroupName *string `type:"string"`
  9744. // A list of security groups to be associated with this cluster.
  9745. //
  9746. // Default: The default cluster security group for Amazon Redshift.
  9747. //
  9748. // Cluster security groups only apply to clusters outside of VPCs.
  9749. ClusterSecurityGroups []*string `locationNameList:"ClusterSecurityGroupName" type:"list"`
  9750. // The name of the subnet group where you want to cluster restored.
  9751. //
  9752. // A snapshot of cluster in VPC can be restored only in VPC. Therefore, you
  9753. // must provide subnet group name where you want the cluster restored.
  9754. ClusterSubnetGroupName *string `type:"string"`
  9755. // The elastic IP (EIP) address for the cluster.
  9756. ElasticIp *string `type:"string"`
  9757. // An option that specifies whether to create the cluster with enhanced VPC
  9758. // routing enabled. To create a cluster that uses enhanced VPC routing, the
  9759. // cluster must be in a VPC. For more information, see Enhanced VPC Routing
  9760. // (http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
  9761. // in the Amazon Redshift Cluster Management Guide.
  9762. //
  9763. // If this option is true, enhanced VPC routing is enabled.
  9764. //
  9765. // Default: false
  9766. EnhancedVpcRouting *bool `type:"boolean"`
  9767. // Specifies the name of the HSM client certificate the Amazon Redshift cluster
  9768. // uses to retrieve the data encryption keys stored in an HSM.
  9769. HsmClientCertificateIdentifier *string `type:"string"`
  9770. // Specifies the name of the HSM configuration that contains the information
  9771. // the Amazon Redshift cluster can use to retrieve and store keys in an HSM.
  9772. HsmConfigurationIdentifier *string `type:"string"`
  9773. // A list of AWS Identity and Access Management (IAM) roles that can be used
  9774. // by the cluster to access other AWS services. You must supply the IAM roles
  9775. // in their Amazon Resource Name (ARN) format. You can supply up to 10 IAM roles
  9776. // in a single request.
  9777. //
  9778. // A cluster can have up to 10 IAM roles associated at any time.
  9779. IamRoles []*string `locationNameList:"IamRoleArn" type:"list"`
  9780. // The AWS Key Management Service (KMS) key ID of the encryption key that you
  9781. // want to use to encrypt data in the cluster that you restore from a shared
  9782. // snapshot.
  9783. KmsKeyId *string `type:"string"`
  9784. // The node type that the restored cluster will be provisioned with.
  9785. //
  9786. // Default: The node type of the cluster from which the snapshot was taken.
  9787. // You can modify this if you are using any DS node type. In that case, you
  9788. // can choose to restore into another DS node type of the same size. For example,
  9789. // you can restore ds1.8xlarge into ds2.8xlarge, or ds2.xlarge into ds1.xlarge.
  9790. // If you have a DC instance type, you must restore into that same instance
  9791. // type and size. In other words, you can only restore a dc1.large instance
  9792. // type into another dc1.large instance type. For more information about node
  9793. // types, see About Clusters and Nodes (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes)
  9794. // in the Amazon Redshift Cluster Management Guide
  9795. NodeType *string `type:"string"`
  9796. // The AWS customer account used to create or copy the snapshot. Required if
  9797. // you are restoring a snapshot you do not own, optional if you own the snapshot.
  9798. OwnerAccount *string `type:"string"`
  9799. // The port number on which the cluster accepts connections.
  9800. //
  9801. // Default: The same port as the original cluster.
  9802. //
  9803. // Constraints: Must be between 1115 and 65535.
  9804. Port *int64 `type:"integer"`
  9805. // The weekly time range (in UTC) during which automated cluster maintenance
  9806. // can occur.
  9807. //
  9808. // Format: ddd:hh24:mi-ddd:hh24:mi
  9809. //
  9810. // Default: The value selected for the cluster from which the snapshot was taken.
  9811. // For more information about the time blocks for each region, see Maintenance
  9812. // Windows (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows)
  9813. // in Amazon Redshift Cluster Management Guide.
  9814. //
  9815. // Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
  9816. //
  9817. // Constraints: Minimum 30-minute window.
  9818. PreferredMaintenanceWindow *string `type:"string"`
  9819. // If true, the cluster can be accessed from a public network.
  9820. PubliclyAccessible *bool `type:"boolean"`
  9821. // The name of the cluster the source snapshot was created from. This parameter
  9822. // is required if your IAM user has a policy containing a snapshot resource
  9823. // element that specifies anything other than * for the cluster name.
  9824. SnapshotClusterIdentifier *string `type:"string"`
  9825. // The name of the snapshot from which to create the new cluster. This parameter
  9826. // isn't case sensitive.
  9827. //
  9828. // Example: my-snapshot-id
  9829. //
  9830. // SnapshotIdentifier is a required field
  9831. SnapshotIdentifier *string `type:"string" required:"true"`
  9832. // A list of Virtual Private Cloud (VPC) security groups to be associated with
  9833. // the cluster.
  9834. //
  9835. // Default: The default VPC security group is associated with the cluster.
  9836. //
  9837. // VPC security groups only apply to clusters in VPCs.
  9838. VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
  9839. }
  9840. // String returns the string representation
  9841. func (s RestoreFromClusterSnapshotInput) String() string {
  9842. return awsutil.Prettify(s)
  9843. }
  9844. // GoString returns the string representation
  9845. func (s RestoreFromClusterSnapshotInput) GoString() string {
  9846. return s.String()
  9847. }
  9848. // Validate inspects the fields of the type to determine if they are valid.
  9849. func (s *RestoreFromClusterSnapshotInput) Validate() error {
  9850. invalidParams := request.ErrInvalidParams{Context: "RestoreFromClusterSnapshotInput"}
  9851. if s.ClusterIdentifier == nil {
  9852. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  9853. }
  9854. if s.SnapshotIdentifier == nil {
  9855. invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
  9856. }
  9857. if invalidParams.Len() > 0 {
  9858. return invalidParams
  9859. }
  9860. return nil
  9861. }
  9862. type RestoreFromClusterSnapshotOutput struct {
  9863. _ struct{} `type:"structure"`
  9864. // Describes a cluster.
  9865. Cluster *Cluster `type:"structure"`
  9866. }
  9867. // String returns the string representation
  9868. func (s RestoreFromClusterSnapshotOutput) String() string {
  9869. return awsutil.Prettify(s)
  9870. }
  9871. // GoString returns the string representation
  9872. func (s RestoreFromClusterSnapshotOutput) GoString() string {
  9873. return s.String()
  9874. }
  9875. // Describes the status of a cluster restore action. Returns null if the cluster
  9876. // was not created by restoring a snapshot.
  9877. type RestoreStatus struct {
  9878. _ struct{} `type:"structure"`
  9879. // The number of megabytes per second being transferred from the backup storage.
  9880. // Returns the average rate for a completed backup.
  9881. CurrentRestoreRateInMegaBytesPerSecond *float64 `type:"double"`
  9882. // The amount of time an in-progress restore has been running, or the amount
  9883. // of time it took a completed restore to finish.
  9884. ElapsedTimeInSeconds *int64 `type:"long"`
  9885. // The estimate of the time remaining before the restore will complete. Returns
  9886. // 0 for a completed restore.
  9887. EstimatedTimeToCompletionInSeconds *int64 `type:"long"`
  9888. // The number of megabytes that have been transferred from snapshot storage.
  9889. ProgressInMegaBytes *int64 `type:"long"`
  9890. // The size of the set of snapshot data used to restore the cluster.
  9891. SnapshotSizeInMegaBytes *int64 `type:"long"`
  9892. // The status of the restore action. Returns starting, restoring, completed,
  9893. // or failed.
  9894. Status *string `type:"string"`
  9895. }
  9896. // String returns the string representation
  9897. func (s RestoreStatus) String() string {
  9898. return awsutil.Prettify(s)
  9899. }
  9900. // GoString returns the string representation
  9901. func (s RestoreStatus) GoString() string {
  9902. return s.String()
  9903. }
  9904. type RestoreTableFromClusterSnapshotInput struct {
  9905. _ struct{} `type:"structure"`
  9906. // The identifier of the Amazon Redshift cluster to restore the table to.
  9907. //
  9908. // ClusterIdentifier is a required field
  9909. ClusterIdentifier *string `type:"string" required:"true"`
  9910. // The name of the table to create as a result of the current request.
  9911. //
  9912. // NewTableName is a required field
  9913. NewTableName *string `type:"string" required:"true"`
  9914. // The identifier of the snapshot to restore the table from. This snapshot must
  9915. // have been created from the Amazon Redshift cluster specified by the ClusterIdentifier
  9916. // parameter.
  9917. //
  9918. // SnapshotIdentifier is a required field
  9919. SnapshotIdentifier *string `type:"string" required:"true"`
  9920. // The name of the source database that contains the table to restore from.
  9921. //
  9922. // SourceDatabaseName is a required field
  9923. SourceDatabaseName *string `type:"string" required:"true"`
  9924. // The name of the source schema that contains the table to restore from. If
  9925. // you do not specify a SourceSchemaName value, the default is public.
  9926. SourceSchemaName *string `type:"string"`
  9927. // The name of the source table to restore from.
  9928. //
  9929. // SourceTableName is a required field
  9930. SourceTableName *string `type:"string" required:"true"`
  9931. // The name of the database to restore the table to.
  9932. TargetDatabaseName *string `type:"string"`
  9933. // The name of the schema to restore the table to.
  9934. TargetSchemaName *string `type:"string"`
  9935. }
  9936. // String returns the string representation
  9937. func (s RestoreTableFromClusterSnapshotInput) String() string {
  9938. return awsutil.Prettify(s)
  9939. }
  9940. // GoString returns the string representation
  9941. func (s RestoreTableFromClusterSnapshotInput) GoString() string {
  9942. return s.String()
  9943. }
  9944. // Validate inspects the fields of the type to determine if they are valid.
  9945. func (s *RestoreTableFromClusterSnapshotInput) Validate() error {
  9946. invalidParams := request.ErrInvalidParams{Context: "RestoreTableFromClusterSnapshotInput"}
  9947. if s.ClusterIdentifier == nil {
  9948. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  9949. }
  9950. if s.NewTableName == nil {
  9951. invalidParams.Add(request.NewErrParamRequired("NewTableName"))
  9952. }
  9953. if s.SnapshotIdentifier == nil {
  9954. invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
  9955. }
  9956. if s.SourceDatabaseName == nil {
  9957. invalidParams.Add(request.NewErrParamRequired("SourceDatabaseName"))
  9958. }
  9959. if s.SourceTableName == nil {
  9960. invalidParams.Add(request.NewErrParamRequired("SourceTableName"))
  9961. }
  9962. if invalidParams.Len() > 0 {
  9963. return invalidParams
  9964. }
  9965. return nil
  9966. }
  9967. type RestoreTableFromClusterSnapshotOutput struct {
  9968. _ struct{} `type:"structure"`
  9969. // Describes the status of a RestoreTableFromClusterSnapshot operation.
  9970. TableRestoreStatus *TableRestoreStatus `type:"structure"`
  9971. }
  9972. // String returns the string representation
  9973. func (s RestoreTableFromClusterSnapshotOutput) String() string {
  9974. return awsutil.Prettify(s)
  9975. }
  9976. // GoString returns the string representation
  9977. func (s RestoreTableFromClusterSnapshotOutput) GoString() string {
  9978. return s.String()
  9979. }
  9980. type RevokeClusterSecurityGroupIngressInput struct {
  9981. _ struct{} `type:"structure"`
  9982. // The IP range for which to revoke access. This range must be a valid Classless
  9983. // Inter-Domain Routing (CIDR) block of IP addresses. If CIDRIP is specified,
  9984. // EC2SecurityGroupName and EC2SecurityGroupOwnerId cannot be provided.
  9985. CIDRIP *string `type:"string"`
  9986. // The name of the security Group from which to revoke the ingress rule.
  9987. //
  9988. // ClusterSecurityGroupName is a required field
  9989. ClusterSecurityGroupName *string `type:"string" required:"true"`
  9990. // The name of the EC2 Security Group whose access is to be revoked. If EC2SecurityGroupName
  9991. // is specified, EC2SecurityGroupOwnerId must also be provided and CIDRIP cannot
  9992. // be provided.
  9993. EC2SecurityGroupName *string `type:"string"`
  9994. // The AWS account number of the owner of the security group specified in the
  9995. // EC2SecurityGroupName parameter. The AWS access key ID is not an acceptable
  9996. // value. If EC2SecurityGroupOwnerId is specified, EC2SecurityGroupName must
  9997. // also be provided. and CIDRIP cannot be provided.
  9998. //
  9999. // Example: 111122223333
  10000. EC2SecurityGroupOwnerId *string `type:"string"`
  10001. }
  10002. // String returns the string representation
  10003. func (s RevokeClusterSecurityGroupIngressInput) String() string {
  10004. return awsutil.Prettify(s)
  10005. }
  10006. // GoString returns the string representation
  10007. func (s RevokeClusterSecurityGroupIngressInput) GoString() string {
  10008. return s.String()
  10009. }
  10010. // Validate inspects the fields of the type to determine if they are valid.
  10011. func (s *RevokeClusterSecurityGroupIngressInput) Validate() error {
  10012. invalidParams := request.ErrInvalidParams{Context: "RevokeClusterSecurityGroupIngressInput"}
  10013. if s.ClusterSecurityGroupName == nil {
  10014. invalidParams.Add(request.NewErrParamRequired("ClusterSecurityGroupName"))
  10015. }
  10016. if invalidParams.Len() > 0 {
  10017. return invalidParams
  10018. }
  10019. return nil
  10020. }
  10021. type RevokeClusterSecurityGroupIngressOutput struct {
  10022. _ struct{} `type:"structure"`
  10023. // Describes a security group.
  10024. ClusterSecurityGroup *ClusterSecurityGroup `type:"structure"`
  10025. }
  10026. // String returns the string representation
  10027. func (s RevokeClusterSecurityGroupIngressOutput) String() string {
  10028. return awsutil.Prettify(s)
  10029. }
  10030. // GoString returns the string representation
  10031. func (s RevokeClusterSecurityGroupIngressOutput) GoString() string {
  10032. return s.String()
  10033. }
  10034. type RevokeSnapshotAccessInput struct {
  10035. _ struct{} `type:"structure"`
  10036. // The identifier of the AWS customer account that can no longer restore the
  10037. // specified snapshot.
  10038. //
  10039. // AccountWithRestoreAccess is a required field
  10040. AccountWithRestoreAccess *string `type:"string" required:"true"`
  10041. // The identifier of the cluster the snapshot was created from. This parameter
  10042. // is required if your IAM user has a policy containing a snapshot resource
  10043. // element that specifies anything other than * for the cluster name.
  10044. SnapshotClusterIdentifier *string `type:"string"`
  10045. // The identifier of the snapshot that the account can no longer access.
  10046. //
  10047. // SnapshotIdentifier is a required field
  10048. SnapshotIdentifier *string `type:"string" required:"true"`
  10049. }
  10050. // String returns the string representation
  10051. func (s RevokeSnapshotAccessInput) String() string {
  10052. return awsutil.Prettify(s)
  10053. }
  10054. // GoString returns the string representation
  10055. func (s RevokeSnapshotAccessInput) GoString() string {
  10056. return s.String()
  10057. }
  10058. // Validate inspects the fields of the type to determine if they are valid.
  10059. func (s *RevokeSnapshotAccessInput) Validate() error {
  10060. invalidParams := request.ErrInvalidParams{Context: "RevokeSnapshotAccessInput"}
  10061. if s.AccountWithRestoreAccess == nil {
  10062. invalidParams.Add(request.NewErrParamRequired("AccountWithRestoreAccess"))
  10063. }
  10064. if s.SnapshotIdentifier == nil {
  10065. invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
  10066. }
  10067. if invalidParams.Len() > 0 {
  10068. return invalidParams
  10069. }
  10070. return nil
  10071. }
  10072. type RevokeSnapshotAccessOutput struct {
  10073. _ struct{} `type:"structure"`
  10074. // Describes a snapshot.
  10075. Snapshot *Snapshot `type:"structure"`
  10076. }
  10077. // String returns the string representation
  10078. func (s RevokeSnapshotAccessOutput) String() string {
  10079. return awsutil.Prettify(s)
  10080. }
  10081. // GoString returns the string representation
  10082. func (s RevokeSnapshotAccessOutput) GoString() string {
  10083. return s.String()
  10084. }
  10085. type RotateEncryptionKeyInput struct {
  10086. _ struct{} `type:"structure"`
  10087. // The unique identifier of the cluster that you want to rotate the encryption
  10088. // keys for.
  10089. //
  10090. // Constraints: Must be the name of valid cluster that has encryption enabled.
  10091. //
  10092. // ClusterIdentifier is a required field
  10093. ClusterIdentifier *string `type:"string" required:"true"`
  10094. }
  10095. // String returns the string representation
  10096. func (s RotateEncryptionKeyInput) String() string {
  10097. return awsutil.Prettify(s)
  10098. }
  10099. // GoString returns the string representation
  10100. func (s RotateEncryptionKeyInput) GoString() string {
  10101. return s.String()
  10102. }
  10103. // Validate inspects the fields of the type to determine if they are valid.
  10104. func (s *RotateEncryptionKeyInput) Validate() error {
  10105. invalidParams := request.ErrInvalidParams{Context: "RotateEncryptionKeyInput"}
  10106. if s.ClusterIdentifier == nil {
  10107. invalidParams.Add(request.NewErrParamRequired("ClusterIdentifier"))
  10108. }
  10109. if invalidParams.Len() > 0 {
  10110. return invalidParams
  10111. }
  10112. return nil
  10113. }
  10114. type RotateEncryptionKeyOutput struct {
  10115. _ struct{} `type:"structure"`
  10116. // Describes a cluster.
  10117. Cluster *Cluster `type:"structure"`
  10118. }
  10119. // String returns the string representation
  10120. func (s RotateEncryptionKeyOutput) String() string {
  10121. return awsutil.Prettify(s)
  10122. }
  10123. // GoString returns the string representation
  10124. func (s RotateEncryptionKeyOutput) GoString() string {
  10125. return s.String()
  10126. }
  10127. // Describes a snapshot.
  10128. type Snapshot struct {
  10129. _ struct{} `type:"structure"`
  10130. // A list of the AWS customer accounts authorized to restore the snapshot. Returns
  10131. // null if no accounts are authorized. Visible only to the snapshot owner.
  10132. AccountsWithRestoreAccess []*AccountWithRestoreAccess `locationNameList:"AccountWithRestoreAccess" type:"list"`
  10133. // The size of the incremental backup.
  10134. ActualIncrementalBackupSizeInMegaBytes *float64 `type:"double"`
  10135. // The Availability Zone in which the cluster was created.
  10136. AvailabilityZone *string `type:"string"`
  10137. // The number of megabytes that have been transferred to the snapshot backup.
  10138. BackupProgressInMegaBytes *float64 `type:"double"`
  10139. // The time (UTC) when the cluster was originally created.
  10140. ClusterCreateTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  10141. // The identifier of the cluster for which the snapshot was taken.
  10142. ClusterIdentifier *string `type:"string"`
  10143. // The version ID of the Amazon Redshift engine that is running on the cluster.
  10144. ClusterVersion *string `type:"string"`
  10145. // The number of megabytes per second being transferred to the snapshot backup.
  10146. // Returns 0 for a completed backup.
  10147. CurrentBackupRateInMegaBytesPerSecond *float64 `type:"double"`
  10148. // The name of the database that was created when the cluster was created.
  10149. DBName *string `type:"string"`
  10150. // The amount of time an in-progress snapshot backup has been running, or the
  10151. // amount of time it took a completed backup to finish.
  10152. ElapsedTimeInSeconds *int64 `type:"long"`
  10153. // If true, the data in the snapshot is encrypted at rest.
  10154. Encrypted *bool `type:"boolean"`
  10155. // A boolean that indicates whether the snapshot data is encrypted using the
  10156. // HSM keys of the source cluster. true indicates that the data is encrypted
  10157. // using HSM keys.
  10158. EncryptedWithHSM *bool `type:"boolean"`
  10159. // An option that specifies whether to create the cluster with enhanced VPC
  10160. // routing enabled. To create a cluster that uses enhanced VPC routing, the
  10161. // cluster must be in a VPC. For more information, see Enhanced VPC Routing
  10162. // (http://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html)
  10163. // in the Amazon Redshift Cluster Management Guide.
  10164. //
  10165. // If this option is true, enhanced VPC routing is enabled.
  10166. //
  10167. // Default: false
  10168. EnhancedVpcRouting *bool `type:"boolean"`
  10169. // The estimate of the time remaining before the snapshot backup will complete.
  10170. // Returns 0 for a completed backup.
  10171. EstimatedSecondsToCompletion *int64 `type:"long"`
  10172. // The AWS Key Management Service (KMS) key ID of the encryption key that was
  10173. // used to encrypt data in the cluster from which the snapshot was taken.
  10174. KmsKeyId *string `type:"string"`
  10175. // The master user name for the cluster.
  10176. MasterUsername *string `type:"string"`
  10177. // The node type of the nodes in the cluster.
  10178. NodeType *string `type:"string"`
  10179. // The number of nodes in the cluster.
  10180. NumberOfNodes *int64 `type:"integer"`
  10181. // For manual snapshots, the AWS customer account used to create or copy the
  10182. // snapshot. For automatic snapshots, the owner of the cluster. The owner can
  10183. // perform all snapshot actions, such as sharing a manual snapshot.
  10184. OwnerAccount *string `type:"string"`
  10185. // The port that the cluster is listening on.
  10186. Port *int64 `type:"integer"`
  10187. // The list of node types that this cluster snapshot is able to restore into.
  10188. RestorableNodeTypes []*string `locationNameList:"NodeType" type:"list"`
  10189. // The time (UTC) when Amazon Redshift began the snapshot. A snapshot contains
  10190. // a copy of the cluster data as of this exact time.
  10191. SnapshotCreateTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  10192. // The snapshot identifier that is provided in the request.
  10193. SnapshotIdentifier *string `type:"string"`
  10194. // The snapshot type. Snapshots created using CreateClusterSnapshot and CopyClusterSnapshot
  10195. // will be of type "manual".
  10196. SnapshotType *string `type:"string"`
  10197. // The source region from which the snapshot was copied.
  10198. SourceRegion *string `type:"string"`
  10199. // The snapshot status. The value of the status depends on the API operation
  10200. // used.
  10201. //
  10202. // * CreateClusterSnapshot and CopyClusterSnapshot returns status as "creating".
  10203. //
  10204. //
  10205. // * DescribeClusterSnapshots returns status as "creating", "available",
  10206. // "final snapshot", or "failed".
  10207. //
  10208. // * DeleteClusterSnapshot returns status as "deleted".
  10209. Status *string `type:"string"`
  10210. // The list of tags for the cluster snapshot.
  10211. Tags []*Tag `locationNameList:"Tag" type:"list"`
  10212. // The size of the complete set of backup data that would be used to restore
  10213. // the cluster.
  10214. TotalBackupSizeInMegaBytes *float64 `type:"double"`
  10215. // The VPC identifier of the cluster if the snapshot is from a cluster in a
  10216. // VPC. Otherwise, this field is not in the output.
  10217. VpcId *string `type:"string"`
  10218. }
  10219. // String returns the string representation
  10220. func (s Snapshot) String() string {
  10221. return awsutil.Prettify(s)
  10222. }
  10223. // GoString returns the string representation
  10224. func (s Snapshot) GoString() string {
  10225. return s.String()
  10226. }
  10227. // The snapshot copy grant that grants Amazon Redshift permission to encrypt
  10228. // copied snapshots with the specified customer master key (CMK) from AWS KMS
  10229. // in the destination region.
  10230. //
  10231. // For more information about managing snapshot copy grants, go to Amazon Redshift
  10232. // Database Encryption (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)
  10233. // in the Amazon Redshift Cluster Management Guide.
  10234. type SnapshotCopyGrant struct {
  10235. _ struct{} `type:"structure"`
  10236. // The unique identifier of the customer master key (CMK) in AWS KMS to which
  10237. // Amazon Redshift is granted permission.
  10238. KmsKeyId *string `type:"string"`
  10239. // The name of the snapshot copy grant.
  10240. SnapshotCopyGrantName *string `type:"string"`
  10241. // A list of tag instances.
  10242. Tags []*Tag `locationNameList:"Tag" type:"list"`
  10243. }
  10244. // String returns the string representation
  10245. func (s SnapshotCopyGrant) String() string {
  10246. return awsutil.Prettify(s)
  10247. }
  10248. // GoString returns the string representation
  10249. func (s SnapshotCopyGrant) GoString() string {
  10250. return s.String()
  10251. }
  10252. // Describes a subnet.
  10253. type Subnet struct {
  10254. _ struct{} `type:"structure"`
  10255. // Describes an availability zone.
  10256. SubnetAvailabilityZone *AvailabilityZone `type:"structure"`
  10257. // The identifier of the subnet.
  10258. SubnetIdentifier *string `type:"string"`
  10259. // The status of the subnet.
  10260. SubnetStatus *string `type:"string"`
  10261. }
  10262. // String returns the string representation
  10263. func (s Subnet) String() string {
  10264. return awsutil.Prettify(s)
  10265. }
  10266. // GoString returns the string representation
  10267. func (s Subnet) GoString() string {
  10268. return s.String()
  10269. }
  10270. // Describes the status of a RestoreTableFromClusterSnapshot operation.
  10271. type TableRestoreStatus struct {
  10272. _ struct{} `type:"structure"`
  10273. // The identifier of the Amazon Redshift cluster that the table is being restored
  10274. // to.
  10275. ClusterIdentifier *string `type:"string"`
  10276. // A description of the status of the table restore request. Status values include
  10277. // SUCCEEDED, FAILED, CANCELED, PENDING, IN_PROGRESS.
  10278. Message *string `type:"string"`
  10279. // The name of the table to create as a result of the table restore request.
  10280. NewTableName *string `type:"string"`
  10281. // The amount of data restored to the new table so far, in megabytes (MB).
  10282. ProgressInMegaBytes *int64 `type:"long"`
  10283. // The time that the table restore request was made, in Universal Coordinated
  10284. // Time (UTC).
  10285. RequestTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  10286. // The identifier of the snapshot that the table is being restored from.
  10287. SnapshotIdentifier *string `type:"string"`
  10288. // The name of the source database that contains the table being restored.
  10289. SourceDatabaseName *string `type:"string"`
  10290. // The name of the source schema that contains the table being restored.
  10291. SourceSchemaName *string `type:"string"`
  10292. // The name of the source table being restored.
  10293. SourceTableName *string `type:"string"`
  10294. // A value that describes the current state of the table restore request.
  10295. //
  10296. // Valid Values: SUCCEEDED, FAILED, CANCELED, PENDING, IN_PROGRESS
  10297. Status *string `type:"string" enum:"TableRestoreStatusType"`
  10298. // The unique identifier for the table restore request.
  10299. TableRestoreRequestId *string `type:"string"`
  10300. // The name of the database to restore the table to.
  10301. TargetDatabaseName *string `type:"string"`
  10302. // The name of the schema to restore the table to.
  10303. TargetSchemaName *string `type:"string"`
  10304. // The total amount of data to restore to the new table, in megabytes (MB).
  10305. TotalDataInMegaBytes *int64 `type:"long"`
  10306. }
  10307. // String returns the string representation
  10308. func (s TableRestoreStatus) String() string {
  10309. return awsutil.Prettify(s)
  10310. }
  10311. // GoString returns the string representation
  10312. func (s TableRestoreStatus) GoString() string {
  10313. return s.String()
  10314. }
  10315. // A tag consisting of a name/value pair for a resource.
  10316. type Tag struct {
  10317. _ struct{} `type:"structure"`
  10318. // The key, or name, for the resource tag.
  10319. Key *string `type:"string"`
  10320. // The value for the resource tag.
  10321. Value *string `type:"string"`
  10322. }
  10323. // String returns the string representation
  10324. func (s Tag) String() string {
  10325. return awsutil.Prettify(s)
  10326. }
  10327. // GoString returns the string representation
  10328. func (s Tag) GoString() string {
  10329. return s.String()
  10330. }
  10331. // A tag and its associated resource.
  10332. type TaggedResource struct {
  10333. _ struct{} `type:"structure"`
  10334. // The Amazon Resource Name (ARN) with which the tag is associated. For example,
  10335. // arn:aws:redshift:us-east-1:123456789:cluster:t1.
  10336. ResourceName *string `type:"string"`
  10337. // The type of resource with which the tag is associated. Valid resource types
  10338. // are:
  10339. //
  10340. // * Cluster
  10341. //
  10342. // * CIDR/IP
  10343. //
  10344. // * EC2 security group
  10345. //
  10346. // * Snapshot
  10347. //
  10348. // * Cluster security group
  10349. //
  10350. // * Subnet group
  10351. //
  10352. // * HSM connection
  10353. //
  10354. // * HSM certificate
  10355. //
  10356. // * Parameter group
  10357. //
  10358. // For more information about Amazon Redshift resource types and constructing
  10359. // ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) (http://docs.aws.amazon.com/redshift/latest/mgmt/constructing-redshift-arn.html)
  10360. // in the Amazon Redshift Cluster Management Guide.
  10361. ResourceType *string `type:"string"`
  10362. // The tag for the resource.
  10363. Tag *Tag `type:"structure"`
  10364. }
  10365. // String returns the string representation
  10366. func (s TaggedResource) String() string {
  10367. return awsutil.Prettify(s)
  10368. }
  10369. // GoString returns the string representation
  10370. func (s TaggedResource) GoString() string {
  10371. return s.String()
  10372. }
  10373. // Describes the members of a VPC security group.
  10374. type VpcSecurityGroupMembership struct {
  10375. _ struct{} `type:"structure"`
  10376. // The status of the VPC security group.
  10377. Status *string `type:"string"`
  10378. // The identifier of the VPC security group.
  10379. VpcSecurityGroupId *string `type:"string"`
  10380. }
  10381. // String returns the string representation
  10382. func (s VpcSecurityGroupMembership) String() string {
  10383. return awsutil.Prettify(s)
  10384. }
  10385. // GoString returns the string representation
  10386. func (s VpcSecurityGroupMembership) GoString() string {
  10387. return s.String()
  10388. }
  10389. const (
  10390. // ParameterApplyTypeStatic is a ParameterApplyType enum value
  10391. ParameterApplyTypeStatic = "static"
  10392. // ParameterApplyTypeDynamic is a ParameterApplyType enum value
  10393. ParameterApplyTypeDynamic = "dynamic"
  10394. )
  10395. const (
  10396. // SourceTypeCluster is a SourceType enum value
  10397. SourceTypeCluster = "cluster"
  10398. // SourceTypeClusterParameterGroup is a SourceType enum value
  10399. SourceTypeClusterParameterGroup = "cluster-parameter-group"
  10400. // SourceTypeClusterSecurityGroup is a SourceType enum value
  10401. SourceTypeClusterSecurityGroup = "cluster-security-group"
  10402. // SourceTypeClusterSnapshot is a SourceType enum value
  10403. SourceTypeClusterSnapshot = "cluster-snapshot"
  10404. )
  10405. const (
  10406. // TableRestoreStatusTypePending is a TableRestoreStatusType enum value
  10407. TableRestoreStatusTypePending = "PENDING"
  10408. // TableRestoreStatusTypeInProgress is a TableRestoreStatusType enum value
  10409. TableRestoreStatusTypeInProgress = "IN_PROGRESS"
  10410. // TableRestoreStatusTypeSucceeded is a TableRestoreStatusType enum value
  10411. TableRestoreStatusTypeSucceeded = "SUCCEEDED"
  10412. // TableRestoreStatusTypeFailed is a TableRestoreStatusType enum value
  10413. TableRestoreStatusTypeFailed = "FAILED"
  10414. // TableRestoreStatusTypeCanceled is a TableRestoreStatusType enum value
  10415. TableRestoreStatusTypeCanceled = "CANCELED"
  10416. )