| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132 |
- // THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
- // Package firehose provides a client for Amazon Kinesis Firehose.
- package firehose
- import (
- "fmt"
- "time"
- "github.com/aws/aws-sdk-go/aws/awsutil"
- "github.com/aws/aws-sdk-go/aws/request"
- )
- const opCreateDeliveryStream = "CreateDeliveryStream"
- // CreateDeliveryStreamRequest generates a "aws/request.Request" representing the
- // client's request for the CreateDeliveryStream operation. The "output" return
- // value can be used to capture response data after the request's "Send" method
- // is called.
- //
- // Creating a request object using this method should be used when you want to inject
- // custom logic into the request's lifecycle using a custom handler, or if you want to
- // access properties on the request object before or after sending the request. If
- // you just want the service response, call the CreateDeliveryStream method directly
- // instead.
- //
- // Note: You must call the "Send" method on the returned request object in order
- // to execute the request.
- //
- // // Example sending a request using the CreateDeliveryStreamRequest method.
- // req, resp := client.CreateDeliveryStreamRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- func (c *Firehose) CreateDeliveryStreamRequest(input *CreateDeliveryStreamInput) (req *request.Request, output *CreateDeliveryStreamOutput) {
- op := &request.Operation{
- Name: opCreateDeliveryStream,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &CreateDeliveryStreamInput{}
- }
- req = c.newRequest(op, input, output)
- output = &CreateDeliveryStreamOutput{}
- req.Data = output
- return
- }
- // Creates a delivery stream.
- //
- // CreateDeliveryStream is an asynchronous operation that immediately returns.
- // The initial status of the delivery stream is CREATING. After the delivery
- // stream is created, its status is ACTIVE and it now accepts data. Attempts
- // to send data to a delivery stream that is not in the ACTIVE state cause an
- // exception. To check the state of a delivery stream, use DescribeDeliveryStream.
- //
- // The name of a delivery stream identifies it. You can't have two delivery
- // streams with the same name in the same region. Two delivery streams in different
- // AWS accounts or different regions in the same AWS account can have the same
- // name.
- //
- // By default, you can create up to 20 delivery streams per region.
- //
- // A delivery stream can only be configured with a single destination, Amazon
- // S3, Amazon Elasticsearch Service, or Amazon Redshift. For correct CreateDeliveryStream
- // request syntax, specify only one destination configuration parameter: either
- // S3DestinationConfiguration, ElasticsearchDestinationConfiguration, or RedshiftDestinationConfiguration.
- //
- // As part of S3DestinationConfiguration, optional values BufferingHints, EncryptionConfiguration,
- // and CompressionFormat can be provided. By default, if no BufferingHints value
- // is provided, Firehose buffers data up to 5 MB or for 5 minutes, whichever
- // condition is satisfied first. Note that BufferingHints is a hint, so there
- // are some cases where the service cannot adhere to these conditions strictly;
- // for example, record boundaries are such that the size is a little over or
- // under the configured buffering size. By default, no encryption is performed.
- // We strongly recommend that you enable encryption to ensure secure data storage
- // in Amazon S3.
- //
- // A few notes about RedshiftDestinationConfiguration:
- //
- // An Amazon Redshift destination requires an S3 bucket as intermediate location,
- // as Firehose first delivers data to S3 and then uses COPY syntax to load data
- // into an Amazon Redshift table. This is specified in the RedshiftDestinationConfiguration.S3Configuration
- // parameter element.
- //
- // The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationConfiguration.S3Configuration
- // because the Amazon Redshift COPY operation that reads from the S3 bucket
- // doesn't support these compression formats.
- //
- // We strongly recommend that the username and password provided is used
- // exclusively for Firehose purposes, and that the permissions for the account
- // are restricted for Amazon Redshift INSERT permissions.
- //
- // Firehose assumes the IAM role that is configured as part of destinations.
- // The IAM role should allow the Firehose principal to assume the role, and
- // the role should have permissions that allows the service to deliver the data.
- // For more information, see Amazon S3 Bucket Access (http://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3)
- // in the Amazon Kinesis Firehose Developer Guide.
- func (c *Firehose) CreateDeliveryStream(input *CreateDeliveryStreamInput) (*CreateDeliveryStreamOutput, error) {
- req, out := c.CreateDeliveryStreamRequest(input)
- err := req.Send()
- return out, err
- }
- const opDeleteDeliveryStream = "DeleteDeliveryStream"
- // DeleteDeliveryStreamRequest generates a "aws/request.Request" representing the
- // client's request for the DeleteDeliveryStream operation. The "output" return
- // value can be used to capture response data after the request's "Send" method
- // is called.
- //
- // Creating a request object using this method should be used when you want to inject
- // custom logic into the request's lifecycle using a custom handler, or if you want to
- // access properties on the request object before or after sending the request. If
- // you just want the service response, call the DeleteDeliveryStream method directly
- // instead.
- //
- // Note: You must call the "Send" method on the returned request object in order
- // to execute the request.
- //
- // // Example sending a request using the DeleteDeliveryStreamRequest method.
- // req, resp := client.DeleteDeliveryStreamRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- func (c *Firehose) DeleteDeliveryStreamRequest(input *DeleteDeliveryStreamInput) (req *request.Request, output *DeleteDeliveryStreamOutput) {
- op := &request.Operation{
- Name: opDeleteDeliveryStream,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DeleteDeliveryStreamInput{}
- }
- req = c.newRequest(op, input, output)
- output = &DeleteDeliveryStreamOutput{}
- req.Data = output
- return
- }
- // Deletes a delivery stream and its data.
- //
- // You can delete a delivery stream only if it is in ACTIVE or DELETING state,
- // and not in the CREATING state. While the deletion request is in process,
- // the delivery stream is in the DELETING state.
- //
- // To check the state of a delivery stream, use DescribeDeliveryStream.
- //
- // While the delivery stream is DELETING state, the service may continue to
- // accept the records, but the service doesn't make any guarantees with respect
- // to delivering the data. Therefore, as a best practice, you should first stop
- // any applications that are sending records before deleting a delivery stream.
- func (c *Firehose) DeleteDeliveryStream(input *DeleteDeliveryStreamInput) (*DeleteDeliveryStreamOutput, error) {
- req, out := c.DeleteDeliveryStreamRequest(input)
- err := req.Send()
- return out, err
- }
- const opDescribeDeliveryStream = "DescribeDeliveryStream"
- // DescribeDeliveryStreamRequest generates a "aws/request.Request" representing the
- // client's request for the DescribeDeliveryStream operation. The "output" return
- // value can be used to capture response data after the request's "Send" method
- // is called.
- //
- // Creating a request object using this method should be used when you want to inject
- // custom logic into the request's lifecycle using a custom handler, or if you want to
- // access properties on the request object before or after sending the request. If
- // you just want the service response, call the DescribeDeliveryStream method directly
- // instead.
- //
- // Note: You must call the "Send" method on the returned request object in order
- // to execute the request.
- //
- // // Example sending a request using the DescribeDeliveryStreamRequest method.
- // req, resp := client.DescribeDeliveryStreamRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- func (c *Firehose) DescribeDeliveryStreamRequest(input *DescribeDeliveryStreamInput) (req *request.Request, output *DescribeDeliveryStreamOutput) {
- op := &request.Operation{
- Name: opDescribeDeliveryStream,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &DescribeDeliveryStreamInput{}
- }
- req = c.newRequest(op, input, output)
- output = &DescribeDeliveryStreamOutput{}
- req.Data = output
- return
- }
- // Describes the specified delivery stream and gets the status. For example,
- // after your delivery stream is created, call DescribeDeliveryStream to see
- // if the delivery stream is ACTIVE and therefore ready for data to be sent
- // to it.
- func (c *Firehose) DescribeDeliveryStream(input *DescribeDeliveryStreamInput) (*DescribeDeliveryStreamOutput, error) {
- req, out := c.DescribeDeliveryStreamRequest(input)
- err := req.Send()
- return out, err
- }
- const opListDeliveryStreams = "ListDeliveryStreams"
- // ListDeliveryStreamsRequest generates a "aws/request.Request" representing the
- // client's request for the ListDeliveryStreams operation. The "output" return
- // value can be used to capture response data after the request's "Send" method
- // is called.
- //
- // Creating a request object using this method should be used when you want to inject
- // custom logic into the request's lifecycle using a custom handler, or if you want to
- // access properties on the request object before or after sending the request. If
- // you just want the service response, call the ListDeliveryStreams method directly
- // instead.
- //
- // Note: You must call the "Send" method on the returned request object in order
- // to execute the request.
- //
- // // Example sending a request using the ListDeliveryStreamsRequest method.
- // req, resp := client.ListDeliveryStreamsRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- func (c *Firehose) ListDeliveryStreamsRequest(input *ListDeliveryStreamsInput) (req *request.Request, output *ListDeliveryStreamsOutput) {
- op := &request.Operation{
- Name: opListDeliveryStreams,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &ListDeliveryStreamsInput{}
- }
- req = c.newRequest(op, input, output)
- output = &ListDeliveryStreamsOutput{}
- req.Data = output
- return
- }
- // Lists your delivery streams.
- //
- // The number of delivery streams might be too large to return using a single
- // call to ListDeliveryStreams. You can limit the number of delivery streams
- // returned, using the Limit parameter. To determine whether there are more
- // delivery streams to list, check the value of HasMoreDeliveryStreams in the
- // output. If there are more delivery streams to list, you can request them
- // by specifying the name of the last delivery stream returned in the call in
- // the ExclusiveStartDeliveryStreamName parameter of a subsequent call.
- func (c *Firehose) ListDeliveryStreams(input *ListDeliveryStreamsInput) (*ListDeliveryStreamsOutput, error) {
- req, out := c.ListDeliveryStreamsRequest(input)
- err := req.Send()
- return out, err
- }
- const opPutRecord = "PutRecord"
- // PutRecordRequest generates a "aws/request.Request" representing the
- // client's request for the PutRecord operation. The "output" return
- // value can be used to capture response data after the request's "Send" method
- // is called.
- //
- // Creating a request object using this method should be used when you want to inject
- // custom logic into the request's lifecycle using a custom handler, or if you want to
- // access properties on the request object before or after sending the request. If
- // you just want the service response, call the PutRecord method directly
- // instead.
- //
- // Note: You must call the "Send" method on the returned request object in order
- // to execute the request.
- //
- // // Example sending a request using the PutRecordRequest method.
- // req, resp := client.PutRecordRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- func (c *Firehose) PutRecordRequest(input *PutRecordInput) (req *request.Request, output *PutRecordOutput) {
- op := &request.Operation{
- Name: opPutRecord,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &PutRecordInput{}
- }
- req = c.newRequest(op, input, output)
- output = &PutRecordOutput{}
- req.Data = output
- return
- }
- // Writes a single data record into an Amazon Kinesis Firehose delivery stream.
- // To write multiple data records into a delivery stream, use PutRecordBatch.
- // Applications using these operations are referred to as producers.
- //
- // By default, each delivery stream can take in up to 2,000 transactions per
- // second, 5,000 records per second, or 5 MB per second. Note that if you use
- // PutRecord and PutRecordBatch, the limits are an aggregate across these two
- // operations for each delivery stream. For more information about limits and
- // how to request an increase, see Amazon Kinesis Firehose Limits (http://docs.aws.amazon.com/firehose/latest/dev/limits.html).
- //
- // You must specify the name of the delivery stream and the data record when
- // using PutRecord. The data record consists of a data blob that can be up to
- // 1,000 KB in size, and any kind of data, for example, a segment from a log
- // file, geographic location data, web site clickstream data, etc.
- //
- // Firehose buffers records before delivering them to the destination. To disambiguate
- // the data blobs at the destination, a common solution is to use delimiters
- // in the data, such as a newline (\n) or some other character unique within
- // the data. This allows the consumer application(s) to parse individual data
- // items when reading the data from the destination.
- //
- // The PutRecord operation returns a RecordId, which is a unique string assigned
- // to each record. Producer applications can use this ID for purposes such as
- // auditability and investigation.
- //
- // If the PutRecord operation throws a ServiceUnavailableException, back off
- // and retry. If the exception persists, it is possible that the throughput
- // limits have been exceeded for the delivery stream.
- //
- // Data records sent to Firehose are stored for 24 hours from the time they
- // are added to a delivery stream as it attempts to send the records to the
- // destination. If the destination is unreachable for more than 24 hours, the
- // data is no longer available.
- func (c *Firehose) PutRecord(input *PutRecordInput) (*PutRecordOutput, error) {
- req, out := c.PutRecordRequest(input)
- err := req.Send()
- return out, err
- }
- const opPutRecordBatch = "PutRecordBatch"
- // PutRecordBatchRequest generates a "aws/request.Request" representing the
- // client's request for the PutRecordBatch operation. The "output" return
- // value can be used to capture response data after the request's "Send" method
- // is called.
- //
- // Creating a request object using this method should be used when you want to inject
- // custom logic into the request's lifecycle using a custom handler, or if you want to
- // access properties on the request object before or after sending the request. If
- // you just want the service response, call the PutRecordBatch method directly
- // instead.
- //
- // Note: You must call the "Send" method on the returned request object in order
- // to execute the request.
- //
- // // Example sending a request using the PutRecordBatchRequest method.
- // req, resp := client.PutRecordBatchRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- func (c *Firehose) PutRecordBatchRequest(input *PutRecordBatchInput) (req *request.Request, output *PutRecordBatchOutput) {
- op := &request.Operation{
- Name: opPutRecordBatch,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &PutRecordBatchInput{}
- }
- req = c.newRequest(op, input, output)
- output = &PutRecordBatchOutput{}
- req.Data = output
- return
- }
- // Writes multiple data records into a delivery stream in a single call, which
- // can achieve higher throughput per producer than when writing single records.
- // To write single data records into a delivery stream, use PutRecord. Applications
- // using these operations are referred to as producers.
- //
- // Each PutRecordBatch request supports up to 500 records. Each record in the
- // request can be as large as 1,000 KB (before 64-bit encoding), up to a limit
- // of 4 MB for the entire request. By default, each delivery stream can take
- // in up to 2,000 transactions per second, 5,000 records per second, or 5 MB
- // per second. Note that if you use PutRecord and PutRecordBatch, the limits
- // are an aggregate across these two operations for each delivery stream. For
- // more information about limits and how to request an increase, see Amazon
- // Kinesis Firehose Limits (http://docs.aws.amazon.com/firehose/latest/dev/limits.html).
- //
- // You must specify the name of the delivery stream and the data record when
- // using PutRecord. The data record consists of a data blob that can be up to
- // 1,000 KB in size, and any kind of data, for example, a segment from a log
- // file, geographic location data, web site clickstream data, and so on.
- //
- // Firehose buffers records before delivering them to the destination. To disambiguate
- // the data blobs at the destination, a common solution is to use delimiters
- // in the data, such as a newline (\n) or some other character unique within
- // the data. This allows the consumer application(s) to parse individual data
- // items when reading the data from the destination.
- //
- // The PutRecordBatch response includes a count of any failed records, FailedPutCount,
- // and an array of responses, RequestResponses. The FailedPutCount value is
- // a count of records that failed. Each entry in the RequestResponses array
- // gives additional information of the processed record. Each entry in RequestResponses
- // directly correlates with a record in the request array using the same ordering,
- // from the top to the bottom of the request and response. RequestResponses
- // always includes the same number of records as the request array. RequestResponses
- // both successfully and unsuccessfully processed records. Firehose attempts
- // to process all records in each PutRecordBatch request. A single record failure
- // does not stop the processing of subsequent records.
- //
- // A successfully processed record includes a RecordId value, which is a unique
- // value identified for the record. An unsuccessfully processed record includes
- // ErrorCode and ErrorMessage values. ErrorCode reflects the type of error and
- // is one of the following values: ServiceUnavailable or InternalFailure. ErrorMessage
- // provides more detailed information about the error.
- //
- // If FailedPutCount is greater than 0 (zero), retry the request. A retry of
- // the entire batch of records is possible; however, we strongly recommend that
- // you inspect the entire response and resend only those records that failed
- // processing. This minimizes duplicate records and also reduces the total bytes
- // sent (and corresponding charges).
- //
- // If the PutRecordBatch operation throws a ServiceUnavailableException, back
- // off and retry. If the exception persists, it is possible that the throughput
- // limits have been exceeded for the delivery stream.
- //
- // Data records sent to Firehose are stored for 24 hours from the time they
- // are added to a delivery stream as it attempts to send the records to the
- // destination. If the destination is unreachable for more than 24 hours, the
- // data is no longer available.
- func (c *Firehose) PutRecordBatch(input *PutRecordBatchInput) (*PutRecordBatchOutput, error) {
- req, out := c.PutRecordBatchRequest(input)
- err := req.Send()
- return out, err
- }
- const opUpdateDestination = "UpdateDestination"
- // UpdateDestinationRequest generates a "aws/request.Request" representing the
- // client's request for the UpdateDestination operation. The "output" return
- // value can be used to capture response data after the request's "Send" method
- // is called.
- //
- // Creating a request object using this method should be used when you want to inject
- // custom logic into the request's lifecycle using a custom handler, or if you want to
- // access properties on the request object before or after sending the request. If
- // you just want the service response, call the UpdateDestination method directly
- // instead.
- //
- // Note: You must call the "Send" method on the returned request object in order
- // to execute the request.
- //
- // // Example sending a request using the UpdateDestinationRequest method.
- // req, resp := client.UpdateDestinationRequest(params)
- //
- // err := req.Send()
- // if err == nil { // resp is now filled
- // fmt.Println(resp)
- // }
- //
- func (c *Firehose) UpdateDestinationRequest(input *UpdateDestinationInput) (req *request.Request, output *UpdateDestinationOutput) {
- op := &request.Operation{
- Name: opUpdateDestination,
- HTTPMethod: "POST",
- HTTPPath: "/",
- }
- if input == nil {
- input = &UpdateDestinationInput{}
- }
- req = c.newRequest(op, input, output)
- output = &UpdateDestinationOutput{}
- req.Data = output
- return
- }
- // Updates the specified destination of the specified delivery stream. Note:
- // Switching between Elasticsearch and other services is not supported. For
- // Elasticsearch destination, you can only update an existing Elasticsearch
- // destination with this operation.
- //
- // This operation can be used to change the destination type (for example,
- // to replace the Amazon S3 destination with Amazon Redshift) or change the
- // parameters associated with a given destination (for example, to change the
- // bucket name of the Amazon S3 destination). The update may not occur immediately.
- // The target delivery stream remains active while the configurations are updated,
- // so data writes to the delivery stream can continue during this process. The
- // updated configurations are normally effective within a few minutes.
- //
- // If the destination type is the same, Firehose merges the configuration parameters
- // specified in the UpdateDestination request with the destination configuration
- // that already exists on the delivery stream. If any of the parameters are
- // not specified in the update request, then the existing configuration parameters
- // are retained. For example, in the Amazon S3 destination, if EncryptionConfiguration
- // is not specified then the existing EncryptionConfiguration is maintained
- // on the destination.
- //
- // If the destination type is not the same, for example, changing the destination
- // from Amazon S3 to Amazon Redshift, Firehose does not merge any parameters.
- // In this case, all parameters must be specified.
- //
- // Firehose uses the CurrentDeliveryStreamVersionId to avoid race conditions
- // and conflicting merges. This is a required field in every request and the
- // service only updates the configuration if the existing configuration matches
- // the VersionId. After the update is applied successfully, the VersionId is
- // updated, which can be retrieved with the DescribeDeliveryStream operation.
- // The new VersionId should be uses to set CurrentDeliveryStreamVersionId in
- // the next UpdateDestination operation.
- func (c *Firehose) UpdateDestination(input *UpdateDestinationInput) (*UpdateDestinationOutput, error) {
- req, out := c.UpdateDestinationRequest(input)
- err := req.Send()
- return out, err
- }
- // Describes hints for the buffering to perform before delivering data to the
- // destination. Please note that these options are treated as hints, and therefore
- // Firehose may choose to use different values when it is optimal.
- type BufferingHints struct {
- _ struct{} `type:"structure"`
- // Buffer incoming data for the specified period of time, in seconds, before
- // delivering it to the destination. The default value is 300.
- IntervalInSeconds *int64 `min:"60" type:"integer"`
- // Buffer incoming data to the specified size, in MBs, before delivering it
- // to the destination. The default value is 5.
- //
- // We recommend setting SizeInMBs to a value greater than the amount of data
- // you typically ingest into the delivery stream in 10 seconds. For example,
- // if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher.
- SizeInMBs *int64 `min:"1" type:"integer"`
- }
- // String returns the string representation
- func (s BufferingHints) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s BufferingHints) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *BufferingHints) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "BufferingHints"}
- if s.IntervalInSeconds != nil && *s.IntervalInSeconds < 60 {
- invalidParams.Add(request.NewErrParamMinValue("IntervalInSeconds", 60))
- }
- if s.SizeInMBs != nil && *s.SizeInMBs < 1 {
- invalidParams.Add(request.NewErrParamMinValue("SizeInMBs", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Describes CloudWatch logging options for your delivery stream.
- type CloudWatchLoggingOptions struct {
- _ struct{} `type:"structure"`
- // Enables or disables CloudWatch logging.
- Enabled *bool `type:"boolean"`
- // The CloudWatch group name for logging. This value is required if Enabled
- // is true.
- LogGroupName *string `type:"string"`
- // The CloudWatch log stream name for logging. This value is required if Enabled
- // is true.
- LogStreamName *string `type:"string"`
- }
- // String returns the string representation
- func (s CloudWatchLoggingOptions) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CloudWatchLoggingOptions) GoString() string {
- return s.String()
- }
- // Describes a COPY command for Amazon Redshift.
- type CopyCommand struct {
- _ struct{} `type:"structure"`
- // Optional parameters to use with the Amazon Redshift COPY command. For more
- // information, see the "Optional Parameters" section of Amazon Redshift COPY
- // command (http://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html). Some
- // possible examples that would apply to Firehose are as follows.
- //
- // delimiter '\t' lzop; - fields are delimited with "\t" (TAB character) and
- // compressed using lzop.
- //
- // delimiter '| - fields are delimited with "|" (this is the default delimiter).
- //
- // delimiter '|' escape - the delimiter should be escaped.
- //
- // fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'
- // - fields are fixed width in the source, with each width specified after every
- // column in the table.
- //
- // JSON 's3://mybucket/jsonpaths.txt' - data is in JSON format, and the path
- // specified is the format of the data.
- //
- // For more examples, see Amazon Redshift COPY command examples (http://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html).
- CopyOptions *string `type:"string"`
- // A comma-separated list of column names.
- DataTableColumns *string `type:"string"`
- // The name of the target table. The table must already exist in the database.
- DataTableName *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s CopyCommand) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CopyCommand) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *CopyCommand) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CopyCommand"}
- if s.DataTableName == nil {
- invalidParams.Add(request.NewErrParamRequired("DataTableName"))
- }
- if s.DataTableName != nil && len(*s.DataTableName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("DataTableName", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Contains the parameters for CreateDeliveryStream.
- type CreateDeliveryStreamInput struct {
- _ struct{} `type:"structure"`
- // The name of the delivery stream.
- DeliveryStreamName *string `min:"1" type:"string" required:"true"`
- // The destination in Amazon ES. This value cannot be specified if Amazon S3
- // or Amazon Redshift is the desired destination (see restrictions listed above).
- ElasticsearchDestinationConfiguration *ElasticsearchDestinationConfiguration `type:"structure"`
- // The destination in Amazon Redshift. This value cannot be specified if Amazon
- // S3 or Amazon Elasticsearch is the desired destination (see restrictions listed
- // above).
- RedshiftDestinationConfiguration *RedshiftDestinationConfiguration `type:"structure"`
- // The destination in Amazon S3. This value must be specified if ElasticsearchDestinationConfiguration
- // or RedshiftDestinationConfiguration is specified (see restrictions listed
- // above).
- S3DestinationConfiguration *S3DestinationConfiguration `type:"structure"`
- }
- // String returns the string representation
- func (s CreateDeliveryStreamInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateDeliveryStreamInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *CreateDeliveryStreamInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreateDeliveryStreamInput"}
- if s.DeliveryStreamName == nil {
- invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
- }
- if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
- }
- if s.ElasticsearchDestinationConfiguration != nil {
- if err := s.ElasticsearchDestinationConfiguration.Validate(); err != nil {
- invalidParams.AddNested("ElasticsearchDestinationConfiguration", err.(request.ErrInvalidParams))
- }
- }
- if s.RedshiftDestinationConfiguration != nil {
- if err := s.RedshiftDestinationConfiguration.Validate(); err != nil {
- invalidParams.AddNested("RedshiftDestinationConfiguration", err.(request.ErrInvalidParams))
- }
- }
- if s.S3DestinationConfiguration != nil {
- if err := s.S3DestinationConfiguration.Validate(); err != nil {
- invalidParams.AddNested("S3DestinationConfiguration", err.(request.ErrInvalidParams))
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Contains the output of CreateDeliveryStream.
- type CreateDeliveryStreamOutput struct {
- _ struct{} `type:"structure"`
- // The ARN of the delivery stream.
- DeliveryStreamARN *string `type:"string"`
- }
- // String returns the string representation
- func (s CreateDeliveryStreamOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s CreateDeliveryStreamOutput) GoString() string {
- return s.String()
- }
- // Contains the parameters for DeleteDeliveryStream.
- type DeleteDeliveryStreamInput struct {
- _ struct{} `type:"structure"`
- // The name of the delivery stream.
- DeliveryStreamName *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s DeleteDeliveryStreamInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteDeliveryStreamInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DeleteDeliveryStreamInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DeleteDeliveryStreamInput"}
- if s.DeliveryStreamName == nil {
- invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
- }
- if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Contains the output of DeleteDeliveryStream.
- type DeleteDeliveryStreamOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s DeleteDeliveryStreamOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeleteDeliveryStreamOutput) GoString() string {
- return s.String()
- }
- // Contains information about a delivery stream.
- type DeliveryStreamDescription struct {
- _ struct{} `type:"structure"`
- // The date and time that the delivery stream was created.
- CreateTimestamp *time.Time `type:"timestamp" timestampFormat:"unix"`
- // The Amazon Resource Name (ARN) of the delivery stream.
- DeliveryStreamARN *string `type:"string" required:"true"`
- // The name of the delivery stream.
- DeliveryStreamName *string `min:"1" type:"string" required:"true"`
- // The status of the delivery stream.
- DeliveryStreamStatus *string `type:"string" required:"true" enum:"DeliveryStreamStatus"`
- // The destinations.
- Destinations []*DestinationDescription `type:"list" required:"true"`
- // Indicates whether there are more destinations available to list.
- HasMoreDestinations *bool `type:"boolean" required:"true"`
- // The date and time that the delivery stream was last updated.
- LastUpdateTimestamp *time.Time `type:"timestamp" timestampFormat:"unix"`
- // Used when calling the UpdateDestination operation. Each time the destination
- // is updated for the delivery stream, the VersionId is changed, and the current
- // VersionId is required when updating the destination. This is so that the
- // service knows it is applying the changes to the correct version of the delivery
- // stream.
- VersionId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s DeliveryStreamDescription) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DeliveryStreamDescription) GoString() string {
- return s.String()
- }
- // Contains the parameters for DescribeDeliveryStream.
- type DescribeDeliveryStreamInput struct {
- _ struct{} `type:"structure"`
- // The name of the delivery stream.
- DeliveryStreamName *string `min:"1" type:"string" required:"true"`
- // Specifies the destination ID to start returning the destination information.
- // Currently Firehose supports one destination per delivery stream.
- ExclusiveStartDestinationId *string `min:"1" type:"string"`
- // The limit on the number of destinations to return. Currently, you can have
- // one destination per delivery stream.
- Limit *int64 `min:"1" type:"integer"`
- }
- // String returns the string representation
- func (s DescribeDeliveryStreamInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DescribeDeliveryStreamInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *DescribeDeliveryStreamInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "DescribeDeliveryStreamInput"}
- if s.DeliveryStreamName == nil {
- invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
- }
- if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
- }
- if s.ExclusiveStartDestinationId != nil && len(*s.ExclusiveStartDestinationId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartDestinationId", 1))
- }
- if s.Limit != nil && *s.Limit < 1 {
- invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Contains the output of DescribeDeliveryStream.
- type DescribeDeliveryStreamOutput struct {
- _ struct{} `type:"structure"`
- // Information about the delivery stream.
- DeliveryStreamDescription *DeliveryStreamDescription `type:"structure" required:"true"`
- }
- // String returns the string representation
- func (s DescribeDeliveryStreamOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DescribeDeliveryStreamOutput) GoString() string {
- return s.String()
- }
- // Describes the destination for a delivery stream.
- type DestinationDescription struct {
- _ struct{} `type:"structure"`
- // The ID of the destination.
- DestinationId *string `min:"1" type:"string" required:"true"`
- // The destination in Amazon ES.
- ElasticsearchDestinationDescription *ElasticsearchDestinationDescription `type:"structure"`
- // The destination in Amazon Redshift.
- RedshiftDestinationDescription *RedshiftDestinationDescription `type:"structure"`
- // The Amazon S3 destination.
- S3DestinationDescription *S3DestinationDescription `type:"structure"`
- }
- // String returns the string representation
- func (s DestinationDescription) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s DestinationDescription) GoString() string {
- return s.String()
- }
- // Describes the buffering to perform before delivering data to the Amazon ES
- // destination.
- type ElasticsearchBufferingHints struct {
- _ struct{} `type:"structure"`
- // Buffer incoming data for the specified period of time, in seconds, before
- // delivering it to the destination. The default value is 300 (5 minutes).
- IntervalInSeconds *int64 `min:"60" type:"integer"`
- // Buffer incoming data to the specified size, in MBs, before delivering it
- // to the destination. The default value is 5.
- //
- // We recommend setting SizeInMBs to a value greater than the amount of data
- // you typically ingest into the delivery stream in 10 seconds. For example,
- // if you typically ingest data at 1 MB/sec, set SizeInMBs to be 10 MB or higher.
- SizeInMBs *int64 `min:"1" type:"integer"`
- }
- // String returns the string representation
- func (s ElasticsearchBufferingHints) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ElasticsearchBufferingHints) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ElasticsearchBufferingHints) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ElasticsearchBufferingHints"}
- if s.IntervalInSeconds != nil && *s.IntervalInSeconds < 60 {
- invalidParams.Add(request.NewErrParamMinValue("IntervalInSeconds", 60))
- }
- if s.SizeInMBs != nil && *s.SizeInMBs < 1 {
- invalidParams.Add(request.NewErrParamMinValue("SizeInMBs", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Describes the configuration of a destination in Amazon ES.
- type ElasticsearchDestinationConfiguration struct {
- _ struct{} `type:"structure"`
- // Buffering options. If no value is specified, ElasticsearchBufferingHints
- // object default values are used.
- BufferingHints *ElasticsearchBufferingHints `type:"structure"`
- // Describes CloudWatch logging options for your delivery stream.
- CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
- // The ARN of the Amazon ES domain. The IAM role must have permission for DescribeElasticsearchDomain,
- // DescribeElasticsearchDomains , and DescribeElasticsearchDomainConfig after
- // assuming RoleARN.
- DomainARN *string `min:"1" type:"string" required:"true"`
- // The Elasticsearch index name.
- IndexName *string `min:"1" type:"string" required:"true"`
- // The Elasticsearch index rotation period. Index rotation appends a timestamp
- // to the IndexName to facilitate expiration of old data. For more information,
- // see Index Rotation for Amazon Elasticsearch Service Destination (http://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation).
- // Default value is OneDay.
- IndexRotationPeriod *string `type:"string" enum:"ElasticsearchIndexRotationPeriod"`
- // Configures retry behavior in the event that Firehose is unable to deliver
- // documents to Amazon ES. Default value is 300 (5 minutes).
- RetryOptions *ElasticsearchRetryOptions `type:"structure"`
- // The ARN of the IAM role to be assumed by Firehose for calling the Amazon
- // ES Configuration API and for indexing documents. For more information, see
- // Amazon S3 Bucket Access (http://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3).
- RoleARN *string `min:"1" type:"string" required:"true"`
- // Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly,
- // Firehose writes any documents that could not be indexed to the configured
- // Amazon S3 destination, with elasticsearch-failed/ appended to the key prefix.
- // When set to AllDocuments, Firehose delivers all incoming records to Amazon
- // S3, and also writes failed documents with elasticsearch-failed/ appended
- // to the prefix. For more information, see Amazon S3 Backup for Amazon Elasticsearch
- // Service Destination (http://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-s3-backup).
- // Default value is FailedDocumentsOnly.
- S3BackupMode *string `type:"string" enum:"ElasticsearchS3BackupMode"`
- // Describes the configuration of a destination in Amazon S3.
- S3Configuration *S3DestinationConfiguration `type:"structure" required:"true"`
- // The Elasticsearch type name.
- TypeName *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s ElasticsearchDestinationConfiguration) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ElasticsearchDestinationConfiguration) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ElasticsearchDestinationConfiguration) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ElasticsearchDestinationConfiguration"}
- if s.DomainARN == nil {
- invalidParams.Add(request.NewErrParamRequired("DomainARN"))
- }
- if s.DomainARN != nil && len(*s.DomainARN) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("DomainARN", 1))
- }
- if s.IndexName == nil {
- invalidParams.Add(request.NewErrParamRequired("IndexName"))
- }
- if s.IndexName != nil && len(*s.IndexName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
- }
- if s.RoleARN == nil {
- invalidParams.Add(request.NewErrParamRequired("RoleARN"))
- }
- if s.RoleARN != nil && len(*s.RoleARN) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
- }
- if s.S3Configuration == nil {
- invalidParams.Add(request.NewErrParamRequired("S3Configuration"))
- }
- if s.TypeName == nil {
- invalidParams.Add(request.NewErrParamRequired("TypeName"))
- }
- if s.TypeName != nil && len(*s.TypeName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("TypeName", 1))
- }
- if s.BufferingHints != nil {
- if err := s.BufferingHints.Validate(); err != nil {
- invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
- }
- }
- if s.S3Configuration != nil {
- if err := s.S3Configuration.Validate(); err != nil {
- invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams))
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // The destination description in Amazon ES.
- type ElasticsearchDestinationDescription struct {
- _ struct{} `type:"structure"`
- // Buffering options.
- BufferingHints *ElasticsearchBufferingHints `type:"structure"`
- // CloudWatch logging options.
- CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
- // The ARN of the Amazon ES domain.
- DomainARN *string `min:"1" type:"string"`
- // The Elasticsearch index name.
- IndexName *string `min:"1" type:"string"`
- // The Elasticsearch index rotation period
- IndexRotationPeriod *string `type:"string" enum:"ElasticsearchIndexRotationPeriod"`
- // Elasticsearch retry options.
- RetryOptions *ElasticsearchRetryOptions `type:"structure"`
- // The ARN of the AWS credentials.
- RoleARN *string `min:"1" type:"string"`
- // Amazon S3 backup mode.
- S3BackupMode *string `type:"string" enum:"ElasticsearchS3BackupMode"`
- // Describes a destination in Amazon S3.
- S3DestinationDescription *S3DestinationDescription `type:"structure"`
- // The Elasticsearch type name.
- TypeName *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s ElasticsearchDestinationDescription) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ElasticsearchDestinationDescription) GoString() string {
- return s.String()
- }
- // Describes an update for a destination in Amazon ES.
- type ElasticsearchDestinationUpdate struct {
- _ struct{} `type:"structure"`
- // Buffering options. If no value is specified, ElasticsearchBufferingHints
- // object default values are used.
- BufferingHints *ElasticsearchBufferingHints `type:"structure"`
- // Describes CloudWatch logging options for your delivery stream.
- CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
- // The ARN of the Amazon ES domain. The IAM role must have permission for DescribeElasticsearchDomain,
- // DescribeElasticsearchDomains , and DescribeElasticsearchDomainConfig after
- // assuming RoleARN.
- DomainARN *string `min:"1" type:"string"`
- // The Elasticsearch index name.
- IndexName *string `min:"1" type:"string"`
- // The Elasticsearch index rotation period. Index rotation appends a timestamp
- // to the IndexName to facilitate the expiration of old data. For more information,
- // see Index Rotation for Amazon Elasticsearch Service Destination (http://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation).
- // Default value is OneDay.
- IndexRotationPeriod *string `type:"string" enum:"ElasticsearchIndexRotationPeriod"`
- // Configures retry behavior in the event that Firehose is unable to deliver
- // documents to Amazon ES. Default value is 300 (5 minutes).
- RetryOptions *ElasticsearchRetryOptions `type:"structure"`
- // The ARN of the IAM role to be assumed by Firehose for calling the Amazon
- // ES Configuration API and for indexing documents. For more information, see
- // Amazon S3 Bucket Access (http://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3).
- RoleARN *string `min:"1" type:"string"`
- // Describes an update for a destination in Amazon S3.
- S3Update *S3DestinationUpdate `type:"structure"`
- // The Elasticsearch type name.
- TypeName *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s ElasticsearchDestinationUpdate) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ElasticsearchDestinationUpdate) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ElasticsearchDestinationUpdate) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ElasticsearchDestinationUpdate"}
- if s.DomainARN != nil && len(*s.DomainARN) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("DomainARN", 1))
- }
- if s.IndexName != nil && len(*s.IndexName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
- }
- if s.RoleARN != nil && len(*s.RoleARN) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
- }
- if s.TypeName != nil && len(*s.TypeName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("TypeName", 1))
- }
- if s.BufferingHints != nil {
- if err := s.BufferingHints.Validate(); err != nil {
- invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
- }
- }
- if s.S3Update != nil {
- if err := s.S3Update.Validate(); err != nil {
- invalidParams.AddNested("S3Update", err.(request.ErrInvalidParams))
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Configures retry behavior in the event that Firehose is unable to deliver
- // documents to Amazon ES.
- type ElasticsearchRetryOptions struct {
- _ struct{} `type:"structure"`
- // After an initial failure to deliver to Amazon ES, the total amount of time
- // during which Firehose re-attempts delivery (including the first attempt).
- // After this time has elapsed, the failed documents are written to Amazon S3.
- // Default value is 300 seconds (5 minutes). A value of 0 (zero) results in
- // no retries.
- DurationInSeconds *int64 `type:"integer"`
- }
- // String returns the string representation
- func (s ElasticsearchRetryOptions) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ElasticsearchRetryOptions) GoString() string {
- return s.String()
- }
- // Describes the encryption for a destination in Amazon S3.
- type EncryptionConfiguration struct {
- _ struct{} `type:"structure"`
- // The encryption key.
- KMSEncryptionConfig *KMSEncryptionConfig `type:"structure"`
- // Specifically override existing encryption information to ensure no encryption
- // is used.
- NoEncryptionConfig *string `type:"string" enum:"NoEncryptionConfig"`
- }
- // String returns the string representation
- func (s EncryptionConfiguration) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s EncryptionConfiguration) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *EncryptionConfiguration) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "EncryptionConfiguration"}
- if s.KMSEncryptionConfig != nil {
- if err := s.KMSEncryptionConfig.Validate(); err != nil {
- invalidParams.AddNested("KMSEncryptionConfig", err.(request.ErrInvalidParams))
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Describes an encryption key for a destination in Amazon S3.
- type KMSEncryptionConfig struct {
- _ struct{} `type:"structure"`
- // The ARN of the encryption key. Must belong to the same region as the destination
- // Amazon S3 bucket.
- AWSKMSKeyARN *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s KMSEncryptionConfig) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s KMSEncryptionConfig) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *KMSEncryptionConfig) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "KMSEncryptionConfig"}
- if s.AWSKMSKeyARN == nil {
- invalidParams.Add(request.NewErrParamRequired("AWSKMSKeyARN"))
- }
- if s.AWSKMSKeyARN != nil && len(*s.AWSKMSKeyARN) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("AWSKMSKeyARN", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Contains the parameters for ListDeliveryStreams.
- type ListDeliveryStreamsInput struct {
- _ struct{} `type:"structure"`
- // The name of the delivery stream to start the list with.
- ExclusiveStartDeliveryStreamName *string `min:"1" type:"string"`
- // The maximum number of delivery streams to list.
- Limit *int64 `min:"1" type:"integer"`
- }
- // String returns the string representation
- func (s ListDeliveryStreamsInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListDeliveryStreamsInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *ListDeliveryStreamsInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ListDeliveryStreamsInput"}
- if s.ExclusiveStartDeliveryStreamName != nil && len(*s.ExclusiveStartDeliveryStreamName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartDeliveryStreamName", 1))
- }
- if s.Limit != nil && *s.Limit < 1 {
- invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Contains the output of ListDeliveryStreams.
- type ListDeliveryStreamsOutput struct {
- _ struct{} `type:"structure"`
- // The names of the delivery streams.
- DeliveryStreamNames []*string `type:"list" required:"true"`
- // Indicates whether there are more delivery streams available to list.
- HasMoreDeliveryStreams *bool `type:"boolean" required:"true"`
- }
- // String returns the string representation
- func (s ListDeliveryStreamsOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s ListDeliveryStreamsOutput) GoString() string {
- return s.String()
- }
- // Contains the parameters for PutRecordBatch.
- type PutRecordBatchInput struct {
- _ struct{} `type:"structure"`
- // The name of the delivery stream.
- DeliveryStreamName *string `min:"1" type:"string" required:"true"`
- // One or more records.
- Records []*Record `min:"1" type:"list" required:"true"`
- }
- // String returns the string representation
- func (s PutRecordBatchInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutRecordBatchInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *PutRecordBatchInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "PutRecordBatchInput"}
- if s.DeliveryStreamName == nil {
- invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
- }
- if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
- }
- if s.Records == nil {
- invalidParams.Add(request.NewErrParamRequired("Records"))
- }
- if s.Records != nil && len(s.Records) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Records", 1))
- }
- if s.Records != nil {
- for i, v := range s.Records {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Records", i), err.(request.ErrInvalidParams))
- }
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Contains the output of PutRecordBatch.
- type PutRecordBatchOutput struct {
- _ struct{} `type:"structure"`
- // The number of unsuccessfully written records.
- FailedPutCount *int64 `type:"integer" required:"true"`
- // The results for the individual records. The index of each element matches
- // the same index in which records were sent.
- RequestResponses []*PutRecordBatchResponseEntry `min:"1" type:"list" required:"true"`
- }
- // String returns the string representation
- func (s PutRecordBatchOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutRecordBatchOutput) GoString() string {
- return s.String()
- }
- // Contains the result for an individual record from a PutRecordBatch request.
- // If the record is successfully added to your delivery stream, it receives
- // a record ID. If the record fails to be added to your delivery stream, the
- // result includes an error code and an error message.
- type PutRecordBatchResponseEntry struct {
- _ struct{} `type:"structure"`
- // The error code for an individual record result.
- ErrorCode *string `type:"string"`
- // The error message for an individual record result.
- ErrorMessage *string `type:"string"`
- // The ID of the record.
- RecordId *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s PutRecordBatchResponseEntry) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutRecordBatchResponseEntry) GoString() string {
- return s.String()
- }
- // Contains the parameters for PutRecord.
- type PutRecordInput struct {
- _ struct{} `type:"structure"`
- // The name of the delivery stream.
- DeliveryStreamName *string `min:"1" type:"string" required:"true"`
- // The record.
- Record *Record `type:"structure" required:"true"`
- }
- // String returns the string representation
- func (s PutRecordInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutRecordInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *PutRecordInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "PutRecordInput"}
- if s.DeliveryStreamName == nil {
- invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
- }
- if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
- }
- if s.Record == nil {
- invalidParams.Add(request.NewErrParamRequired("Record"))
- }
- if s.Record != nil {
- if err := s.Record.Validate(); err != nil {
- invalidParams.AddNested("Record", err.(request.ErrInvalidParams))
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Contains the output of PutRecord.
- type PutRecordOutput struct {
- _ struct{} `type:"structure"`
- // The ID of the record.
- RecordId *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s PutRecordOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s PutRecordOutput) GoString() string {
- return s.String()
- }
- // The unit of data in a delivery stream.
- type Record struct {
- _ struct{} `type:"structure"`
- // The data blob, which is base64-encoded when the blob is serialized. The maximum
- // size of the data blob, before base64-encoding, is 1,000 KB.
- //
- // Data is automatically base64 encoded/decoded by the SDK.
- Data []byte `type:"blob" required:"true"`
- }
- // String returns the string representation
- func (s Record) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s Record) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *Record) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "Record"}
- if s.Data == nil {
- invalidParams.Add(request.NewErrParamRequired("Data"))
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Describes the configuration of a destination in Amazon Redshift.
- type RedshiftDestinationConfiguration struct {
- _ struct{} `type:"structure"`
- // Describes CloudWatch logging options for your delivery stream.
- CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
- // The database connection string.
- ClusterJDBCURL *string `min:"1" type:"string" required:"true"`
- // The COPY command.
- CopyCommand *CopyCommand `type:"structure" required:"true"`
- // The user password.
- Password *string `min:"6" type:"string" required:"true"`
- // Configures retry behavior in the event that Firehose is unable to deliver
- // documents to Amazon Redshift. Default value is 3600 (60 minutes).
- RetryOptions *RedshiftRetryOptions `type:"structure"`
- // The ARN of the AWS credentials.
- RoleARN *string `min:"1" type:"string" required:"true"`
- // The S3 configuration for the intermediate location from which Amazon Redshift
- // obtains data. Restrictions are described in the topic for CreateDeliveryStream.
- //
- // The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationConfiguration.S3Configuration
- // because the Amazon Redshift COPY operation that reads from the S3 bucket
- // doesn't support these compression formats.
- S3Configuration *S3DestinationConfiguration `type:"structure" required:"true"`
- // The name of the user.
- Username *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s RedshiftDestinationConfiguration) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s RedshiftDestinationConfiguration) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *RedshiftDestinationConfiguration) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "RedshiftDestinationConfiguration"}
- if s.ClusterJDBCURL == nil {
- invalidParams.Add(request.NewErrParamRequired("ClusterJDBCURL"))
- }
- if s.ClusterJDBCURL != nil && len(*s.ClusterJDBCURL) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("ClusterJDBCURL", 1))
- }
- if s.CopyCommand == nil {
- invalidParams.Add(request.NewErrParamRequired("CopyCommand"))
- }
- if s.Password == nil {
- invalidParams.Add(request.NewErrParamRequired("Password"))
- }
- if s.Password != nil && len(*s.Password) < 6 {
- invalidParams.Add(request.NewErrParamMinLen("Password", 6))
- }
- if s.RoleARN == nil {
- invalidParams.Add(request.NewErrParamRequired("RoleARN"))
- }
- if s.RoleARN != nil && len(*s.RoleARN) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
- }
- if s.S3Configuration == nil {
- invalidParams.Add(request.NewErrParamRequired("S3Configuration"))
- }
- if s.Username == nil {
- invalidParams.Add(request.NewErrParamRequired("Username"))
- }
- if s.Username != nil && len(*s.Username) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Username", 1))
- }
- if s.CopyCommand != nil {
- if err := s.CopyCommand.Validate(); err != nil {
- invalidParams.AddNested("CopyCommand", err.(request.ErrInvalidParams))
- }
- }
- if s.S3Configuration != nil {
- if err := s.S3Configuration.Validate(); err != nil {
- invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams))
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Describes a destination in Amazon Redshift.
- type RedshiftDestinationDescription struct {
- _ struct{} `type:"structure"`
- // Describes CloudWatch logging options for your delivery stream.
- CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
- // The database connection string.
- ClusterJDBCURL *string `min:"1" type:"string" required:"true"`
- // The COPY command.
- CopyCommand *CopyCommand `type:"structure" required:"true"`
- // Configures retry behavior in the event that Firehose is unable to deliver
- // documents to Amazon Redshift. Default value is 3600 (60 minutes).
- RetryOptions *RedshiftRetryOptions `type:"structure"`
- // The ARN of the AWS credentials.
- RoleARN *string `min:"1" type:"string" required:"true"`
- // The Amazon S3 destination.
- S3DestinationDescription *S3DestinationDescription `type:"structure" required:"true"`
- // The name of the user.
- Username *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s RedshiftDestinationDescription) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s RedshiftDestinationDescription) GoString() string {
- return s.String()
- }
- // Describes an update for a destination in Amazon Redshift.
- type RedshiftDestinationUpdate struct {
- _ struct{} `type:"structure"`
- // Describes CloudWatch logging options for your delivery stream.
- CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
- // The database connection string.
- ClusterJDBCURL *string `min:"1" type:"string"`
- // The COPY command.
- CopyCommand *CopyCommand `type:"structure"`
- // The user password.
- Password *string `min:"6" type:"string"`
- // Configures retry behavior in the event that Firehose is unable to deliver
- // documents to Amazon Redshift. Default value is 3600 (60 minutes).
- RetryOptions *RedshiftRetryOptions `type:"structure"`
- // The ARN of the AWS credentials.
- RoleARN *string `min:"1" type:"string"`
- // The Amazon S3 destination.
- //
- // The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationUpdate.S3Update
- // because the Amazon Redshift COPY operation that reads from the S3 bucket
- // doesn't support these compression formats.
- S3Update *S3DestinationUpdate `type:"structure"`
- // The name of the user.
- Username *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s RedshiftDestinationUpdate) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s RedshiftDestinationUpdate) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *RedshiftDestinationUpdate) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "RedshiftDestinationUpdate"}
- if s.ClusterJDBCURL != nil && len(*s.ClusterJDBCURL) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("ClusterJDBCURL", 1))
- }
- if s.Password != nil && len(*s.Password) < 6 {
- invalidParams.Add(request.NewErrParamMinLen("Password", 6))
- }
- if s.RoleARN != nil && len(*s.RoleARN) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
- }
- if s.Username != nil && len(*s.Username) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("Username", 1))
- }
- if s.CopyCommand != nil {
- if err := s.CopyCommand.Validate(); err != nil {
- invalidParams.AddNested("CopyCommand", err.(request.ErrInvalidParams))
- }
- }
- if s.S3Update != nil {
- if err := s.S3Update.Validate(); err != nil {
- invalidParams.AddNested("S3Update", err.(request.ErrInvalidParams))
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Configures retry behavior in the event that Firehose is unable to deliver
- // documents to Amazon Redshift.
- type RedshiftRetryOptions struct {
- _ struct{} `type:"structure"`
- // The length of time during which Firehose retries delivery after a failure,
- // starting from the initial request and including the first attempt. The default
- // value is 3600 seconds (60 minutes). Firehose does not retry if the value
- // of DurationInSeconds is 0 (zero) or if the first delivery attempt takes longer
- // than the current value.
- DurationInSeconds *int64 `type:"integer"`
- }
- // String returns the string representation
- func (s RedshiftRetryOptions) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s RedshiftRetryOptions) GoString() string {
- return s.String()
- }
- // Describes the configuration of a destination in Amazon S3.
- type S3DestinationConfiguration struct {
- _ struct{} `type:"structure"`
- // The ARN of the S3 bucket.
- BucketARN *string `min:"1" type:"string" required:"true"`
- // The buffering option. If no value is specified, BufferingHints object default
- // values are used.
- BufferingHints *BufferingHints `type:"structure"`
- // Describes CloudWatch logging options for your delivery stream.
- CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
- // The compression format. If no value is specified, the default is UNCOMPRESSED.
- //
- // The compression formats SNAPPY or ZIP cannot be specified for Amazon Redshift
- // destinations because they are not supported by the Amazon Redshift COPY operation
- // that reads from the S3 bucket.
- CompressionFormat *string `type:"string" enum:"CompressionFormat"`
- // The encryption configuration. If no value is specified, the default is no
- // encryption.
- EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
- // The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
- // S3 files. You can specify an extra prefix to be added in front of the time
- // format prefix. Note that if the prefix ends with a slash, it appears as a
- // folder in the S3 bucket. For more information, see Amazon S3 Object Name
- // Format (http://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html)
- // in the Amazon Kinesis Firehose Developer Guide (http://docs.aws.amazon.com/firehose/latest/dev/).
- Prefix *string `type:"string"`
- // The ARN of the AWS credentials.
- RoleARN *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s S3DestinationConfiguration) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s S3DestinationConfiguration) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *S3DestinationConfiguration) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "S3DestinationConfiguration"}
- if s.BucketARN == nil {
- invalidParams.Add(request.NewErrParamRequired("BucketARN"))
- }
- if s.BucketARN != nil && len(*s.BucketARN) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("BucketARN", 1))
- }
- if s.RoleARN == nil {
- invalidParams.Add(request.NewErrParamRequired("RoleARN"))
- }
- if s.RoleARN != nil && len(*s.RoleARN) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
- }
- if s.BufferingHints != nil {
- if err := s.BufferingHints.Validate(); err != nil {
- invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
- }
- }
- if s.EncryptionConfiguration != nil {
- if err := s.EncryptionConfiguration.Validate(); err != nil {
- invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Describes a destination in Amazon S3.
- type S3DestinationDescription struct {
- _ struct{} `type:"structure"`
- // The ARN of the S3 bucket.
- BucketARN *string `min:"1" type:"string" required:"true"`
- // The buffering option. If no value is specified, BufferingHints object default
- // values are used.
- BufferingHints *BufferingHints `type:"structure" required:"true"`
- // Describes CloudWatch logging options for your delivery stream.
- CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
- // The compression format. If no value is specified, the default is NOCOMPRESSION.
- CompressionFormat *string `type:"string" required:"true" enum:"CompressionFormat"`
- // The encryption configuration. If no value is specified, the default is no
- // encryption.
- EncryptionConfiguration *EncryptionConfiguration `type:"structure" required:"true"`
- // The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
- // S3 files. You can specify an extra prefix to be added in front of the time
- // format prefix. Note that if the prefix ends with a slash, it appears as a
- // folder in the S3 bucket. For more information, see Amazon S3 Object Name
- // Format (http://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html)
- // in the Amazon Kinesis Firehose Developer Guide (http://docs.aws.amazon.com/firehose/latest/dev/).
- Prefix *string `type:"string"`
- // The ARN of the AWS credentials.
- RoleARN *string `min:"1" type:"string" required:"true"`
- }
- // String returns the string representation
- func (s S3DestinationDescription) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s S3DestinationDescription) GoString() string {
- return s.String()
- }
- // Describes an update for a destination in Amazon S3.
- type S3DestinationUpdate struct {
- _ struct{} `type:"structure"`
- // The ARN of the S3 bucket.
- BucketARN *string `min:"1" type:"string"`
- // The buffering option. If no value is specified, BufferingHints object default
- // values are used.
- BufferingHints *BufferingHints `type:"structure"`
- // Describes CloudWatch logging options for your delivery stream.
- CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
- // The compression format. If no value is specified, the default is NOCOMPRESSION.
- //
- // The compression formats SNAPPY or ZIP cannot be specified for Amazon Redshift
- // destinations because they are not supported by the Amazon Redshift COPY operation
- // that reads from the S3 bucket.
- CompressionFormat *string `type:"string" enum:"CompressionFormat"`
- // The encryption configuration. If no value is specified, the default is no
- // encryption.
- EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
- // The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
- // S3 files. You can specify an extra prefix to be added in front of the time
- // format prefix. Note that if the prefix ends with a slash, it appears as a
- // folder in the S3 bucket. For more information, see Amazon S3 Object Name
- // Format (http://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html)
- // in the Amazon Kinesis Firehose Developer Guide (http://docs.aws.amazon.com/firehose/latest/dev/).
- Prefix *string `type:"string"`
- // The ARN of the AWS credentials.
- RoleARN *string `min:"1" type:"string"`
- }
- // String returns the string representation
- func (s S3DestinationUpdate) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s S3DestinationUpdate) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *S3DestinationUpdate) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "S3DestinationUpdate"}
- if s.BucketARN != nil && len(*s.BucketARN) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("BucketARN", 1))
- }
- if s.RoleARN != nil && len(*s.RoleARN) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
- }
- if s.BufferingHints != nil {
- if err := s.BufferingHints.Validate(); err != nil {
- invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
- }
- }
- if s.EncryptionConfiguration != nil {
- if err := s.EncryptionConfiguration.Validate(); err != nil {
- invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Contains the parameters for UpdateDestination.
- type UpdateDestinationInput struct {
- _ struct{} `type:"structure"`
- // Obtain this value from the VersionId result of the DeliveryStreamDescription
- // operation. This value is required, and helps the service to perform conditional
- // operations. For example, if there is a interleaving update and this value
- // is null, then the update destination fails. After the update is successful,
- // the VersionId value is updated. The service then performs a merge of the
- // old configuration with the new configuration.
- CurrentDeliveryStreamVersionId *string `min:"1" type:"string" required:"true"`
- // The name of the delivery stream.
- DeliveryStreamName *string `min:"1" type:"string" required:"true"`
- // The ID of the destination.
- DestinationId *string `min:"1" type:"string" required:"true"`
- // Describes an update for a destination in Amazon ES.
- ElasticsearchDestinationUpdate *ElasticsearchDestinationUpdate `type:"structure"`
- // Describes an update for a destination in Amazon Redshift.
- RedshiftDestinationUpdate *RedshiftDestinationUpdate `type:"structure"`
- // Describes an update for a destination in Amazon S3.
- S3DestinationUpdate *S3DestinationUpdate `type:"structure"`
- }
- // String returns the string representation
- func (s UpdateDestinationInput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateDestinationInput) GoString() string {
- return s.String()
- }
- // Validate inspects the fields of the type to determine if they are valid.
- func (s *UpdateDestinationInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "UpdateDestinationInput"}
- if s.CurrentDeliveryStreamVersionId == nil {
- invalidParams.Add(request.NewErrParamRequired("CurrentDeliveryStreamVersionId"))
- }
- if s.CurrentDeliveryStreamVersionId != nil && len(*s.CurrentDeliveryStreamVersionId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("CurrentDeliveryStreamVersionId", 1))
- }
- if s.DeliveryStreamName == nil {
- invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
- }
- if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
- }
- if s.DestinationId == nil {
- invalidParams.Add(request.NewErrParamRequired("DestinationId"))
- }
- if s.DestinationId != nil && len(*s.DestinationId) < 1 {
- invalidParams.Add(request.NewErrParamMinLen("DestinationId", 1))
- }
- if s.ElasticsearchDestinationUpdate != nil {
- if err := s.ElasticsearchDestinationUpdate.Validate(); err != nil {
- invalidParams.AddNested("ElasticsearchDestinationUpdate", err.(request.ErrInvalidParams))
- }
- }
- if s.RedshiftDestinationUpdate != nil {
- if err := s.RedshiftDestinationUpdate.Validate(); err != nil {
- invalidParams.AddNested("RedshiftDestinationUpdate", err.(request.ErrInvalidParams))
- }
- }
- if s.S3DestinationUpdate != nil {
- if err := s.S3DestinationUpdate.Validate(); err != nil {
- invalidParams.AddNested("S3DestinationUpdate", err.(request.ErrInvalidParams))
- }
- }
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
- }
- // Contains the output of UpdateDestination.
- type UpdateDestinationOutput struct {
- _ struct{} `type:"structure"`
- }
- // String returns the string representation
- func (s UpdateDestinationOutput) String() string {
- return awsutil.Prettify(s)
- }
- // GoString returns the string representation
- func (s UpdateDestinationOutput) GoString() string {
- return s.String()
- }
- const (
- // @enum CompressionFormat
- CompressionFormatUncompressed = "UNCOMPRESSED"
- // @enum CompressionFormat
- CompressionFormatGzip = "GZIP"
- // @enum CompressionFormat
- CompressionFormatZip = "ZIP"
- // @enum CompressionFormat
- CompressionFormatSnappy = "Snappy"
- )
- const (
- // @enum DeliveryStreamStatus
- DeliveryStreamStatusCreating = "CREATING"
- // @enum DeliveryStreamStatus
- DeliveryStreamStatusDeleting = "DELETING"
- // @enum DeliveryStreamStatus
- DeliveryStreamStatusActive = "ACTIVE"
- )
- const (
- // @enum ElasticsearchIndexRotationPeriod
- ElasticsearchIndexRotationPeriodNoRotation = "NoRotation"
- // @enum ElasticsearchIndexRotationPeriod
- ElasticsearchIndexRotationPeriodOneHour = "OneHour"
- // @enum ElasticsearchIndexRotationPeriod
- ElasticsearchIndexRotationPeriodOneDay = "OneDay"
- // @enum ElasticsearchIndexRotationPeriod
- ElasticsearchIndexRotationPeriodOneWeek = "OneWeek"
- // @enum ElasticsearchIndexRotationPeriod
- ElasticsearchIndexRotationPeriodOneMonth = "OneMonth"
- )
- const (
- // @enum ElasticsearchS3BackupMode
- ElasticsearchS3BackupModeFailedDocumentsOnly = "FailedDocumentsOnly"
- // @enum ElasticsearchS3BackupMode
- ElasticsearchS3BackupModeAllDocuments = "AllDocuments"
- )
- const (
- // @enum NoEncryptionConfig
- NoEncryptionConfigNoEncryption = "NoEncryption"
- )
|