Tizen_4.0 base
[platform/upstream/docker-engine.git] / vendor / github.com / aws / aws-sdk-go / service / cloudwatchlogs / api.go
1 // THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
2
3 // Package cloudwatchlogs provides a client for Amazon CloudWatch Logs.
4 package cloudwatchlogs
5
6 import (
7         "fmt"
8
9         "github.com/aws/aws-sdk-go/aws/awsutil"
10         "github.com/aws/aws-sdk-go/aws/request"
11         "github.com/aws/aws-sdk-go/private/protocol"
12         "github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
13 )
14
15 const opCancelExportTask = "CancelExportTask"
16
17 // CancelExportTaskRequest generates a "aws/request.Request" representing the
18 // client's request for the CancelExportTask operation. The "output" return
19 // value can be used to capture response data after the request's "Send" method
20 // is called.
21 //
22 // See CancelExportTask for usage and error information.
23 //
24 // Creating a request object using this method should be used when you want to inject
25 // custom logic into the request's lifecycle using a custom handler, or if you want to
26 // access properties on the request object before or after sending the request. If
27 // you just want the service response, call the CancelExportTask method directly
28 // instead.
29 //
30 // Note: You must call the "Send" method on the returned request object in order
31 // to execute the request.
32 //
33 //    // Example sending a request using the CancelExportTaskRequest method.
34 //    req, resp := client.CancelExportTaskRequest(params)
35 //
36 //    err := req.Send()
37 //    if err == nil { // resp is now filled
38 //        fmt.Println(resp)
39 //    }
40 //
41 func (c *CloudWatchLogs) CancelExportTaskRequest(input *CancelExportTaskInput) (req *request.Request, output *CancelExportTaskOutput) {
42         op := &request.Operation{
43                 Name:       opCancelExportTask,
44                 HTTPMethod: "POST",
45                 HTTPPath:   "/",
46         }
47
48         if input == nil {
49                 input = &CancelExportTaskInput{}
50         }
51
52         req = c.newRequest(op, input, output)
53         req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
54         req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
55         output = &CancelExportTaskOutput{}
56         req.Data = output
57         return
58 }
59
60 // CancelExportTask API operation for Amazon CloudWatch Logs.
61 //
62 // Cancels an export task if it is in PENDING or RUNNING state.
63 //
64 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
65 // with awserr.Error's Code and Message methods to get detailed information about
66 // the error.
67 //
68 // See the AWS API reference guide for Amazon CloudWatch Logs's
69 // API operation CancelExportTask for usage and error information.
70 //
71 // Returned Error Codes:
72 //   * InvalidParameterException
73 //   Returned if a parameter of the request is incorrectly specified.
74 //
75 //   * ResourceNotFoundException
76 //   Returned if the specified resource does not exist.
77 //
78 //   * InvalidOperationException
79 //   Returned if the operation is not valid on the specified resource
80 //
81 //   * ServiceUnavailableException
82 //   Returned if the service cannot complete the request.
83 //
84 func (c *CloudWatchLogs) CancelExportTask(input *CancelExportTaskInput) (*CancelExportTaskOutput, error) {
85         req, out := c.CancelExportTaskRequest(input)
86         err := req.Send()
87         return out, err
88 }
89
90 const opCreateExportTask = "CreateExportTask"
91
92 // CreateExportTaskRequest generates a "aws/request.Request" representing the
93 // client's request for the CreateExportTask operation. The "output" return
94 // value can be used to capture response data after the request's "Send" method
95 // is called.
96 //
97 // See CreateExportTask for usage and error information.
98 //
99 // Creating a request object using this method should be used when you want to inject
100 // custom logic into the request's lifecycle using a custom handler, or if you want to
101 // access properties on the request object before or after sending the request. If
102 // you just want the service response, call the CreateExportTask method directly
103 // instead.
104 //
105 // Note: You must call the "Send" method on the returned request object in order
106 // to execute the request.
107 //
108 //    // Example sending a request using the CreateExportTaskRequest method.
109 //    req, resp := client.CreateExportTaskRequest(params)
110 //
111 //    err := req.Send()
112 //    if err == nil { // resp is now filled
113 //        fmt.Println(resp)
114 //    }
115 //
116 func (c *CloudWatchLogs) CreateExportTaskRequest(input *CreateExportTaskInput) (req *request.Request, output *CreateExportTaskOutput) {
117         op := &request.Operation{
118                 Name:       opCreateExportTask,
119                 HTTPMethod: "POST",
120                 HTTPPath:   "/",
121         }
122
123         if input == nil {
124                 input = &CreateExportTaskInput{}
125         }
126
127         req = c.newRequest(op, input, output)
128         output = &CreateExportTaskOutput{}
129         req.Data = output
130         return
131 }
132
133 // CreateExportTask API operation for Amazon CloudWatch Logs.
134 //
135 // Creates an ExportTask which allows you to efficiently export data from a
136 // Log Group to your Amazon S3 bucket.
137 //
138 // This is an asynchronous call. If all the required information is provided,
139 // this API will initiate an export task and respond with the task Id. Once
140 // started, DescribeExportTasks can be used to get the status of an export task.
141 // You can only have one active (RUNNING or PENDING) export task at a time,
142 // per account.
143 //
144 // You can export logs from multiple log groups or multiple time ranges to the
145 // same Amazon S3 bucket. To separate out log data for each export task, you
146 // can specify a prefix that will be used as the Amazon S3 key prefix for all
147 // exported objects.
148 //
149 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
150 // with awserr.Error's Code and Message methods to get detailed information about
151 // the error.
152 //
153 // See the AWS API reference guide for Amazon CloudWatch Logs's
154 // API operation CreateExportTask for usage and error information.
155 //
156 // Returned Error Codes:
157 //   * InvalidParameterException
158 //   Returned if a parameter of the request is incorrectly specified.
159 //
160 //   * LimitExceededException
161 //   Returned if you have reached the maximum number of resources that can be
162 //   created.
163 //
164 //   * OperationAbortedException
165 //   Returned if multiple requests to update the same resource were in conflict.
166 //
167 //   * ServiceUnavailableException
168 //   Returned if the service cannot complete the request.
169 //
170 //   * ResourceNotFoundException
171 //   Returned if the specified resource does not exist.
172 //
173 //   * ResourceAlreadyExistsException
174 //   Returned if the specified resource already exists.
175 //
176 func (c *CloudWatchLogs) CreateExportTask(input *CreateExportTaskInput) (*CreateExportTaskOutput, error) {
177         req, out := c.CreateExportTaskRequest(input)
178         err := req.Send()
179         return out, err
180 }
181
182 const opCreateLogGroup = "CreateLogGroup"
183
184 // CreateLogGroupRequest generates a "aws/request.Request" representing the
185 // client's request for the CreateLogGroup operation. The "output" return
186 // value can be used to capture response data after the request's "Send" method
187 // is called.
188 //
189 // See CreateLogGroup for usage and error information.
190 //
191 // Creating a request object using this method should be used when you want to inject
192 // custom logic into the request's lifecycle using a custom handler, or if you want to
193 // access properties on the request object before or after sending the request. If
194 // you just want the service response, call the CreateLogGroup method directly
195 // instead.
196 //
197 // Note: You must call the "Send" method on the returned request object in order
198 // to execute the request.
199 //
200 //    // Example sending a request using the CreateLogGroupRequest method.
201 //    req, resp := client.CreateLogGroupRequest(params)
202 //
203 //    err := req.Send()
204 //    if err == nil { // resp is now filled
205 //        fmt.Println(resp)
206 //    }
207 //
208 func (c *CloudWatchLogs) CreateLogGroupRequest(input *CreateLogGroupInput) (req *request.Request, output *CreateLogGroupOutput) {
209         op := &request.Operation{
210                 Name:       opCreateLogGroup,
211                 HTTPMethod: "POST",
212                 HTTPPath:   "/",
213         }
214
215         if input == nil {
216                 input = &CreateLogGroupInput{}
217         }
218
219         req = c.newRequest(op, input, output)
220         req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
221         req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
222         output = &CreateLogGroupOutput{}
223         req.Data = output
224         return
225 }
226
227 // CreateLogGroup API operation for Amazon CloudWatch Logs.
228 //
229 // Creates a new log group with the specified name. The name of the log group
230 // must be unique within a region for an AWS account. You can create up to 500
231 // log groups per account.
232 //
233 // You must use the following guidelines when naming a log group:
234 //
235 //    * Log group names can be between 1 and 512 characters long.
236 //
237 //    * Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen),
238 //    '/' (forward slash), and '.' (period).
239 //
240 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
241 // with awserr.Error's Code and Message methods to get detailed information about
242 // the error.
243 //
244 // See the AWS API reference guide for Amazon CloudWatch Logs's
245 // API operation CreateLogGroup for usage and error information.
246 //
247 // Returned Error Codes:
248 //   * InvalidParameterException
249 //   Returned if a parameter of the request is incorrectly specified.
250 //
251 //   * ResourceAlreadyExistsException
252 //   Returned if the specified resource already exists.
253 //
254 //   * LimitExceededException
255 //   Returned if you have reached the maximum number of resources that can be
256 //   created.
257 //
258 //   * OperationAbortedException
259 //   Returned if multiple requests to update the same resource were in conflict.
260 //
261 //   * ServiceUnavailableException
262 //   Returned if the service cannot complete the request.
263 //
264 func (c *CloudWatchLogs) CreateLogGroup(input *CreateLogGroupInput) (*CreateLogGroupOutput, error) {
265         req, out := c.CreateLogGroupRequest(input)
266         err := req.Send()
267         return out, err
268 }
269
270 const opCreateLogStream = "CreateLogStream"
271
272 // CreateLogStreamRequest generates a "aws/request.Request" representing the
273 // client's request for the CreateLogStream operation. The "output" return
274 // value can be used to capture response data after the request's "Send" method
275 // is called.
276 //
277 // See CreateLogStream for usage and error information.
278 //
279 // Creating a request object using this method should be used when you want to inject
280 // custom logic into the request's lifecycle using a custom handler, or if you want to
281 // access properties on the request object before or after sending the request. If
282 // you just want the service response, call the CreateLogStream method directly
283 // instead.
284 //
285 // Note: You must call the "Send" method on the returned request object in order
286 // to execute the request.
287 //
288 //    // Example sending a request using the CreateLogStreamRequest method.
289 //    req, resp := client.CreateLogStreamRequest(params)
290 //
291 //    err := req.Send()
292 //    if err == nil { // resp is now filled
293 //        fmt.Println(resp)
294 //    }
295 //
296 func (c *CloudWatchLogs) CreateLogStreamRequest(input *CreateLogStreamInput) (req *request.Request, output *CreateLogStreamOutput) {
297         op := &request.Operation{
298                 Name:       opCreateLogStream,
299                 HTTPMethod: "POST",
300                 HTTPPath:   "/",
301         }
302
303         if input == nil {
304                 input = &CreateLogStreamInput{}
305         }
306
307         req = c.newRequest(op, input, output)
308         req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
309         req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
310         output = &CreateLogStreamOutput{}
311         req.Data = output
312         return
313 }
314
315 // CreateLogStream API operation for Amazon CloudWatch Logs.
316 //
317 // Creates a new log stream in the specified log group. The name of the log
318 // stream must be unique within the log group. There is no limit on the number
319 // of log streams that can exist in a log group.
320 //
321 // You must use the following guidelines when naming a log stream:
322 //
323 //    * Log stream names can be between 1 and 512 characters long.
324 //
325 //    * The ':' colon character is not allowed.
326 //
327 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
328 // with awserr.Error's Code and Message methods to get detailed information about
329 // the error.
330 //
331 // See the AWS API reference guide for Amazon CloudWatch Logs's
332 // API operation CreateLogStream for usage and error information.
333 //
334 // Returned Error Codes:
335 //   * InvalidParameterException
336 //   Returned if a parameter of the request is incorrectly specified.
337 //
338 //   * ResourceAlreadyExistsException
339 //   Returned if the specified resource already exists.
340 //
341 //   * ResourceNotFoundException
342 //   Returned if the specified resource does not exist.
343 //
344 //   * ServiceUnavailableException
345 //   Returned if the service cannot complete the request.
346 //
347 func (c *CloudWatchLogs) CreateLogStream(input *CreateLogStreamInput) (*CreateLogStreamOutput, error) {
348         req, out := c.CreateLogStreamRequest(input)
349         err := req.Send()
350         return out, err
351 }
352
353 const opDeleteDestination = "DeleteDestination"
354
355 // DeleteDestinationRequest generates a "aws/request.Request" representing the
356 // client's request for the DeleteDestination operation. The "output" return
357 // value can be used to capture response data after the request's "Send" method
358 // is called.
359 //
360 // See DeleteDestination for usage and error information.
361 //
362 // Creating a request object using this method should be used when you want to inject
363 // custom logic into the request's lifecycle using a custom handler, or if you want to
364 // access properties on the request object before or after sending the request. If
365 // you just want the service response, call the DeleteDestination method directly
366 // instead.
367 //
368 // Note: You must call the "Send" method on the returned request object in order
369 // to execute the request.
370 //
371 //    // Example sending a request using the DeleteDestinationRequest method.
372 //    req, resp := client.DeleteDestinationRequest(params)
373 //
374 //    err := req.Send()
375 //    if err == nil { // resp is now filled
376 //        fmt.Println(resp)
377 //    }
378 //
379 func (c *CloudWatchLogs) DeleteDestinationRequest(input *DeleteDestinationInput) (req *request.Request, output *DeleteDestinationOutput) {
380         op := &request.Operation{
381                 Name:       opDeleteDestination,
382                 HTTPMethod: "POST",
383                 HTTPPath:   "/",
384         }
385
386         if input == nil {
387                 input = &DeleteDestinationInput{}
388         }
389
390         req = c.newRequest(op, input, output)
391         req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
392         req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
393         output = &DeleteDestinationOutput{}
394         req.Data = output
395         return
396 }
397
398 // DeleteDestination API operation for Amazon CloudWatch Logs.
399 //
400 // Deletes the destination with the specified name and eventually disables all
401 // the subscription filters that publish to it. This will not delete the physical
402 // resource encapsulated by the destination.
403 //
404 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
405 // with awserr.Error's Code and Message methods to get detailed information about
406 // the error.
407 //
408 // See the AWS API reference guide for Amazon CloudWatch Logs's
409 // API operation DeleteDestination for usage and error information.
410 //
411 // Returned Error Codes:
412 //   * InvalidParameterException
413 //   Returned if a parameter of the request is incorrectly specified.
414 //
415 //   * ResourceNotFoundException
416 //   Returned if the specified resource does not exist.
417 //
418 //   * OperationAbortedException
419 //   Returned if multiple requests to update the same resource were in conflict.
420 //
421 //   * ServiceUnavailableException
422 //   Returned if the service cannot complete the request.
423 //
424 func (c *CloudWatchLogs) DeleteDestination(input *DeleteDestinationInput) (*DeleteDestinationOutput, error) {
425         req, out := c.DeleteDestinationRequest(input)
426         err := req.Send()
427         return out, err
428 }
429
430 const opDeleteLogGroup = "DeleteLogGroup"
431
432 // DeleteLogGroupRequest generates a "aws/request.Request" representing the
433 // client's request for the DeleteLogGroup operation. The "output" return
434 // value can be used to capture response data after the request's "Send" method
435 // is called.
436 //
437 // See DeleteLogGroup for usage and error information.
438 //
439 // Creating a request object using this method should be used when you want to inject
440 // custom logic into the request's lifecycle using a custom handler, or if you want to
441 // access properties on the request object before or after sending the request. If
442 // you just want the service response, call the DeleteLogGroup method directly
443 // instead.
444 //
445 // Note: You must call the "Send" method on the returned request object in order
446 // to execute the request.
447 //
448 //    // Example sending a request using the DeleteLogGroupRequest method.
449 //    req, resp := client.DeleteLogGroupRequest(params)
450 //
451 //    err := req.Send()
452 //    if err == nil { // resp is now filled
453 //        fmt.Println(resp)
454 //    }
455 //
456 func (c *CloudWatchLogs) DeleteLogGroupRequest(input *DeleteLogGroupInput) (req *request.Request, output *DeleteLogGroupOutput) {
457         op := &request.Operation{
458                 Name:       opDeleteLogGroup,
459                 HTTPMethod: "POST",
460                 HTTPPath:   "/",
461         }
462
463         if input == nil {
464                 input = &DeleteLogGroupInput{}
465         }
466
467         req = c.newRequest(op, input, output)
468         req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
469         req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
470         output = &DeleteLogGroupOutput{}
471         req.Data = output
472         return
473 }
474
475 // DeleteLogGroup API operation for Amazon CloudWatch Logs.
476 //
477 // Deletes the log group with the specified name and permanently deletes all
478 // the archived log events associated with it.
479 //
480 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
481 // with awserr.Error's Code and Message methods to get detailed information about
482 // the error.
483 //
484 // See the AWS API reference guide for Amazon CloudWatch Logs's
485 // API operation DeleteLogGroup for usage and error information.
486 //
487 // Returned Error Codes:
488 //   * InvalidParameterException
489 //   Returned if a parameter of the request is incorrectly specified.
490 //
491 //   * ResourceNotFoundException
492 //   Returned if the specified resource does not exist.
493 //
494 //   * OperationAbortedException
495 //   Returned if multiple requests to update the same resource were in conflict.
496 //
497 //   * ServiceUnavailableException
498 //   Returned if the service cannot complete the request.
499 //
500 func (c *CloudWatchLogs) DeleteLogGroup(input *DeleteLogGroupInput) (*DeleteLogGroupOutput, error) {
501         req, out := c.DeleteLogGroupRequest(input)
502         err := req.Send()
503         return out, err
504 }
505
506 const opDeleteLogStream = "DeleteLogStream"
507
508 // DeleteLogStreamRequest generates a "aws/request.Request" representing the
509 // client's request for the DeleteLogStream operation. The "output" return
510 // value can be used to capture response data after the request's "Send" method
511 // is called.
512 //
513 // See DeleteLogStream for usage and error information.
514 //
515 // Creating a request object using this method should be used when you want to inject
516 // custom logic into the request's lifecycle using a custom handler, or if you want to
517 // access properties on the request object before or after sending the request. If
518 // you just want the service response, call the DeleteLogStream method directly
519 // instead.
520 //
521 // Note: You must call the "Send" method on the returned request object in order
522 // to execute the request.
523 //
524 //    // Example sending a request using the DeleteLogStreamRequest method.
525 //    req, resp := client.DeleteLogStreamRequest(params)
526 //
527 //    err := req.Send()
528 //    if err == nil { // resp is now filled
529 //        fmt.Println(resp)
530 //    }
531 //
532 func (c *CloudWatchLogs) DeleteLogStreamRequest(input *DeleteLogStreamInput) (req *request.Request, output *DeleteLogStreamOutput) {
533         op := &request.Operation{
534                 Name:       opDeleteLogStream,
535                 HTTPMethod: "POST",
536                 HTTPPath:   "/",
537         }
538
539         if input == nil {
540                 input = &DeleteLogStreamInput{}
541         }
542
543         req = c.newRequest(op, input, output)
544         req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
545         req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
546         output = &DeleteLogStreamOutput{}
547         req.Data = output
548         return
549 }
550
551 // DeleteLogStream API operation for Amazon CloudWatch Logs.
552 //
553 // Deletes a log stream and permanently deletes all the archived log events
554 // associated with it.
555 //
556 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
557 // with awserr.Error's Code and Message methods to get detailed information about
558 // the error.
559 //
560 // See the AWS API reference guide for Amazon CloudWatch Logs's
561 // API operation DeleteLogStream for usage and error information.
562 //
563 // Returned Error Codes:
564 //   * InvalidParameterException
565 //   Returned if a parameter of the request is incorrectly specified.
566 //
567 //   * ResourceNotFoundException
568 //   Returned if the specified resource does not exist.
569 //
570 //   * OperationAbortedException
571 //   Returned if multiple requests to update the same resource were in conflict.
572 //
573 //   * ServiceUnavailableException
574 //   Returned if the service cannot complete the request.
575 //
576 func (c *CloudWatchLogs) DeleteLogStream(input *DeleteLogStreamInput) (*DeleteLogStreamOutput, error) {
577         req, out := c.DeleteLogStreamRequest(input)
578         err := req.Send()
579         return out, err
580 }
581
582 const opDeleteMetricFilter = "DeleteMetricFilter"
583
584 // DeleteMetricFilterRequest generates a "aws/request.Request" representing the
585 // client's request for the DeleteMetricFilter operation. The "output" return
586 // value can be used to capture response data after the request's "Send" method
587 // is called.
588 //
589 // See DeleteMetricFilter for usage and error information.
590 //
591 // Creating a request object using this method should be used when you want to inject
592 // custom logic into the request's lifecycle using a custom handler, or if you want to
593 // access properties on the request object before or after sending the request. If
594 // you just want the service response, call the DeleteMetricFilter method directly
595 // instead.
596 //
597 // Note: You must call the "Send" method on the returned request object in order
598 // to execute the request.
599 //
600 //    // Example sending a request using the DeleteMetricFilterRequest method.
601 //    req, resp := client.DeleteMetricFilterRequest(params)
602 //
603 //    err := req.Send()
604 //    if err == nil { // resp is now filled
605 //        fmt.Println(resp)
606 //    }
607 //
608 func (c *CloudWatchLogs) DeleteMetricFilterRequest(input *DeleteMetricFilterInput) (req *request.Request, output *DeleteMetricFilterOutput) {
609         op := &request.Operation{
610                 Name:       opDeleteMetricFilter,
611                 HTTPMethod: "POST",
612                 HTTPPath:   "/",
613         }
614
615         if input == nil {
616                 input = &DeleteMetricFilterInput{}
617         }
618
619         req = c.newRequest(op, input, output)
620         req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
621         req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
622         output = &DeleteMetricFilterOutput{}
623         req.Data = output
624         return
625 }
626
627 // DeleteMetricFilter API operation for Amazon CloudWatch Logs.
628 //
629 // Deletes a metric filter associated with the specified log group.
630 //
631 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
632 // with awserr.Error's Code and Message methods to get detailed information about
633 // the error.
634 //
635 // See the AWS API reference guide for Amazon CloudWatch Logs's
636 // API operation DeleteMetricFilter for usage and error information.
637 //
638 // Returned Error Codes:
639 //   * InvalidParameterException
640 //   Returned if a parameter of the request is incorrectly specified.
641 //
642 //   * ResourceNotFoundException
643 //   Returned if the specified resource does not exist.
644 //
645 //   * OperationAbortedException
646 //   Returned if multiple requests to update the same resource were in conflict.
647 //
648 //   * ServiceUnavailableException
649 //   Returned if the service cannot complete the request.
650 //
651 func (c *CloudWatchLogs) DeleteMetricFilter(input *DeleteMetricFilterInput) (*DeleteMetricFilterOutput, error) {
652         req, out := c.DeleteMetricFilterRequest(input)
653         err := req.Send()
654         return out, err
655 }
656
657 const opDeleteRetentionPolicy = "DeleteRetentionPolicy"
658
659 // DeleteRetentionPolicyRequest generates a "aws/request.Request" representing the
660 // client's request for the DeleteRetentionPolicy operation. The "output" return
661 // value can be used to capture response data after the request's "Send" method
662 // is called.
663 //
664 // See DeleteRetentionPolicy for usage and error information.
665 //
666 // Creating a request object using this method should be used when you want to inject
667 // custom logic into the request's lifecycle using a custom handler, or if you want to
668 // access properties on the request object before or after sending the request. If
669 // you just want the service response, call the DeleteRetentionPolicy method directly
670 // instead.
671 //
672 // Note: You must call the "Send" method on the returned request object in order
673 // to execute the request.
674 //
675 //    // Example sending a request using the DeleteRetentionPolicyRequest method.
676 //    req, resp := client.DeleteRetentionPolicyRequest(params)
677 //
678 //    err := req.Send()
679 //    if err == nil { // resp is now filled
680 //        fmt.Println(resp)
681 //    }
682 //
683 func (c *CloudWatchLogs) DeleteRetentionPolicyRequest(input *DeleteRetentionPolicyInput) (req *request.Request, output *DeleteRetentionPolicyOutput) {
684         op := &request.Operation{
685                 Name:       opDeleteRetentionPolicy,
686                 HTTPMethod: "POST",
687                 HTTPPath:   "/",
688         }
689
690         if input == nil {
691                 input = &DeleteRetentionPolicyInput{}
692         }
693
694         req = c.newRequest(op, input, output)
695         req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
696         req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
697         output = &DeleteRetentionPolicyOutput{}
698         req.Data = output
699         return
700 }
701
702 // DeleteRetentionPolicy API operation for Amazon CloudWatch Logs.
703 //
704 // Deletes the retention policy of the specified log group. Log events would
705 // not expire if they belong to log groups without a retention policy.
706 //
707 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
708 // with awserr.Error's Code and Message methods to get detailed information about
709 // the error.
710 //
711 // See the AWS API reference guide for Amazon CloudWatch Logs's
712 // API operation DeleteRetentionPolicy for usage and error information.
713 //
714 // Returned Error Codes:
715 //   * InvalidParameterException
716 //   Returned if a parameter of the request is incorrectly specified.
717 //
718 //   * ResourceNotFoundException
719 //   Returned if the specified resource does not exist.
720 //
721 //   * OperationAbortedException
722 //   Returned if multiple requests to update the same resource were in conflict.
723 //
724 //   * ServiceUnavailableException
725 //   Returned if the service cannot complete the request.
726 //
727 func (c *CloudWatchLogs) DeleteRetentionPolicy(input *DeleteRetentionPolicyInput) (*DeleteRetentionPolicyOutput, error) {
728         req, out := c.DeleteRetentionPolicyRequest(input)
729         err := req.Send()
730         return out, err
731 }
732
733 const opDeleteSubscriptionFilter = "DeleteSubscriptionFilter"
734
735 // DeleteSubscriptionFilterRequest generates a "aws/request.Request" representing the
736 // client's request for the DeleteSubscriptionFilter operation. The "output" return
737 // value can be used to capture response data after the request's "Send" method
738 // is called.
739 //
740 // See DeleteSubscriptionFilter for usage and error information.
741 //
742 // Creating a request object using this method should be used when you want to inject
743 // custom logic into the request's lifecycle using a custom handler, or if you want to
744 // access properties on the request object before or after sending the request. If
745 // you just want the service response, call the DeleteSubscriptionFilter method directly
746 // instead.
747 //
748 // Note: You must call the "Send" method on the returned request object in order
749 // to execute the request.
750 //
751 //    // Example sending a request using the DeleteSubscriptionFilterRequest method.
752 //    req, resp := client.DeleteSubscriptionFilterRequest(params)
753 //
754 //    err := req.Send()
755 //    if err == nil { // resp is now filled
756 //        fmt.Println(resp)
757 //    }
758 //
759 func (c *CloudWatchLogs) DeleteSubscriptionFilterRequest(input *DeleteSubscriptionFilterInput) (req *request.Request, output *DeleteSubscriptionFilterOutput) {
760         op := &request.Operation{
761                 Name:       opDeleteSubscriptionFilter,
762                 HTTPMethod: "POST",
763                 HTTPPath:   "/",
764         }
765
766         if input == nil {
767                 input = &DeleteSubscriptionFilterInput{}
768         }
769
770         req = c.newRequest(op, input, output)
771         req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
772         req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
773         output = &DeleteSubscriptionFilterOutput{}
774         req.Data = output
775         return
776 }
777
778 // DeleteSubscriptionFilter API operation for Amazon CloudWatch Logs.
779 //
780 // Deletes a subscription filter associated with the specified log group.
781 //
782 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
783 // with awserr.Error's Code and Message methods to get detailed information about
784 // the error.
785 //
786 // See the AWS API reference guide for Amazon CloudWatch Logs's
787 // API operation DeleteSubscriptionFilter for usage and error information.
788 //
789 // Returned Error Codes:
790 //   * InvalidParameterException
791 //   Returned if a parameter of the request is incorrectly specified.
792 //
793 //   * ResourceNotFoundException
794 //   Returned if the specified resource does not exist.
795 //
796 //   * OperationAbortedException
797 //   Returned if multiple requests to update the same resource were in conflict.
798 //
799 //   * ServiceUnavailableException
800 //   Returned if the service cannot complete the request.
801 //
802 func (c *CloudWatchLogs) DeleteSubscriptionFilter(input *DeleteSubscriptionFilterInput) (*DeleteSubscriptionFilterOutput, error) {
803         req, out := c.DeleteSubscriptionFilterRequest(input)
804         err := req.Send()
805         return out, err
806 }
807
808 const opDescribeDestinations = "DescribeDestinations"
809
810 // DescribeDestinationsRequest generates a "aws/request.Request" representing the
811 // client's request for the DescribeDestinations operation. The "output" return
812 // value can be used to capture response data after the request's "Send" method
813 // is called.
814 //
815 // See DescribeDestinations for usage and error information.
816 //
817 // Creating a request object using this method should be used when you want to inject
818 // custom logic into the request's lifecycle using a custom handler, or if you want to
819 // access properties on the request object before or after sending the request. If
820 // you just want the service response, call the DescribeDestinations method directly
821 // instead.
822 //
823 // Note: You must call the "Send" method on the returned request object in order
824 // to execute the request.
825 //
826 //    // Example sending a request using the DescribeDestinationsRequest method.
827 //    req, resp := client.DescribeDestinationsRequest(params)
828 //
829 //    err := req.Send()
830 //    if err == nil { // resp is now filled
831 //        fmt.Println(resp)
832 //    }
833 //
834 func (c *CloudWatchLogs) DescribeDestinationsRequest(input *DescribeDestinationsInput) (req *request.Request, output *DescribeDestinationsOutput) {
835         op := &request.Operation{
836                 Name:       opDescribeDestinations,
837                 HTTPMethod: "POST",
838                 HTTPPath:   "/",
839                 Paginator: &request.Paginator{
840                         InputTokens:     []string{"nextToken"},
841                         OutputTokens:    []string{"nextToken"},
842                         LimitToken:      "limit",
843                         TruncationToken: "",
844                 },
845         }
846
847         if input == nil {
848                 input = &DescribeDestinationsInput{}
849         }
850
851         req = c.newRequest(op, input, output)
852         output = &DescribeDestinationsOutput{}
853         req.Data = output
854         return
855 }
856
857 // DescribeDestinations API operation for Amazon CloudWatch Logs.
858 //
859 // Returns all the destinations that are associated with the AWS account making
860 // the request. The list returned in the response is ASCII-sorted by destination
861 // name.
862 //
863 // By default, this operation returns up to 50 destinations. If there are more
864 // destinations to list, the response would contain a nextToken value in the
865 // response body. You can also limit the number of destinations returned in
866 // the response by specifying the limit parameter in the request.
867 //
868 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
869 // with awserr.Error's Code and Message methods to get detailed information about
870 // the error.
871 //
872 // See the AWS API reference guide for Amazon CloudWatch Logs's
873 // API operation DescribeDestinations for usage and error information.
874 //
875 // Returned Error Codes:
876 //   * InvalidParameterException
877 //   Returned if a parameter of the request is incorrectly specified.
878 //
879 //   * ServiceUnavailableException
880 //   Returned if the service cannot complete the request.
881 //
882 func (c *CloudWatchLogs) DescribeDestinations(input *DescribeDestinationsInput) (*DescribeDestinationsOutput, error) {
883         req, out := c.DescribeDestinationsRequest(input)
884         err := req.Send()
885         return out, err
886 }
887
888 // DescribeDestinationsPages iterates over the pages of a DescribeDestinations operation,
889 // calling the "fn" function with the response data for each page. To stop
890 // iterating, return false from the fn function.
891 //
892 // See DescribeDestinations method for more information on how to use this operation.
893 //
894 // Note: This operation can generate multiple requests to a service.
895 //
896 //    // Example iterating over at most 3 pages of a DescribeDestinations operation.
897 //    pageNum := 0
898 //    err := client.DescribeDestinationsPages(params,
899 //        func(page *DescribeDestinationsOutput, lastPage bool) bool {
900 //            pageNum++
901 //            fmt.Println(page)
902 //            return pageNum <= 3
903 //        })
904 //
905 func (c *CloudWatchLogs) DescribeDestinationsPages(input *DescribeDestinationsInput, fn func(p *DescribeDestinationsOutput, lastPage bool) (shouldContinue bool)) error {
906         page, _ := c.DescribeDestinationsRequest(input)
907         page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
908         return page.EachPage(func(p interface{}, lastPage bool) bool {
909                 return fn(p.(*DescribeDestinationsOutput), lastPage)
910         })
911 }
912
913 const opDescribeExportTasks = "DescribeExportTasks"
914
915 // DescribeExportTasksRequest generates a "aws/request.Request" representing the
916 // client's request for the DescribeExportTasks operation. The "output" return
917 // value can be used to capture response data after the request's "Send" method
918 // is called.
919 //
920 // See DescribeExportTasks for usage and error information.
921 //
922 // Creating a request object using this method should be used when you want to inject
923 // custom logic into the request's lifecycle using a custom handler, or if you want to
924 // access properties on the request object before or after sending the request. If
925 // you just want the service response, call the DescribeExportTasks method directly
926 // instead.
927 //
928 // Note: You must call the "Send" method on the returned request object in order
929 // to execute the request.
930 //
931 //    // Example sending a request using the DescribeExportTasksRequest method.
932 //    req, resp := client.DescribeExportTasksRequest(params)
933 //
934 //    err := req.Send()
935 //    if err == nil { // resp is now filled
936 //        fmt.Println(resp)
937 //    }
938 //
939 func (c *CloudWatchLogs) DescribeExportTasksRequest(input *DescribeExportTasksInput) (req *request.Request, output *DescribeExportTasksOutput) {
940         op := &request.Operation{
941                 Name:       opDescribeExportTasks,
942                 HTTPMethod: "POST",
943                 HTTPPath:   "/",
944         }
945
946         if input == nil {
947                 input = &DescribeExportTasksInput{}
948         }
949
950         req = c.newRequest(op, input, output)
951         output = &DescribeExportTasksOutput{}
952         req.Data = output
953         return
954 }
955
956 // DescribeExportTasks API operation for Amazon CloudWatch Logs.
957 //
958 // Returns all the export tasks that are associated with the AWS account making
959 // the request. The export tasks can be filtered based on TaskId or TaskStatus.
960 //
961 // By default, this operation returns up to 50 export tasks that satisfy the
962 // specified filters. If there are more export tasks to list, the response would
963 // contain a nextToken value in the response body. You can also limit the number
964 // of export tasks returned in the response by specifying the limit parameter
965 // in the request.
966 //
967 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
968 // with awserr.Error's Code and Message methods to get detailed information about
969 // the error.
970 //
971 // See the AWS API reference guide for Amazon CloudWatch Logs's
972 // API operation DescribeExportTasks for usage and error information.
973 //
974 // Returned Error Codes:
975 //   * InvalidParameterException
976 //   Returned if a parameter of the request is incorrectly specified.
977 //
978 //   * ServiceUnavailableException
979 //   Returned if the service cannot complete the request.
980 //
981 func (c *CloudWatchLogs) DescribeExportTasks(input *DescribeExportTasksInput) (*DescribeExportTasksOutput, error) {
982         req, out := c.DescribeExportTasksRequest(input)
983         err := req.Send()
984         return out, err
985 }
986
987 const opDescribeLogGroups = "DescribeLogGroups"
988
989 // DescribeLogGroupsRequest generates a "aws/request.Request" representing the
990 // client's request for the DescribeLogGroups operation. The "output" return
991 // value can be used to capture response data after the request's "Send" method
992 // is called.
993 //
994 // See DescribeLogGroups for usage and error information.
995 //
996 // Creating a request object using this method should be used when you want to inject
997 // custom logic into the request's lifecycle using a custom handler, or if you want to
998 // access properties on the request object before or after sending the request. If
999 // you just want the service response, call the DescribeLogGroups method directly
1000 // instead.
1001 //
1002 // Note: You must call the "Send" method on the returned request object in order
1003 // to execute the request.
1004 //
1005 //    // Example sending a request using the DescribeLogGroupsRequest method.
1006 //    req, resp := client.DescribeLogGroupsRequest(params)
1007 //
1008 //    err := req.Send()
1009 //    if err == nil { // resp is now filled
1010 //        fmt.Println(resp)
1011 //    }
1012 //
1013 func (c *CloudWatchLogs) DescribeLogGroupsRequest(input *DescribeLogGroupsInput) (req *request.Request, output *DescribeLogGroupsOutput) {
1014         op := &request.Operation{
1015                 Name:       opDescribeLogGroups,
1016                 HTTPMethod: "POST",
1017                 HTTPPath:   "/",
1018                 Paginator: &request.Paginator{
1019                         InputTokens:     []string{"nextToken"},
1020                         OutputTokens:    []string{"nextToken"},
1021                         LimitToken:      "limit",
1022                         TruncationToken: "",
1023                 },
1024         }
1025
1026         if input == nil {
1027                 input = &DescribeLogGroupsInput{}
1028         }
1029
1030         req = c.newRequest(op, input, output)
1031         output = &DescribeLogGroupsOutput{}
1032         req.Data = output
1033         return
1034 }
1035
1036 // DescribeLogGroups API operation for Amazon CloudWatch Logs.
1037 //
1038 // Returns all the log groups that are associated with the AWS account making
1039 // the request. The list returned in the response is ASCII-sorted by log group
1040 // name.
1041 //
1042 // By default, this operation returns up to 50 log groups. If there are more
1043 // log groups to list, the response would contain a nextToken value in the response
1044 // body. You can also limit the number of log groups returned in the response
1045 // by specifying the limit parameter in the request.
1046 //
1047 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1048 // with awserr.Error's Code and Message methods to get detailed information about
1049 // the error.
1050 //
1051 // See the AWS API reference guide for Amazon CloudWatch Logs's
1052 // API operation DescribeLogGroups for usage and error information.
1053 //
1054 // Returned Error Codes:
1055 //   * InvalidParameterException
1056 //   Returned if a parameter of the request is incorrectly specified.
1057 //
1058 //   * ServiceUnavailableException
1059 //   Returned if the service cannot complete the request.
1060 //
1061 func (c *CloudWatchLogs) DescribeLogGroups(input *DescribeLogGroupsInput) (*DescribeLogGroupsOutput, error) {
1062         req, out := c.DescribeLogGroupsRequest(input)
1063         err := req.Send()
1064         return out, err
1065 }
1066
1067 // DescribeLogGroupsPages iterates over the pages of a DescribeLogGroups operation,
1068 // calling the "fn" function with the response data for each page. To stop
1069 // iterating, return false from the fn function.
1070 //
1071 // See DescribeLogGroups method for more information on how to use this operation.
1072 //
1073 // Note: This operation can generate multiple requests to a service.
1074 //
1075 //    // Example iterating over at most 3 pages of a DescribeLogGroups operation.
1076 //    pageNum := 0
1077 //    err := client.DescribeLogGroupsPages(params,
1078 //        func(page *DescribeLogGroupsOutput, lastPage bool) bool {
1079 //            pageNum++
1080 //            fmt.Println(page)
1081 //            return pageNum <= 3
1082 //        })
1083 //
1084 func (c *CloudWatchLogs) DescribeLogGroupsPages(input *DescribeLogGroupsInput, fn func(p *DescribeLogGroupsOutput, lastPage bool) (shouldContinue bool)) error {
1085         page, _ := c.DescribeLogGroupsRequest(input)
1086         page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
1087         return page.EachPage(func(p interface{}, lastPage bool) bool {
1088                 return fn(p.(*DescribeLogGroupsOutput), lastPage)
1089         })
1090 }
1091
1092 const opDescribeLogStreams = "DescribeLogStreams"
1093
1094 // DescribeLogStreamsRequest generates a "aws/request.Request" representing the
1095 // client's request for the DescribeLogStreams operation. The "output" return
1096 // value can be used to capture response data after the request's "Send" method
1097 // is called.
1098 //
1099 // See DescribeLogStreams for usage and error information.
1100 //
1101 // Creating a request object using this method should be used when you want to inject
1102 // custom logic into the request's lifecycle using a custom handler, or if you want to
1103 // access properties on the request object before or after sending the request. If
1104 // you just want the service response, call the DescribeLogStreams method directly
1105 // instead.
1106 //
1107 // Note: You must call the "Send" method on the returned request object in order
1108 // to execute the request.
1109 //
1110 //    // Example sending a request using the DescribeLogStreamsRequest method.
1111 //    req, resp := client.DescribeLogStreamsRequest(params)
1112 //
1113 //    err := req.Send()
1114 //    if err == nil { // resp is now filled
1115 //        fmt.Println(resp)
1116 //    }
1117 //
1118 func (c *CloudWatchLogs) DescribeLogStreamsRequest(input *DescribeLogStreamsInput) (req *request.Request, output *DescribeLogStreamsOutput) {
1119         op := &request.Operation{
1120                 Name:       opDescribeLogStreams,
1121                 HTTPMethod: "POST",
1122                 HTTPPath:   "/",
1123                 Paginator: &request.Paginator{
1124                         InputTokens:     []string{"nextToken"},
1125                         OutputTokens:    []string{"nextToken"},
1126                         LimitToken:      "limit",
1127                         TruncationToken: "",
1128                 },
1129         }
1130
1131         if input == nil {
1132                 input = &DescribeLogStreamsInput{}
1133         }
1134
1135         req = c.newRequest(op, input, output)
1136         output = &DescribeLogStreamsOutput{}
1137         req.Data = output
1138         return
1139 }
1140
1141 // DescribeLogStreams API operation for Amazon CloudWatch Logs.
1142 //
1143 // Returns all the log streams that are associated with the specified log group.
1144 // The list returned in the response is ASCII-sorted by log stream name.
1145 //
1146 // By default, this operation returns up to 50 log streams. If there are more
1147 // log streams to list, the response would contain a nextToken value in the
1148 // response body. You can also limit the number of log streams returned in the
1149 // response by specifying the limit parameter in the request. This operation
1150 // has a limit of five transactions per second, after which transactions are
1151 // throttled.
1152 //
1153 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1154 // with awserr.Error's Code and Message methods to get detailed information about
1155 // the error.
1156 //
1157 // See the AWS API reference guide for Amazon CloudWatch Logs's
1158 // API operation DescribeLogStreams for usage and error information.
1159 //
1160 // Returned Error Codes:
1161 //   * InvalidParameterException
1162 //   Returned if a parameter of the request is incorrectly specified.
1163 //
1164 //   * ResourceNotFoundException
1165 //   Returned if the specified resource does not exist.
1166 //
1167 //   * ServiceUnavailableException
1168 //   Returned if the service cannot complete the request.
1169 //
1170 func (c *CloudWatchLogs) DescribeLogStreams(input *DescribeLogStreamsInput) (*DescribeLogStreamsOutput, error) {
1171         req, out := c.DescribeLogStreamsRequest(input)
1172         err := req.Send()
1173         return out, err
1174 }
1175
1176 // DescribeLogStreamsPages iterates over the pages of a DescribeLogStreams operation,
1177 // calling the "fn" function with the response data for each page. To stop
1178 // iterating, return false from the fn function.
1179 //
1180 // See DescribeLogStreams method for more information on how to use this operation.
1181 //
1182 // Note: This operation can generate multiple requests to a service.
1183 //
1184 //    // Example iterating over at most 3 pages of a DescribeLogStreams operation.
1185 //    pageNum := 0
1186 //    err := client.DescribeLogStreamsPages(params,
1187 //        func(page *DescribeLogStreamsOutput, lastPage bool) bool {
1188 //            pageNum++
1189 //            fmt.Println(page)
1190 //            return pageNum <= 3
1191 //        })
1192 //
1193 func (c *CloudWatchLogs) DescribeLogStreamsPages(input *DescribeLogStreamsInput, fn func(p *DescribeLogStreamsOutput, lastPage bool) (shouldContinue bool)) error {
1194         page, _ := c.DescribeLogStreamsRequest(input)
1195         page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
1196         return page.EachPage(func(p interface{}, lastPage bool) bool {
1197                 return fn(p.(*DescribeLogStreamsOutput), lastPage)
1198         })
1199 }
1200
1201 const opDescribeMetricFilters = "DescribeMetricFilters"
1202
1203 // DescribeMetricFiltersRequest generates a "aws/request.Request" representing the
1204 // client's request for the DescribeMetricFilters operation. The "output" return
1205 // value can be used to capture response data after the request's "Send" method
1206 // is called.
1207 //
1208 // See DescribeMetricFilters for usage and error information.
1209 //
1210 // Creating a request object using this method should be used when you want to inject
1211 // custom logic into the request's lifecycle using a custom handler, or if you want to
1212 // access properties on the request object before or after sending the request. If
1213 // you just want the service response, call the DescribeMetricFilters method directly
1214 // instead.
1215 //
1216 // Note: You must call the "Send" method on the returned request object in order
1217 // to execute the request.
1218 //
1219 //    // Example sending a request using the DescribeMetricFiltersRequest method.
1220 //    req, resp := client.DescribeMetricFiltersRequest(params)
1221 //
1222 //    err := req.Send()
1223 //    if err == nil { // resp is now filled
1224 //        fmt.Println(resp)
1225 //    }
1226 //
1227 func (c *CloudWatchLogs) DescribeMetricFiltersRequest(input *DescribeMetricFiltersInput) (req *request.Request, output *DescribeMetricFiltersOutput) {
1228         op := &request.Operation{
1229                 Name:       opDescribeMetricFilters,
1230                 HTTPMethod: "POST",
1231                 HTTPPath:   "/",
1232                 Paginator: &request.Paginator{
1233                         InputTokens:     []string{"nextToken"},
1234                         OutputTokens:    []string{"nextToken"},
1235                         LimitToken:      "limit",
1236                         TruncationToken: "",
1237                 },
1238         }
1239
1240         if input == nil {
1241                 input = &DescribeMetricFiltersInput{}
1242         }
1243
1244         req = c.newRequest(op, input, output)
1245         output = &DescribeMetricFiltersOutput{}
1246         req.Data = output
1247         return
1248 }
1249
1250 // DescribeMetricFilters API operation for Amazon CloudWatch Logs.
1251 //
1252 // Returns all the metrics filters associated with the specified log group.
1253 // The list returned in the response is ASCII-sorted by filter name.
1254 //
1255 // By default, this operation returns up to 50 metric filters. If there are
1256 // more metric filters to list, the response would contain a nextToken value
1257 // in the response body. You can also limit the number of metric filters returned
1258 // in the response by specifying the limit parameter in the request.
1259 //
1260 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1261 // with awserr.Error's Code and Message methods to get detailed information about
1262 // the error.
1263 //
1264 // See the AWS API reference guide for Amazon CloudWatch Logs's
1265 // API operation DescribeMetricFilters for usage and error information.
1266 //
1267 // Returned Error Codes:
1268 //   * InvalidParameterException
1269 //   Returned if a parameter of the request is incorrectly specified.
1270 //
1271 //   * ResourceNotFoundException
1272 //   Returned if the specified resource does not exist.
1273 //
1274 //   * ServiceUnavailableException
1275 //   Returned if the service cannot complete the request.
1276 //
1277 func (c *CloudWatchLogs) DescribeMetricFilters(input *DescribeMetricFiltersInput) (*DescribeMetricFiltersOutput, error) {
1278         req, out := c.DescribeMetricFiltersRequest(input)
1279         err := req.Send()
1280         return out, err
1281 }
1282
1283 // DescribeMetricFiltersPages iterates over the pages of a DescribeMetricFilters operation,
1284 // calling the "fn" function with the response data for each page. To stop
1285 // iterating, return false from the fn function.
1286 //
1287 // See DescribeMetricFilters method for more information on how to use this operation.
1288 //
1289 // Note: This operation can generate multiple requests to a service.
1290 //
1291 //    // Example iterating over at most 3 pages of a DescribeMetricFilters operation.
1292 //    pageNum := 0
1293 //    err := client.DescribeMetricFiltersPages(params,
1294 //        func(page *DescribeMetricFiltersOutput, lastPage bool) bool {
1295 //            pageNum++
1296 //            fmt.Println(page)
1297 //            return pageNum <= 3
1298 //        })
1299 //
1300 func (c *CloudWatchLogs) DescribeMetricFiltersPages(input *DescribeMetricFiltersInput, fn func(p *DescribeMetricFiltersOutput, lastPage bool) (shouldContinue bool)) error {
1301         page, _ := c.DescribeMetricFiltersRequest(input)
1302         page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
1303         return page.EachPage(func(p interface{}, lastPage bool) bool {
1304                 return fn(p.(*DescribeMetricFiltersOutput), lastPage)
1305         })
1306 }
1307
1308 const opDescribeSubscriptionFilters = "DescribeSubscriptionFilters"
1309
1310 // DescribeSubscriptionFiltersRequest generates a "aws/request.Request" representing the
1311 // client's request for the DescribeSubscriptionFilters operation. The "output" return
1312 // value can be used to capture response data after the request's "Send" method
1313 // is called.
1314 //
1315 // See DescribeSubscriptionFilters for usage and error information.
1316 //
1317 // Creating a request object using this method should be used when you want to inject
1318 // custom logic into the request's lifecycle using a custom handler, or if you want to
1319 // access properties on the request object before or after sending the request. If
1320 // you just want the service response, call the DescribeSubscriptionFilters method directly
1321 // instead.
1322 //
1323 // Note: You must call the "Send" method on the returned request object in order
1324 // to execute the request.
1325 //
1326 //    // Example sending a request using the DescribeSubscriptionFiltersRequest method.
1327 //    req, resp := client.DescribeSubscriptionFiltersRequest(params)
1328 //
1329 //    err := req.Send()
1330 //    if err == nil { // resp is now filled
1331 //        fmt.Println(resp)
1332 //    }
1333 //
1334 func (c *CloudWatchLogs) DescribeSubscriptionFiltersRequest(input *DescribeSubscriptionFiltersInput) (req *request.Request, output *DescribeSubscriptionFiltersOutput) {
1335         op := &request.Operation{
1336                 Name:       opDescribeSubscriptionFilters,
1337                 HTTPMethod: "POST",
1338                 HTTPPath:   "/",
1339                 Paginator: &request.Paginator{
1340                         InputTokens:     []string{"nextToken"},
1341                         OutputTokens:    []string{"nextToken"},
1342                         LimitToken:      "limit",
1343                         TruncationToken: "",
1344                 },
1345         }
1346
1347         if input == nil {
1348                 input = &DescribeSubscriptionFiltersInput{}
1349         }
1350
1351         req = c.newRequest(op, input, output)
1352         output = &DescribeSubscriptionFiltersOutput{}
1353         req.Data = output
1354         return
1355 }
1356
1357 // DescribeSubscriptionFilters API operation for Amazon CloudWatch Logs.
1358 //
1359 // Returns all the subscription filters associated with the specified log group.
1360 // The list returned in the response is ASCII-sorted by filter name.
1361 //
1362 // By default, this operation returns up to 50 subscription filters. If there
1363 // are more subscription filters to list, the response would contain a nextToken
1364 // value in the response body. You can also limit the number of subscription
1365 // filters returned in the response by specifying the limit parameter in the
1366 // request.
1367 //
1368 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1369 // with awserr.Error's Code and Message methods to get detailed information about
1370 // the error.
1371 //
1372 // See the AWS API reference guide for Amazon CloudWatch Logs's
1373 // API operation DescribeSubscriptionFilters for usage and error information.
1374 //
1375 // Returned Error Codes:
1376 //   * InvalidParameterException
1377 //   Returned if a parameter of the request is incorrectly specified.
1378 //
1379 //   * ResourceNotFoundException
1380 //   Returned if the specified resource does not exist.
1381 //
1382 //   * ServiceUnavailableException
1383 //   Returned if the service cannot complete the request.
1384 //
1385 func (c *CloudWatchLogs) DescribeSubscriptionFilters(input *DescribeSubscriptionFiltersInput) (*DescribeSubscriptionFiltersOutput, error) {
1386         req, out := c.DescribeSubscriptionFiltersRequest(input)
1387         err := req.Send()
1388         return out, err
1389 }
1390
1391 // DescribeSubscriptionFiltersPages iterates over the pages of a DescribeSubscriptionFilters operation,
1392 // calling the "fn" function with the response data for each page. To stop
1393 // iterating, return false from the fn function.
1394 //
1395 // See DescribeSubscriptionFilters method for more information on how to use this operation.
1396 //
1397 // Note: This operation can generate multiple requests to a service.
1398 //
1399 //    // Example iterating over at most 3 pages of a DescribeSubscriptionFilters operation.
1400 //    pageNum := 0
1401 //    err := client.DescribeSubscriptionFiltersPages(params,
1402 //        func(page *DescribeSubscriptionFiltersOutput, lastPage bool) bool {
1403 //            pageNum++
1404 //            fmt.Println(page)
1405 //            return pageNum <= 3
1406 //        })
1407 //
1408 func (c *CloudWatchLogs) DescribeSubscriptionFiltersPages(input *DescribeSubscriptionFiltersInput, fn func(p *DescribeSubscriptionFiltersOutput, lastPage bool) (shouldContinue bool)) error {
1409         page, _ := c.DescribeSubscriptionFiltersRequest(input)
1410         page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
1411         return page.EachPage(func(p interface{}, lastPage bool) bool {
1412                 return fn(p.(*DescribeSubscriptionFiltersOutput), lastPage)
1413         })
1414 }
1415
1416 const opFilterLogEvents = "FilterLogEvents"
1417
1418 // FilterLogEventsRequest generates a "aws/request.Request" representing the
1419 // client's request for the FilterLogEvents operation. The "output" return
1420 // value can be used to capture response data after the request's "Send" method
1421 // is called.
1422 //
1423 // See FilterLogEvents for usage and error information.
1424 //
1425 // Creating a request object using this method should be used when you want to inject
1426 // custom logic into the request's lifecycle using a custom handler, or if you want to
1427 // access properties on the request object before or after sending the request. If
1428 // you just want the service response, call the FilterLogEvents method directly
1429 // instead.
1430 //
1431 // Note: You must call the "Send" method on the returned request object in order
1432 // to execute the request.
1433 //
1434 //    // Example sending a request using the FilterLogEventsRequest method.
1435 //    req, resp := client.FilterLogEventsRequest(params)
1436 //
1437 //    err := req.Send()
1438 //    if err == nil { // resp is now filled
1439 //        fmt.Println(resp)
1440 //    }
1441 //
1442 func (c *CloudWatchLogs) FilterLogEventsRequest(input *FilterLogEventsInput) (req *request.Request, output *FilterLogEventsOutput) {
1443         op := &request.Operation{
1444                 Name:       opFilterLogEvents,
1445                 HTTPMethod: "POST",
1446                 HTTPPath:   "/",
1447                 Paginator: &request.Paginator{
1448                         InputTokens:     []string{"nextToken"},
1449                         OutputTokens:    []string{"nextToken"},
1450                         LimitToken:      "limit",
1451                         TruncationToken: "",
1452                 },
1453         }
1454
1455         if input == nil {
1456                 input = &FilterLogEventsInput{}
1457         }
1458
1459         req = c.newRequest(op, input, output)
1460         output = &FilterLogEventsOutput{}
1461         req.Data = output
1462         return
1463 }
1464
1465 // FilterLogEvents API operation for Amazon CloudWatch Logs.
1466 //
1467 // Retrieves log events, optionally filtered by a filter pattern from the specified
1468 // log group. You can provide an optional time range to filter the results on
1469 // the event timestamp. You can limit the streams searched to an explicit list
1470 // of logStreamNames.
1471 //
1472 // By default, this operation returns as much matching log events as can fit
1473 // in a response size of 1MB, up to 10,000 log events, or all the events found
1474 // within a time-bounded scan window. If the response includes a nextToken,
1475 // then there is more data to search, and the search can be resumed with a new
1476 // request providing the nextToken. The response will contain a list of searchedLogStreams
1477 // that contains information about which streams were searched in the request
1478 // and whether they have been searched completely or require further pagination.
1479 // The limit parameter in the request can be used to specify the maximum number
1480 // of events to return in a page.
1481 //
1482 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1483 // with awserr.Error's Code and Message methods to get detailed information about
1484 // the error.
1485 //
1486 // See the AWS API reference guide for Amazon CloudWatch Logs's
1487 // API operation FilterLogEvents for usage and error information.
1488 //
1489 // Returned Error Codes:
1490 //   * InvalidParameterException
1491 //   Returned if a parameter of the request is incorrectly specified.
1492 //
1493 //   * ResourceNotFoundException
1494 //   Returned if the specified resource does not exist.
1495 //
1496 //   * ServiceUnavailableException
1497 //   Returned if the service cannot complete the request.
1498 //
1499 func (c *CloudWatchLogs) FilterLogEvents(input *FilterLogEventsInput) (*FilterLogEventsOutput, error) {
1500         req, out := c.FilterLogEventsRequest(input)
1501         err := req.Send()
1502         return out, err
1503 }
1504
1505 // FilterLogEventsPages iterates over the pages of a FilterLogEvents operation,
1506 // calling the "fn" function with the response data for each page. To stop
1507 // iterating, return false from the fn function.
1508 //
1509 // See FilterLogEvents method for more information on how to use this operation.
1510 //
1511 // Note: This operation can generate multiple requests to a service.
1512 //
1513 //    // Example iterating over at most 3 pages of a FilterLogEvents operation.
1514 //    pageNum := 0
1515 //    err := client.FilterLogEventsPages(params,
1516 //        func(page *FilterLogEventsOutput, lastPage bool) bool {
1517 //            pageNum++
1518 //            fmt.Println(page)
1519 //            return pageNum <= 3
1520 //        })
1521 //
1522 func (c *CloudWatchLogs) FilterLogEventsPages(input *FilterLogEventsInput, fn func(p *FilterLogEventsOutput, lastPage bool) (shouldContinue bool)) error {
1523         page, _ := c.FilterLogEventsRequest(input)
1524         page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
1525         return page.EachPage(func(p interface{}, lastPage bool) bool {
1526                 return fn(p.(*FilterLogEventsOutput), lastPage)
1527         })
1528 }
1529
1530 const opGetLogEvents = "GetLogEvents"
1531
1532 // GetLogEventsRequest generates a "aws/request.Request" representing the
1533 // client's request for the GetLogEvents operation. The "output" return
1534 // value can be used to capture response data after the request's "Send" method
1535 // is called.
1536 //
1537 // See GetLogEvents for usage and error information.
1538 //
1539 // Creating a request object using this method should be used when you want to inject
1540 // custom logic into the request's lifecycle using a custom handler, or if you want to
1541 // access properties on the request object before or after sending the request. If
1542 // you just want the service response, call the GetLogEvents method directly
1543 // instead.
1544 //
1545 // Note: You must call the "Send" method on the returned request object in order
1546 // to execute the request.
1547 //
1548 //    // Example sending a request using the GetLogEventsRequest method.
1549 //    req, resp := client.GetLogEventsRequest(params)
1550 //
1551 //    err := req.Send()
1552 //    if err == nil { // resp is now filled
1553 //        fmt.Println(resp)
1554 //    }
1555 //
1556 func (c *CloudWatchLogs) GetLogEventsRequest(input *GetLogEventsInput) (req *request.Request, output *GetLogEventsOutput) {
1557         op := &request.Operation{
1558                 Name:       opGetLogEvents,
1559                 HTTPMethod: "POST",
1560                 HTTPPath:   "/",
1561                 Paginator: &request.Paginator{
1562                         InputTokens:     []string{"nextToken"},
1563                         OutputTokens:    []string{"nextForwardToken"},
1564                         LimitToken:      "limit",
1565                         TruncationToken: "",
1566                 },
1567         }
1568
1569         if input == nil {
1570                 input = &GetLogEventsInput{}
1571         }
1572
1573         req = c.newRequest(op, input, output)
1574         output = &GetLogEventsOutput{}
1575         req.Data = output
1576         return
1577 }
1578
1579 // GetLogEvents API operation for Amazon CloudWatch Logs.
1580 //
1581 // Retrieves log events from the specified log stream. You can provide an optional
1582 // time range to filter the results on the event timestamp.
1583 //
1584 // By default, this operation returns as much log events as can fit in a response
1585 // size of 1MB, up to 10,000 log events. The response will always include a
1586 // nextForwardToken and a nextBackwardToken in the response body. You can use
1587 // any of these tokens in subsequent GetLogEvents requests to paginate through
1588 // events in either forward or backward direction. You can also limit the number
1589 // of log events returned in the response by specifying the limit parameter
1590 // in the request.
1591 //
1592 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1593 // with awserr.Error's Code and Message methods to get detailed information about
1594 // the error.
1595 //
1596 // See the AWS API reference guide for Amazon CloudWatch Logs's
1597 // API operation GetLogEvents for usage and error information.
1598 //
1599 // Returned Error Codes:
1600 //   * InvalidParameterException
1601 //   Returned if a parameter of the request is incorrectly specified.
1602 //
1603 //   * ResourceNotFoundException
1604 //   Returned if the specified resource does not exist.
1605 //
1606 //   * ServiceUnavailableException
1607 //   Returned if the service cannot complete the request.
1608 //
1609 func (c *CloudWatchLogs) GetLogEvents(input *GetLogEventsInput) (*GetLogEventsOutput, error) {
1610         req, out := c.GetLogEventsRequest(input)
1611         err := req.Send()
1612         return out, err
1613 }
1614
1615 // GetLogEventsPages iterates over the pages of a GetLogEvents operation,
1616 // calling the "fn" function with the response data for each page. To stop
1617 // iterating, return false from the fn function.
1618 //
1619 // See GetLogEvents method for more information on how to use this operation.
1620 //
1621 // Note: This operation can generate multiple requests to a service.
1622 //
1623 //    // Example iterating over at most 3 pages of a GetLogEvents operation.
1624 //    pageNum := 0
1625 //    err := client.GetLogEventsPages(params,
1626 //        func(page *GetLogEventsOutput, lastPage bool) bool {
1627 //            pageNum++
1628 //            fmt.Println(page)
1629 //            return pageNum <= 3
1630 //        })
1631 //
1632 func (c *CloudWatchLogs) GetLogEventsPages(input *GetLogEventsInput, fn func(p *GetLogEventsOutput, lastPage bool) (shouldContinue bool)) error {
1633         page, _ := c.GetLogEventsRequest(input)
1634         page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
1635         return page.EachPage(func(p interface{}, lastPage bool) bool {
1636                 return fn(p.(*GetLogEventsOutput), lastPage)
1637         })
1638 }
1639
1640 const opPutDestination = "PutDestination"
1641
1642 // PutDestinationRequest generates a "aws/request.Request" representing the
1643 // client's request for the PutDestination operation. The "output" return
1644 // value can be used to capture response data after the request's "Send" method
1645 // is called.
1646 //
1647 // See PutDestination for usage and error information.
1648 //
1649 // Creating a request object using this method should be used when you want to inject
1650 // custom logic into the request's lifecycle using a custom handler, or if you want to
1651 // access properties on the request object before or after sending the request. If
1652 // you just want the service response, call the PutDestination method directly
1653 // instead.
1654 //
1655 // Note: You must call the "Send" method on the returned request object in order
1656 // to execute the request.
1657 //
1658 //    // Example sending a request using the PutDestinationRequest method.
1659 //    req, resp := client.PutDestinationRequest(params)
1660 //
1661 //    err := req.Send()
1662 //    if err == nil { // resp is now filled
1663 //        fmt.Println(resp)
1664 //    }
1665 //
1666 func (c *CloudWatchLogs) PutDestinationRequest(input *PutDestinationInput) (req *request.Request, output *PutDestinationOutput) {
1667         op := &request.Operation{
1668                 Name:       opPutDestination,
1669                 HTTPMethod: "POST",
1670                 HTTPPath:   "/",
1671         }
1672
1673         if input == nil {
1674                 input = &PutDestinationInput{}
1675         }
1676
1677         req = c.newRequest(op, input, output)
1678         output = &PutDestinationOutput{}
1679         req.Data = output
1680         return
1681 }
1682
1683 // PutDestination API operation for Amazon CloudWatch Logs.
1684 //
1685 // Creates or updates a Destination. A destination encapsulates a physical resource
1686 // (such as a Kinesis stream) and allows you to subscribe to a real-time stream
1687 // of log events of a different account, ingested through PutLogEvents requests.
1688 // Currently, the only supported physical resource is a Amazon Kinesis stream
1689 // belonging to the same account as the destination.
1690 //
1691 // A destination controls what is written to its Amazon Kinesis stream through
1692 // an access policy. By default, PutDestination does not set any access policy
1693 // with the destination, which means a cross-account user will not be able to
1694 // call PutSubscriptionFilter against this destination. To enable that, the
1695 // destination owner must call PutDestinationPolicy after PutDestination.
1696 //
1697 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1698 // with awserr.Error's Code and Message methods to get detailed information about
1699 // the error.
1700 //
1701 // See the AWS API reference guide for Amazon CloudWatch Logs's
1702 // API operation PutDestination for usage and error information.
1703 //
1704 // Returned Error Codes:
1705 //   * InvalidParameterException
1706 //   Returned if a parameter of the request is incorrectly specified.
1707 //
1708 //   * OperationAbortedException
1709 //   Returned if multiple requests to update the same resource were in conflict.
1710 //
1711 //   * ServiceUnavailableException
1712 //   Returned if the service cannot complete the request.
1713 //
1714 func (c *CloudWatchLogs) PutDestination(input *PutDestinationInput) (*PutDestinationOutput, error) {
1715         req, out := c.PutDestinationRequest(input)
1716         err := req.Send()
1717         return out, err
1718 }
1719
1720 const opPutDestinationPolicy = "PutDestinationPolicy"
1721
1722 // PutDestinationPolicyRequest generates a "aws/request.Request" representing the
1723 // client's request for the PutDestinationPolicy operation. The "output" return
1724 // value can be used to capture response data after the request's "Send" method
1725 // is called.
1726 //
1727 // See PutDestinationPolicy for usage and error information.
1728 //
1729 // Creating a request object using this method should be used when you want to inject
1730 // custom logic into the request's lifecycle using a custom handler, or if you want to
1731 // access properties on the request object before or after sending the request. If
1732 // you just want the service response, call the PutDestinationPolicy method directly
1733 // instead.
1734 //
1735 // Note: You must call the "Send" method on the returned request object in order
1736 // to execute the request.
1737 //
1738 //    // Example sending a request using the PutDestinationPolicyRequest method.
1739 //    req, resp := client.PutDestinationPolicyRequest(params)
1740 //
1741 //    err := req.Send()
1742 //    if err == nil { // resp is now filled
1743 //        fmt.Println(resp)
1744 //    }
1745 //
1746 func (c *CloudWatchLogs) PutDestinationPolicyRequest(input *PutDestinationPolicyInput) (req *request.Request, output *PutDestinationPolicyOutput) {
1747         op := &request.Operation{
1748                 Name:       opPutDestinationPolicy,
1749                 HTTPMethod: "POST",
1750                 HTTPPath:   "/",
1751         }
1752
1753         if input == nil {
1754                 input = &PutDestinationPolicyInput{}
1755         }
1756
1757         req = c.newRequest(op, input, output)
1758         req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
1759         req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
1760         output = &PutDestinationPolicyOutput{}
1761         req.Data = output
1762         return
1763 }
1764
1765 // PutDestinationPolicy API operation for Amazon CloudWatch Logs.
1766 //
1767 // Creates or updates an access policy associated with an existing Destination.
1768 // An access policy is an IAM policy document (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies_overview.html)
1769 // that is used to authorize claims to register a subscription filter against
1770 // a given destination.
1771 //
1772 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1773 // with awserr.Error's Code and Message methods to get detailed information about
1774 // the error.
1775 //
1776 // See the AWS API reference guide for Amazon CloudWatch Logs's
1777 // API operation PutDestinationPolicy for usage and error information.
1778 //
1779 // Returned Error Codes:
1780 //   * InvalidParameterException
1781 //   Returned if a parameter of the request is incorrectly specified.
1782 //
1783 //   * OperationAbortedException
1784 //   Returned if multiple requests to update the same resource were in conflict.
1785 //
1786 //   * ServiceUnavailableException
1787 //   Returned if the service cannot complete the request.
1788 //
1789 func (c *CloudWatchLogs) PutDestinationPolicy(input *PutDestinationPolicyInput) (*PutDestinationPolicyOutput, error) {
1790         req, out := c.PutDestinationPolicyRequest(input)
1791         err := req.Send()
1792         return out, err
1793 }
1794
1795 const opPutLogEvents = "PutLogEvents"
1796
1797 // PutLogEventsRequest generates a "aws/request.Request" representing the
1798 // client's request for the PutLogEvents operation. The "output" return
1799 // value can be used to capture response data after the request's "Send" method
1800 // is called.
1801 //
1802 // See PutLogEvents for usage and error information.
1803 //
1804 // Creating a request object using this method should be used when you want to inject
1805 // custom logic into the request's lifecycle using a custom handler, or if you want to
1806 // access properties on the request object before or after sending the request. If
1807 // you just want the service response, call the PutLogEvents method directly
1808 // instead.
1809 //
1810 // Note: You must call the "Send" method on the returned request object in order
1811 // to execute the request.
1812 //
1813 //    // Example sending a request using the PutLogEventsRequest method.
1814 //    req, resp := client.PutLogEventsRequest(params)
1815 //
1816 //    err := req.Send()
1817 //    if err == nil { // resp is now filled
1818 //        fmt.Println(resp)
1819 //    }
1820 //
1821 func (c *CloudWatchLogs) PutLogEventsRequest(input *PutLogEventsInput) (req *request.Request, output *PutLogEventsOutput) {
1822         op := &request.Operation{
1823                 Name:       opPutLogEvents,
1824                 HTTPMethod: "POST",
1825                 HTTPPath:   "/",
1826         }
1827
1828         if input == nil {
1829                 input = &PutLogEventsInput{}
1830         }
1831
1832         req = c.newRequest(op, input, output)
1833         output = &PutLogEventsOutput{}
1834         req.Data = output
1835         return
1836 }
1837
1838 // PutLogEvents API operation for Amazon CloudWatch Logs.
1839 //
1840 // Uploads a batch of log events to the specified log stream.
1841 //
1842 // Every PutLogEvents request must include the sequenceToken obtained from the
1843 // response of the previous request. An upload in a newly created log stream
1844 // does not require a sequenceToken. You can also get the sequenceToken using
1845 // DescribeLogStreams.
1846 //
1847 // The batch of events must satisfy the following constraints:
1848 //
1849 //    * The maximum batch size is 1,048,576 bytes, and this size is calculated
1850 //    as the sum of all event messages in UTF-8, plus 26 bytes for each log
1851 //    event.
1852 //
1853 //    * None of the log events in the batch can be more than 2 hours in the
1854 //    future.
1855 //
1856 //    * None of the log events in the batch can be older than 14 days or the
1857 //    retention period of the log group.
1858 //
1859 //    * The log events in the batch must be in chronological ordered by their
1860 //    timestamp.
1861 //
1862 //    * The maximum number of log events in a batch is 10,000.
1863 //
1864 //    * A batch of log events in a single PutLogEvents request cannot span more
1865 //    than 24 hours. Otherwise, the PutLogEvents operation will fail.
1866 //
1867 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1868 // with awserr.Error's Code and Message methods to get detailed information about
1869 // the error.
1870 //
1871 // See the AWS API reference guide for Amazon CloudWatch Logs's
1872 // API operation PutLogEvents for usage and error information.
1873 //
1874 // Returned Error Codes:
1875 //   * InvalidParameterException
1876 //   Returned if a parameter of the request is incorrectly specified.
1877 //
1878 //   * InvalidSequenceTokenException
1879
1880 //
1881 //   * DataAlreadyAcceptedException
1882
1883 //
1884 //   * ResourceNotFoundException
1885 //   Returned if the specified resource does not exist.
1886 //
1887 //   * ServiceUnavailableException
1888 //   Returned if the service cannot complete the request.
1889 //
1890 func (c *CloudWatchLogs) PutLogEvents(input *PutLogEventsInput) (*PutLogEventsOutput, error) {
1891         req, out := c.PutLogEventsRequest(input)
1892         err := req.Send()
1893         return out, err
1894 }
1895
1896 const opPutMetricFilter = "PutMetricFilter"
1897
1898 // PutMetricFilterRequest generates a "aws/request.Request" representing the
1899 // client's request for the PutMetricFilter operation. The "output" return
1900 // value can be used to capture response data after the request's "Send" method
1901 // is called.
1902 //
1903 // See PutMetricFilter for usage and error information.
1904 //
1905 // Creating a request object using this method should be used when you want to inject
1906 // custom logic into the request's lifecycle using a custom handler, or if you want to
1907 // access properties on the request object before or after sending the request. If
1908 // you just want the service response, call the PutMetricFilter method directly
1909 // instead.
1910 //
1911 // Note: You must call the "Send" method on the returned request object in order
1912 // to execute the request.
1913 //
1914 //    // Example sending a request using the PutMetricFilterRequest method.
1915 //    req, resp := client.PutMetricFilterRequest(params)
1916 //
1917 //    err := req.Send()
1918 //    if err == nil { // resp is now filled
1919 //        fmt.Println(resp)
1920 //    }
1921 //
1922 func (c *CloudWatchLogs) PutMetricFilterRequest(input *PutMetricFilterInput) (req *request.Request, output *PutMetricFilterOutput) {
1923         op := &request.Operation{
1924                 Name:       opPutMetricFilter,
1925                 HTTPMethod: "POST",
1926                 HTTPPath:   "/",
1927         }
1928
1929         if input == nil {
1930                 input = &PutMetricFilterInput{}
1931         }
1932
1933         req = c.newRequest(op, input, output)
1934         req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
1935         req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
1936         output = &PutMetricFilterOutput{}
1937         req.Data = output
1938         return
1939 }
1940
1941 // PutMetricFilter API operation for Amazon CloudWatch Logs.
1942 //
1943 // Creates or updates a metric filter and associates it with the specified log
1944 // group. Metric filters allow you to configure rules to extract metric data
1945 // from log events ingested through PutLogEvents requests.
1946 //
1947 // The maximum number of metric filters that can be associated with a log group
1948 // is 100.
1949 //
1950 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1951 // with awserr.Error's Code and Message methods to get detailed information about
1952 // the error.
1953 //
1954 // See the AWS API reference guide for Amazon CloudWatch Logs's
1955 // API operation PutMetricFilter for usage and error information.
1956 //
1957 // Returned Error Codes:
1958 //   * InvalidParameterException
1959 //   Returned if a parameter of the request is incorrectly specified.
1960 //
1961 //   * ResourceNotFoundException
1962 //   Returned if the specified resource does not exist.
1963 //
1964 //   * OperationAbortedException
1965 //   Returned if multiple requests to update the same resource were in conflict.
1966 //
1967 //   * LimitExceededException
1968 //   Returned if you have reached the maximum number of resources that can be
1969 //   created.
1970 //
1971 //   * ServiceUnavailableException
1972 //   Returned if the service cannot complete the request.
1973 //
1974 func (c *CloudWatchLogs) PutMetricFilter(input *PutMetricFilterInput) (*PutMetricFilterOutput, error) {
1975         req, out := c.PutMetricFilterRequest(input)
1976         err := req.Send()
1977         return out, err
1978 }
1979
1980 const opPutRetentionPolicy = "PutRetentionPolicy"
1981
1982 // PutRetentionPolicyRequest generates a "aws/request.Request" representing the
1983 // client's request for the PutRetentionPolicy operation. The "output" return
1984 // value can be used to capture response data after the request's "Send" method
1985 // is called.
1986 //
1987 // See PutRetentionPolicy for usage and error information.
1988 //
1989 // Creating a request object using this method should be used when you want to inject
1990 // custom logic into the request's lifecycle using a custom handler, or if you want to
1991 // access properties on the request object before or after sending the request. If
1992 // you just want the service response, call the PutRetentionPolicy method directly
1993 // instead.
1994 //
1995 // Note: You must call the "Send" method on the returned request object in order
1996 // to execute the request.
1997 //
1998 //    // Example sending a request using the PutRetentionPolicyRequest method.
1999 //    req, resp := client.PutRetentionPolicyRequest(params)
2000 //
2001 //    err := req.Send()
2002 //    if err == nil { // resp is now filled
2003 //        fmt.Println(resp)
2004 //    }
2005 //
2006 func (c *CloudWatchLogs) PutRetentionPolicyRequest(input *PutRetentionPolicyInput) (req *request.Request, output *PutRetentionPolicyOutput) {
2007         op := &request.Operation{
2008                 Name:       opPutRetentionPolicy,
2009                 HTTPMethod: "POST",
2010                 HTTPPath:   "/",
2011         }
2012
2013         if input == nil {
2014                 input = &PutRetentionPolicyInput{}
2015         }
2016
2017         req = c.newRequest(op, input, output)
2018         req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
2019         req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2020         output = &PutRetentionPolicyOutput{}
2021         req.Data = output
2022         return
2023 }
2024
2025 // PutRetentionPolicy API operation for Amazon CloudWatch Logs.
2026 //
2027 // Sets the retention of the specified log group. A retention policy allows
2028 // you to configure the number of days you want to retain log events in the
2029 // specified log group.
2030 //
2031 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2032 // with awserr.Error's Code and Message methods to get detailed information about
2033 // the error.
2034 //
2035 // See the AWS API reference guide for Amazon CloudWatch Logs's
2036 // API operation PutRetentionPolicy for usage and error information.
2037 //
2038 // Returned Error Codes:
2039 //   * InvalidParameterException
2040 //   Returned if a parameter of the request is incorrectly specified.
2041 //
2042 //   * ResourceNotFoundException
2043 //   Returned if the specified resource does not exist.
2044 //
2045 //   * OperationAbortedException
2046 //   Returned if multiple requests to update the same resource were in conflict.
2047 //
2048 //   * ServiceUnavailableException
2049 //   Returned if the service cannot complete the request.
2050 //
2051 func (c *CloudWatchLogs) PutRetentionPolicy(input *PutRetentionPolicyInput) (*PutRetentionPolicyOutput, error) {
2052         req, out := c.PutRetentionPolicyRequest(input)
2053         err := req.Send()
2054         return out, err
2055 }
2056
2057 const opPutSubscriptionFilter = "PutSubscriptionFilter"
2058
2059 // PutSubscriptionFilterRequest generates a "aws/request.Request" representing the
2060 // client's request for the PutSubscriptionFilter operation. The "output" return
2061 // value can be used to capture response data after the request's "Send" method
2062 // is called.
2063 //
2064 // See PutSubscriptionFilter for usage and error information.
2065 //
2066 // Creating a request object using this method should be used when you want to inject
2067 // custom logic into the request's lifecycle using a custom handler, or if you want to
2068 // access properties on the request object before or after sending the request. If
2069 // you just want the service response, call the PutSubscriptionFilter method directly
2070 // instead.
2071 //
2072 // Note: You must call the "Send" method on the returned request object in order
2073 // to execute the request.
2074 //
2075 //    // Example sending a request using the PutSubscriptionFilterRequest method.
2076 //    req, resp := client.PutSubscriptionFilterRequest(params)
2077 //
2078 //    err := req.Send()
2079 //    if err == nil { // resp is now filled
2080 //        fmt.Println(resp)
2081 //    }
2082 //
2083 func (c *CloudWatchLogs) PutSubscriptionFilterRequest(input *PutSubscriptionFilterInput) (req *request.Request, output *PutSubscriptionFilterOutput) {
2084         op := &request.Operation{
2085                 Name:       opPutSubscriptionFilter,
2086                 HTTPMethod: "POST",
2087                 HTTPPath:   "/",
2088         }
2089
2090         if input == nil {
2091                 input = &PutSubscriptionFilterInput{}
2092         }
2093
2094         req = c.newRequest(op, input, output)
2095         req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
2096         req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
2097         output = &PutSubscriptionFilterOutput{}
2098         req.Data = output
2099         return
2100 }
2101
2102 // PutSubscriptionFilter API operation for Amazon CloudWatch Logs.
2103 //
2104 // Creates or updates a subscription filter and associates it with the specified
2105 // log group. Subscription filters allow you to subscribe to a real-time stream
2106 // of log events ingested through PutLogEvents requests and have them delivered
2107 // to a specific destination. Currently, the supported destinations are:
2108 //
2109 //    * An Amazon Kinesis stream belonging to the same account as the subscription
2110 //    filter, for same-account delivery.
2111 //
2112 //    *  A logical destination (used via an ARN of Destination) belonging to
2113 //    a different account, for cross-account delivery.
2114 //
2115 //    * An Amazon Kinesis Firehose stream belonging to the same account as the
2116 //    subscription filter, for same-account delivery.
2117 //
2118 //    * An AWS Lambda function belonging to the same account as the subscription
2119 //    filter, for same-account delivery.
2120 //
2121 // Currently there can only be one subscription filter associated with a log
2122 // group.
2123 //
2124 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2125 // with awserr.Error's Code and Message methods to get detailed information about
2126 // the error.
2127 //
2128 // See the AWS API reference guide for Amazon CloudWatch Logs's
2129 // API operation PutSubscriptionFilter for usage and error information.
2130 //
2131 // Returned Error Codes:
2132 //   * InvalidParameterException
2133 //   Returned if a parameter of the request is incorrectly specified.
2134 //
2135 //   * ResourceNotFoundException
2136 //   Returned if the specified resource does not exist.
2137 //
2138 //   * OperationAbortedException
2139 //   Returned if multiple requests to update the same resource were in conflict.
2140 //
2141 //   * LimitExceededException
2142 //   Returned if you have reached the maximum number of resources that can be
2143 //   created.
2144 //
2145 //   * ServiceUnavailableException
2146 //   Returned if the service cannot complete the request.
2147 //
2148 func (c *CloudWatchLogs) PutSubscriptionFilter(input *PutSubscriptionFilterInput) (*PutSubscriptionFilterOutput, error) {
2149         req, out := c.PutSubscriptionFilterRequest(input)
2150         err := req.Send()
2151         return out, err
2152 }
2153
2154 const opTestMetricFilter = "TestMetricFilter"
2155
2156 // TestMetricFilterRequest generates a "aws/request.Request" representing the
2157 // client's request for the TestMetricFilter operation. The "output" return
2158 // value can be used to capture response data after the request's "Send" method
2159 // is called.
2160 //
2161 // See TestMetricFilter for usage and error information.
2162 //
2163 // Creating a request object using this method should be used when you want to inject
2164 // custom logic into the request's lifecycle using a custom handler, or if you want to
2165 // access properties on the request object before or after sending the request. If
2166 // you just want the service response, call the TestMetricFilter method directly
2167 // instead.
2168 //
2169 // Note: You must call the "Send" method on the returned request object in order
2170 // to execute the request.
2171 //
2172 //    // Example sending a request using the TestMetricFilterRequest method.
2173 //    req, resp := client.TestMetricFilterRequest(params)
2174 //
2175 //    err := req.Send()
2176 //    if err == nil { // resp is now filled
2177 //        fmt.Println(resp)
2178 //    }
2179 //
2180 func (c *CloudWatchLogs) TestMetricFilterRequest(input *TestMetricFilterInput) (req *request.Request, output *TestMetricFilterOutput) {
2181         op := &request.Operation{
2182                 Name:       opTestMetricFilter,
2183                 HTTPMethod: "POST",
2184                 HTTPPath:   "/",
2185         }
2186
2187         if input == nil {
2188                 input = &TestMetricFilterInput{}
2189         }
2190
2191         req = c.newRequest(op, input, output)
2192         output = &TestMetricFilterOutput{}
2193         req.Data = output
2194         return
2195 }
2196
2197 // TestMetricFilter API operation for Amazon CloudWatch Logs.
2198 //
2199 // Tests the filter pattern of a metric filter against a sample of log event
2200 // messages. You can use this operation to validate the correctness of a metric
2201 // filter pattern.
2202 //
2203 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2204 // with awserr.Error's Code and Message methods to get detailed information about
2205 // the error.
2206 //
2207 // See the AWS API reference guide for Amazon CloudWatch Logs's
2208 // API operation TestMetricFilter for usage and error information.
2209 //
2210 // Returned Error Codes:
2211 //   * InvalidParameterException
2212 //   Returned if a parameter of the request is incorrectly specified.
2213 //
2214 //   * ServiceUnavailableException
2215 //   Returned if the service cannot complete the request.
2216 //
2217 func (c *CloudWatchLogs) TestMetricFilter(input *TestMetricFilterInput) (*TestMetricFilterOutput, error) {
2218         req, out := c.TestMetricFilterRequest(input)
2219         err := req.Send()
2220         return out, err
2221 }
2222
2223 type CancelExportTaskInput struct {
2224         _ struct{} `type:"structure"`
2225
2226         // Id of the export task to cancel.
2227         //
2228         // TaskId is a required field
2229         TaskId *string `locationName:"taskId" min:"1" type:"string" required:"true"`
2230 }
2231
2232 // String returns the string representation
2233 func (s CancelExportTaskInput) String() string {
2234         return awsutil.Prettify(s)
2235 }
2236
2237 // GoString returns the string representation
2238 func (s CancelExportTaskInput) GoString() string {
2239         return s.String()
2240 }
2241
2242 // Validate inspects the fields of the type to determine if they are valid.
2243 func (s *CancelExportTaskInput) Validate() error {
2244         invalidParams := request.ErrInvalidParams{Context: "CancelExportTaskInput"}
2245         if s.TaskId == nil {
2246                 invalidParams.Add(request.NewErrParamRequired("TaskId"))
2247         }
2248         if s.TaskId != nil && len(*s.TaskId) < 1 {
2249                 invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
2250         }
2251
2252         if invalidParams.Len() > 0 {
2253                 return invalidParams
2254         }
2255         return nil
2256 }
2257
2258 type CancelExportTaskOutput struct {
2259         _ struct{} `type:"structure"`
2260 }
2261
2262 // String returns the string representation
2263 func (s CancelExportTaskOutput) String() string {
2264         return awsutil.Prettify(s)
2265 }
2266
2267 // GoString returns the string representation
2268 func (s CancelExportTaskOutput) GoString() string {
2269         return s.String()
2270 }
2271
2272 type CreateExportTaskInput struct {
2273         _ struct{} `type:"structure"`
2274
2275         // Name of Amazon S3 bucket to which the log data will be exported.
2276         //
2277         // Note: Only buckets in the same AWS region are supported.
2278         //
2279         // Destination is a required field
2280         Destination *string `locationName:"destination" min:"1" type:"string" required:"true"`
2281
2282         // Prefix that will be used as the start of Amazon S3 key for every object exported.
2283         // If not specified, this defaults to 'exportedlogs'.
2284         DestinationPrefix *string `locationName:"destinationPrefix" type:"string"`
2285
2286         // A point in time expressed as the number of milliseconds since Jan 1, 1970
2287         // 00:00:00 UTC. It indicates the start time of the range for the request. Events
2288         // with a timestamp prior to this time will not be exported.
2289         //
2290         // From is a required field
2291         From *int64 `locationName:"from" type:"long" required:"true"`
2292
2293         // The name of the log group to export.
2294         //
2295         // LogGroupName is a required field
2296         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
2297
2298         // Will only export log streams that match the provided logStreamNamePrefix.
2299         // If you don't specify a value, no prefix filter is applied.
2300         LogStreamNamePrefix *string `locationName:"logStreamNamePrefix" min:"1" type:"string"`
2301
2302         // The name of the export task.
2303         TaskName *string `locationName:"taskName" min:"1" type:"string"`
2304
2305         // A point in time expressed as the number of milliseconds since Jan 1, 1970
2306         // 00:00:00 UTC. It indicates the end time of the range for the request. Events
2307         // with a timestamp later than this time will not be exported.
2308         //
2309         // To is a required field
2310         To *int64 `locationName:"to" type:"long" required:"true"`
2311 }
2312
2313 // String returns the string representation
2314 func (s CreateExportTaskInput) String() string {
2315         return awsutil.Prettify(s)
2316 }
2317
2318 // GoString returns the string representation
2319 func (s CreateExportTaskInput) GoString() string {
2320         return s.String()
2321 }
2322
2323 // Validate inspects the fields of the type to determine if they are valid.
2324 func (s *CreateExportTaskInput) Validate() error {
2325         invalidParams := request.ErrInvalidParams{Context: "CreateExportTaskInput"}
2326         if s.Destination == nil {
2327                 invalidParams.Add(request.NewErrParamRequired("Destination"))
2328         }
2329         if s.Destination != nil && len(*s.Destination) < 1 {
2330                 invalidParams.Add(request.NewErrParamMinLen("Destination", 1))
2331         }
2332         if s.From == nil {
2333                 invalidParams.Add(request.NewErrParamRequired("From"))
2334         }
2335         if s.LogGroupName == nil {
2336                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
2337         }
2338         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
2339                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
2340         }
2341         if s.LogStreamNamePrefix != nil && len(*s.LogStreamNamePrefix) < 1 {
2342                 invalidParams.Add(request.NewErrParamMinLen("LogStreamNamePrefix", 1))
2343         }
2344         if s.TaskName != nil && len(*s.TaskName) < 1 {
2345                 invalidParams.Add(request.NewErrParamMinLen("TaskName", 1))
2346         }
2347         if s.To == nil {
2348                 invalidParams.Add(request.NewErrParamRequired("To"))
2349         }
2350
2351         if invalidParams.Len() > 0 {
2352                 return invalidParams
2353         }
2354         return nil
2355 }
2356
2357 type CreateExportTaskOutput struct {
2358         _ struct{} `type:"structure"`
2359
2360         // Id of the export task that got created.
2361         TaskId *string `locationName:"taskId" min:"1" type:"string"`
2362 }
2363
2364 // String returns the string representation
2365 func (s CreateExportTaskOutput) String() string {
2366         return awsutil.Prettify(s)
2367 }
2368
2369 // GoString returns the string representation
2370 func (s CreateExportTaskOutput) GoString() string {
2371         return s.String()
2372 }
2373
2374 type CreateLogGroupInput struct {
2375         _ struct{} `type:"structure"`
2376
2377         // The name of the log group to create.
2378         //
2379         // LogGroupName is a required field
2380         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
2381 }
2382
2383 // String returns the string representation
2384 func (s CreateLogGroupInput) String() string {
2385         return awsutil.Prettify(s)
2386 }
2387
2388 // GoString returns the string representation
2389 func (s CreateLogGroupInput) GoString() string {
2390         return s.String()
2391 }
2392
2393 // Validate inspects the fields of the type to determine if they are valid.
2394 func (s *CreateLogGroupInput) Validate() error {
2395         invalidParams := request.ErrInvalidParams{Context: "CreateLogGroupInput"}
2396         if s.LogGroupName == nil {
2397                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
2398         }
2399         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
2400                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
2401         }
2402
2403         if invalidParams.Len() > 0 {
2404                 return invalidParams
2405         }
2406         return nil
2407 }
2408
2409 type CreateLogGroupOutput struct {
2410         _ struct{} `type:"structure"`
2411 }
2412
2413 // String returns the string representation
2414 func (s CreateLogGroupOutput) String() string {
2415         return awsutil.Prettify(s)
2416 }
2417
2418 // GoString returns the string representation
2419 func (s CreateLogGroupOutput) GoString() string {
2420         return s.String()
2421 }
2422
2423 type CreateLogStreamInput struct {
2424         _ struct{} `type:"structure"`
2425
2426         // The name of the log group under which the log stream is to be created.
2427         //
2428         // LogGroupName is a required field
2429         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
2430
2431         // The name of the log stream to create.
2432         //
2433         // LogStreamName is a required field
2434         LogStreamName *string `locationName:"logStreamName" min:"1" type:"string" required:"true"`
2435 }
2436
2437 // String returns the string representation
2438 func (s CreateLogStreamInput) String() string {
2439         return awsutil.Prettify(s)
2440 }
2441
2442 // GoString returns the string representation
2443 func (s CreateLogStreamInput) GoString() string {
2444         return s.String()
2445 }
2446
2447 // Validate inspects the fields of the type to determine if they are valid.
2448 func (s *CreateLogStreamInput) Validate() error {
2449         invalidParams := request.ErrInvalidParams{Context: "CreateLogStreamInput"}
2450         if s.LogGroupName == nil {
2451                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
2452         }
2453         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
2454                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
2455         }
2456         if s.LogStreamName == nil {
2457                 invalidParams.Add(request.NewErrParamRequired("LogStreamName"))
2458         }
2459         if s.LogStreamName != nil && len(*s.LogStreamName) < 1 {
2460                 invalidParams.Add(request.NewErrParamMinLen("LogStreamName", 1))
2461         }
2462
2463         if invalidParams.Len() > 0 {
2464                 return invalidParams
2465         }
2466         return nil
2467 }
2468
2469 type CreateLogStreamOutput struct {
2470         _ struct{} `type:"structure"`
2471 }
2472
2473 // String returns the string representation
2474 func (s CreateLogStreamOutput) String() string {
2475         return awsutil.Prettify(s)
2476 }
2477
2478 // GoString returns the string representation
2479 func (s CreateLogStreamOutput) GoString() string {
2480         return s.String()
2481 }
2482
2483 type DeleteDestinationInput struct {
2484         _ struct{} `type:"structure"`
2485
2486         // The name of destination to delete.
2487         //
2488         // DestinationName is a required field
2489         DestinationName *string `locationName:"destinationName" min:"1" type:"string" required:"true"`
2490 }
2491
2492 // String returns the string representation
2493 func (s DeleteDestinationInput) String() string {
2494         return awsutil.Prettify(s)
2495 }
2496
2497 // GoString returns the string representation
2498 func (s DeleteDestinationInput) GoString() string {
2499         return s.String()
2500 }
2501
2502 // Validate inspects the fields of the type to determine if they are valid.
2503 func (s *DeleteDestinationInput) Validate() error {
2504         invalidParams := request.ErrInvalidParams{Context: "DeleteDestinationInput"}
2505         if s.DestinationName == nil {
2506                 invalidParams.Add(request.NewErrParamRequired("DestinationName"))
2507         }
2508         if s.DestinationName != nil && len(*s.DestinationName) < 1 {
2509                 invalidParams.Add(request.NewErrParamMinLen("DestinationName", 1))
2510         }
2511
2512         if invalidParams.Len() > 0 {
2513                 return invalidParams
2514         }
2515         return nil
2516 }
2517
2518 type DeleteDestinationOutput struct {
2519         _ struct{} `type:"structure"`
2520 }
2521
2522 // String returns the string representation
2523 func (s DeleteDestinationOutput) String() string {
2524         return awsutil.Prettify(s)
2525 }
2526
2527 // GoString returns the string representation
2528 func (s DeleteDestinationOutput) GoString() string {
2529         return s.String()
2530 }
2531
2532 type DeleteLogGroupInput struct {
2533         _ struct{} `type:"structure"`
2534
2535         // The name of the log group to delete.
2536         //
2537         // LogGroupName is a required field
2538         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
2539 }
2540
2541 // String returns the string representation
2542 func (s DeleteLogGroupInput) String() string {
2543         return awsutil.Prettify(s)
2544 }
2545
2546 // GoString returns the string representation
2547 func (s DeleteLogGroupInput) GoString() string {
2548         return s.String()
2549 }
2550
2551 // Validate inspects the fields of the type to determine if they are valid.
2552 func (s *DeleteLogGroupInput) Validate() error {
2553         invalidParams := request.ErrInvalidParams{Context: "DeleteLogGroupInput"}
2554         if s.LogGroupName == nil {
2555                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
2556         }
2557         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
2558                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
2559         }
2560
2561         if invalidParams.Len() > 0 {
2562                 return invalidParams
2563         }
2564         return nil
2565 }
2566
2567 type DeleteLogGroupOutput struct {
2568         _ struct{} `type:"structure"`
2569 }
2570
2571 // String returns the string representation
2572 func (s DeleteLogGroupOutput) String() string {
2573         return awsutil.Prettify(s)
2574 }
2575
2576 // GoString returns the string representation
2577 func (s DeleteLogGroupOutput) GoString() string {
2578         return s.String()
2579 }
2580
2581 type DeleteLogStreamInput struct {
2582         _ struct{} `type:"structure"`
2583
2584         // The name of the log group under which the log stream to delete belongs.
2585         //
2586         // LogGroupName is a required field
2587         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
2588
2589         // The name of the log stream to delete.
2590         //
2591         // LogStreamName is a required field
2592         LogStreamName *string `locationName:"logStreamName" min:"1" type:"string" required:"true"`
2593 }
2594
2595 // String returns the string representation
2596 func (s DeleteLogStreamInput) String() string {
2597         return awsutil.Prettify(s)
2598 }
2599
2600 // GoString returns the string representation
2601 func (s DeleteLogStreamInput) GoString() string {
2602         return s.String()
2603 }
2604
2605 // Validate inspects the fields of the type to determine if they are valid.
2606 func (s *DeleteLogStreamInput) Validate() error {
2607         invalidParams := request.ErrInvalidParams{Context: "DeleteLogStreamInput"}
2608         if s.LogGroupName == nil {
2609                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
2610         }
2611         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
2612                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
2613         }
2614         if s.LogStreamName == nil {
2615                 invalidParams.Add(request.NewErrParamRequired("LogStreamName"))
2616         }
2617         if s.LogStreamName != nil && len(*s.LogStreamName) < 1 {
2618                 invalidParams.Add(request.NewErrParamMinLen("LogStreamName", 1))
2619         }
2620
2621         if invalidParams.Len() > 0 {
2622                 return invalidParams
2623         }
2624         return nil
2625 }
2626
2627 type DeleteLogStreamOutput struct {
2628         _ struct{} `type:"structure"`
2629 }
2630
2631 // String returns the string representation
2632 func (s DeleteLogStreamOutput) String() string {
2633         return awsutil.Prettify(s)
2634 }
2635
2636 // GoString returns the string representation
2637 func (s DeleteLogStreamOutput) GoString() string {
2638         return s.String()
2639 }
2640
2641 type DeleteMetricFilterInput struct {
2642         _ struct{} `type:"structure"`
2643
2644         // The name of the metric filter to delete.
2645         //
2646         // FilterName is a required field
2647         FilterName *string `locationName:"filterName" min:"1" type:"string" required:"true"`
2648
2649         // The name of the log group that is associated with the metric filter to delete.
2650         //
2651         // LogGroupName is a required field
2652         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
2653 }
2654
2655 // String returns the string representation
2656 func (s DeleteMetricFilterInput) String() string {
2657         return awsutil.Prettify(s)
2658 }
2659
2660 // GoString returns the string representation
2661 func (s DeleteMetricFilterInput) GoString() string {
2662         return s.String()
2663 }
2664
2665 // Validate inspects the fields of the type to determine if they are valid.
2666 func (s *DeleteMetricFilterInput) Validate() error {
2667         invalidParams := request.ErrInvalidParams{Context: "DeleteMetricFilterInput"}
2668         if s.FilterName == nil {
2669                 invalidParams.Add(request.NewErrParamRequired("FilterName"))
2670         }
2671         if s.FilterName != nil && len(*s.FilterName) < 1 {
2672                 invalidParams.Add(request.NewErrParamMinLen("FilterName", 1))
2673         }
2674         if s.LogGroupName == nil {
2675                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
2676         }
2677         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
2678                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
2679         }
2680
2681         if invalidParams.Len() > 0 {
2682                 return invalidParams
2683         }
2684         return nil
2685 }
2686
2687 type DeleteMetricFilterOutput struct {
2688         _ struct{} `type:"structure"`
2689 }
2690
2691 // String returns the string representation
2692 func (s DeleteMetricFilterOutput) String() string {
2693         return awsutil.Prettify(s)
2694 }
2695
2696 // GoString returns the string representation
2697 func (s DeleteMetricFilterOutput) GoString() string {
2698         return s.String()
2699 }
2700
2701 type DeleteRetentionPolicyInput struct {
2702         _ struct{} `type:"structure"`
2703
2704         // The name of the log group that is associated with the retention policy to
2705         // delete.
2706         //
2707         // LogGroupName is a required field
2708         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
2709 }
2710
2711 // String returns the string representation
2712 func (s DeleteRetentionPolicyInput) String() string {
2713         return awsutil.Prettify(s)
2714 }
2715
2716 // GoString returns the string representation
2717 func (s DeleteRetentionPolicyInput) GoString() string {
2718         return s.String()
2719 }
2720
2721 // Validate inspects the fields of the type to determine if they are valid.
2722 func (s *DeleteRetentionPolicyInput) Validate() error {
2723         invalidParams := request.ErrInvalidParams{Context: "DeleteRetentionPolicyInput"}
2724         if s.LogGroupName == nil {
2725                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
2726         }
2727         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
2728                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
2729         }
2730
2731         if invalidParams.Len() > 0 {
2732                 return invalidParams
2733         }
2734         return nil
2735 }
2736
2737 type DeleteRetentionPolicyOutput struct {
2738         _ struct{} `type:"structure"`
2739 }
2740
2741 // String returns the string representation
2742 func (s DeleteRetentionPolicyOutput) String() string {
2743         return awsutil.Prettify(s)
2744 }
2745
2746 // GoString returns the string representation
2747 func (s DeleteRetentionPolicyOutput) GoString() string {
2748         return s.String()
2749 }
2750
2751 type DeleteSubscriptionFilterInput struct {
2752         _ struct{} `type:"structure"`
2753
2754         // The name of the subscription filter to delete.
2755         //
2756         // FilterName is a required field
2757         FilterName *string `locationName:"filterName" min:"1" type:"string" required:"true"`
2758
2759         // The name of the log group that is associated with the subscription filter
2760         // to delete.
2761         //
2762         // LogGroupName is a required field
2763         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
2764 }
2765
2766 // String returns the string representation
2767 func (s DeleteSubscriptionFilterInput) String() string {
2768         return awsutil.Prettify(s)
2769 }
2770
2771 // GoString returns the string representation
2772 func (s DeleteSubscriptionFilterInput) GoString() string {
2773         return s.String()
2774 }
2775
2776 // Validate inspects the fields of the type to determine if they are valid.
2777 func (s *DeleteSubscriptionFilterInput) Validate() error {
2778         invalidParams := request.ErrInvalidParams{Context: "DeleteSubscriptionFilterInput"}
2779         if s.FilterName == nil {
2780                 invalidParams.Add(request.NewErrParamRequired("FilterName"))
2781         }
2782         if s.FilterName != nil && len(*s.FilterName) < 1 {
2783                 invalidParams.Add(request.NewErrParamMinLen("FilterName", 1))
2784         }
2785         if s.LogGroupName == nil {
2786                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
2787         }
2788         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
2789                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
2790         }
2791
2792         if invalidParams.Len() > 0 {
2793                 return invalidParams
2794         }
2795         return nil
2796 }
2797
2798 type DeleteSubscriptionFilterOutput struct {
2799         _ struct{} `type:"structure"`
2800 }
2801
2802 // String returns the string representation
2803 func (s DeleteSubscriptionFilterOutput) String() string {
2804         return awsutil.Prettify(s)
2805 }
2806
2807 // GoString returns the string representation
2808 func (s DeleteSubscriptionFilterOutput) GoString() string {
2809         return s.String()
2810 }
2811
2812 type DescribeDestinationsInput struct {
2813         _ struct{} `type:"structure"`
2814
2815         // Will only return destinations that match the provided destinationNamePrefix.
2816         // If you don't specify a value, no prefix is applied.
2817         DestinationNamePrefix *string `min:"1" type:"string"`
2818
2819         // The maximum number of results to return.
2820         Limit *int64 `locationName:"limit" min:"1" type:"integer"`
2821
2822         // A string token used for pagination that points to the next page of results.
2823         // It must be a value obtained from the response of the previous request. The
2824         // token expires after 24 hours.
2825         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
2826 }
2827
2828 // String returns the string representation
2829 func (s DescribeDestinationsInput) String() string {
2830         return awsutil.Prettify(s)
2831 }
2832
2833 // GoString returns the string representation
2834 func (s DescribeDestinationsInput) GoString() string {
2835         return s.String()
2836 }
2837
2838 // Validate inspects the fields of the type to determine if they are valid.
2839 func (s *DescribeDestinationsInput) Validate() error {
2840         invalidParams := request.ErrInvalidParams{Context: "DescribeDestinationsInput"}
2841         if s.DestinationNamePrefix != nil && len(*s.DestinationNamePrefix) < 1 {
2842                 invalidParams.Add(request.NewErrParamMinLen("DestinationNamePrefix", 1))
2843         }
2844         if s.Limit != nil && *s.Limit < 1 {
2845                 invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
2846         }
2847         if s.NextToken != nil && len(*s.NextToken) < 1 {
2848                 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
2849         }
2850
2851         if invalidParams.Len() > 0 {
2852                 return invalidParams
2853         }
2854         return nil
2855 }
2856
2857 type DescribeDestinationsOutput struct {
2858         _ struct{} `type:"structure"`
2859
2860         Destinations []*Destination `locationName:"destinations" type:"list"`
2861
2862         // A string token used for pagination that points to the next page of results.
2863         // It must be a value obtained from the response of the previous request. The
2864         // token expires after 24 hours.
2865         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
2866 }
2867
2868 // String returns the string representation
2869 func (s DescribeDestinationsOutput) String() string {
2870         return awsutil.Prettify(s)
2871 }
2872
2873 // GoString returns the string representation
2874 func (s DescribeDestinationsOutput) GoString() string {
2875         return s.String()
2876 }
2877
2878 type DescribeExportTasksInput struct {
2879         _ struct{} `type:"structure"`
2880
2881         // The maximum number of items returned in the response. If you don't specify
2882         // a value, the request would return up to 50 items.
2883         Limit *int64 `locationName:"limit" min:"1" type:"integer"`
2884
2885         // A string token used for pagination that points to the next page of results.
2886         // It must be a value obtained from the response of the previous DescribeExportTasks
2887         // request.
2888         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
2889
2890         // All export tasks that matches the specified status code will be returned.
2891         // This can return zero or more export tasks.
2892         StatusCode *string `locationName:"statusCode" type:"string" enum:"ExportTaskStatusCode"`
2893
2894         // Export task that matches the specified task Id will be returned. This can
2895         // result in zero or one export task.
2896         TaskId *string `locationName:"taskId" min:"1" type:"string"`
2897 }
2898
2899 // String returns the string representation
2900 func (s DescribeExportTasksInput) String() string {
2901         return awsutil.Prettify(s)
2902 }
2903
2904 // GoString returns the string representation
2905 func (s DescribeExportTasksInput) GoString() string {
2906         return s.String()
2907 }
2908
2909 // Validate inspects the fields of the type to determine if they are valid.
2910 func (s *DescribeExportTasksInput) Validate() error {
2911         invalidParams := request.ErrInvalidParams{Context: "DescribeExportTasksInput"}
2912         if s.Limit != nil && *s.Limit < 1 {
2913                 invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
2914         }
2915         if s.NextToken != nil && len(*s.NextToken) < 1 {
2916                 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
2917         }
2918         if s.TaskId != nil && len(*s.TaskId) < 1 {
2919                 invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
2920         }
2921
2922         if invalidParams.Len() > 0 {
2923                 return invalidParams
2924         }
2925         return nil
2926 }
2927
2928 type DescribeExportTasksOutput struct {
2929         _ struct{} `type:"structure"`
2930
2931         // A list of export tasks.
2932         ExportTasks []*ExportTask `locationName:"exportTasks" type:"list"`
2933
2934         // A string token used for pagination that points to the next page of results.
2935         // It must be a value obtained from the response of the previous request. The
2936         // token expires after 24 hours.
2937         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
2938 }
2939
2940 // String returns the string representation
2941 func (s DescribeExportTasksOutput) String() string {
2942         return awsutil.Prettify(s)
2943 }
2944
2945 // GoString returns the string representation
2946 func (s DescribeExportTasksOutput) GoString() string {
2947         return s.String()
2948 }
2949
2950 type DescribeLogGroupsInput struct {
2951         _ struct{} `type:"structure"`
2952
2953         // The maximum number of items returned in the response. If you don't specify
2954         // a value, the request would return up to 50 items.
2955         Limit *int64 `locationName:"limit" min:"1" type:"integer"`
2956
2957         // Will only return log groups that match the provided logGroupNamePrefix. If
2958         // you don't specify a value, no prefix filter is applied.
2959         LogGroupNamePrefix *string `locationName:"logGroupNamePrefix" min:"1" type:"string"`
2960
2961         // A string token used for pagination that points to the next page of results.
2962         // It must be a value obtained from the response of the previous DescribeLogGroups
2963         // request.
2964         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
2965 }
2966
2967 // String returns the string representation
2968 func (s DescribeLogGroupsInput) String() string {
2969         return awsutil.Prettify(s)
2970 }
2971
2972 // GoString returns the string representation
2973 func (s DescribeLogGroupsInput) GoString() string {
2974         return s.String()
2975 }
2976
2977 // Validate inspects the fields of the type to determine if they are valid.
2978 func (s *DescribeLogGroupsInput) Validate() error {
2979         invalidParams := request.ErrInvalidParams{Context: "DescribeLogGroupsInput"}
2980         if s.Limit != nil && *s.Limit < 1 {
2981                 invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
2982         }
2983         if s.LogGroupNamePrefix != nil && len(*s.LogGroupNamePrefix) < 1 {
2984                 invalidParams.Add(request.NewErrParamMinLen("LogGroupNamePrefix", 1))
2985         }
2986         if s.NextToken != nil && len(*s.NextToken) < 1 {
2987                 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
2988         }
2989
2990         if invalidParams.Len() > 0 {
2991                 return invalidParams
2992         }
2993         return nil
2994 }
2995
2996 type DescribeLogGroupsOutput struct {
2997         _ struct{} `type:"structure"`
2998
2999         // A list of log groups.
3000         LogGroups []*LogGroup `locationName:"logGroups" type:"list"`
3001
3002         // A string token used for pagination that points to the next page of results.
3003         // It must be a value obtained from the response of the previous request. The
3004         // token expires after 24 hours.
3005         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3006 }
3007
3008 // String returns the string representation
3009 func (s DescribeLogGroupsOutput) String() string {
3010         return awsutil.Prettify(s)
3011 }
3012
3013 // GoString returns the string representation
3014 func (s DescribeLogGroupsOutput) GoString() string {
3015         return s.String()
3016 }
3017
3018 type DescribeLogStreamsInput struct {
3019         _ struct{} `type:"structure"`
3020
3021         // If set to true, results are returned in descending order. If you don't specify
3022         // a value or set it to false, results are returned in ascending order.
3023         Descending *bool `locationName:"descending" type:"boolean"`
3024
3025         // The maximum number of items returned in the response. If you don't specify
3026         // a value, the request would return up to 50 items.
3027         Limit *int64 `locationName:"limit" min:"1" type:"integer"`
3028
3029         // The log group name for which log streams are to be listed.
3030         //
3031         // LogGroupName is a required field
3032         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
3033
3034         // Will only return log streams that match the provided logStreamNamePrefix.
3035         // If you don't specify a value, no prefix filter is applied.
3036         LogStreamNamePrefix *string `locationName:"logStreamNamePrefix" min:"1" type:"string"`
3037
3038         // A string token used for pagination that points to the next page of results.
3039         // It must be a value obtained from the response of the previous DescribeLogStreams
3040         // request.
3041         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3042
3043         // Specifies what to order the returned log streams by. Valid arguments are
3044         // 'LogStreamName' or 'LastEventTime'. If you don't specify a value, results
3045         // are ordered by LogStreamName. If 'LastEventTime' is chosen, the request cannot
3046         // also contain a logStreamNamePrefix.
3047         OrderBy *string `locationName:"orderBy" type:"string" enum:"OrderBy"`
3048 }
3049
3050 // String returns the string representation
3051 func (s DescribeLogStreamsInput) String() string {
3052         return awsutil.Prettify(s)
3053 }
3054
3055 // GoString returns the string representation
3056 func (s DescribeLogStreamsInput) GoString() string {
3057         return s.String()
3058 }
3059
3060 // Validate inspects the fields of the type to determine if they are valid.
3061 func (s *DescribeLogStreamsInput) Validate() error {
3062         invalidParams := request.ErrInvalidParams{Context: "DescribeLogStreamsInput"}
3063         if s.Limit != nil && *s.Limit < 1 {
3064                 invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
3065         }
3066         if s.LogGroupName == nil {
3067                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
3068         }
3069         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
3070                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
3071         }
3072         if s.LogStreamNamePrefix != nil && len(*s.LogStreamNamePrefix) < 1 {
3073                 invalidParams.Add(request.NewErrParamMinLen("LogStreamNamePrefix", 1))
3074         }
3075         if s.NextToken != nil && len(*s.NextToken) < 1 {
3076                 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3077         }
3078
3079         if invalidParams.Len() > 0 {
3080                 return invalidParams
3081         }
3082         return nil
3083 }
3084
3085 type DescribeLogStreamsOutput struct {
3086         _ struct{} `type:"structure"`
3087
3088         // A list of log streams.
3089         LogStreams []*LogStream `locationName:"logStreams" type:"list"`
3090
3091         // A string token used for pagination that points to the next page of results.
3092         // It must be a value obtained from the response of the previous request. The
3093         // token expires after 24 hours.
3094         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3095 }
3096
3097 // String returns the string representation
3098 func (s DescribeLogStreamsOutput) String() string {
3099         return awsutil.Prettify(s)
3100 }
3101
3102 // GoString returns the string representation
3103 func (s DescribeLogStreamsOutput) GoString() string {
3104         return s.String()
3105 }
3106
3107 type DescribeMetricFiltersInput struct {
3108         _ struct{} `type:"structure"`
3109
3110         // Will only return metric filters that match the provided filterNamePrefix.
3111         // If you don't specify a value, no prefix filter is applied.
3112         FilterNamePrefix *string `locationName:"filterNamePrefix" min:"1" type:"string"`
3113
3114         // The maximum number of items returned in the response. If you don't specify
3115         // a value, the request would return up to 50 items.
3116         Limit *int64 `locationName:"limit" min:"1" type:"integer"`
3117
3118         // The log group name for which metric filters are to be listed.
3119         //
3120         // LogGroupName is a required field
3121         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
3122
3123         // A string token used for pagination that points to the next page of results.
3124         // It must be a value obtained from the response of the previous DescribeMetricFilters
3125         // request.
3126         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3127 }
3128
3129 // String returns the string representation
3130 func (s DescribeMetricFiltersInput) String() string {
3131         return awsutil.Prettify(s)
3132 }
3133
3134 // GoString returns the string representation
3135 func (s DescribeMetricFiltersInput) GoString() string {
3136         return s.String()
3137 }
3138
3139 // Validate inspects the fields of the type to determine if they are valid.
3140 func (s *DescribeMetricFiltersInput) Validate() error {
3141         invalidParams := request.ErrInvalidParams{Context: "DescribeMetricFiltersInput"}
3142         if s.FilterNamePrefix != nil && len(*s.FilterNamePrefix) < 1 {
3143                 invalidParams.Add(request.NewErrParamMinLen("FilterNamePrefix", 1))
3144         }
3145         if s.Limit != nil && *s.Limit < 1 {
3146                 invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
3147         }
3148         if s.LogGroupName == nil {
3149                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
3150         }
3151         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
3152                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
3153         }
3154         if s.NextToken != nil && len(*s.NextToken) < 1 {
3155                 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3156         }
3157
3158         if invalidParams.Len() > 0 {
3159                 return invalidParams
3160         }
3161         return nil
3162 }
3163
3164 type DescribeMetricFiltersOutput struct {
3165         _ struct{} `type:"structure"`
3166
3167         MetricFilters []*MetricFilter `locationName:"metricFilters" type:"list"`
3168
3169         // A string token used for pagination that points to the next page of results.
3170         // It must be a value obtained from the response of the previous request. The
3171         // token expires after 24 hours.
3172         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3173 }
3174
3175 // String returns the string representation
3176 func (s DescribeMetricFiltersOutput) String() string {
3177         return awsutil.Prettify(s)
3178 }
3179
3180 // GoString returns the string representation
3181 func (s DescribeMetricFiltersOutput) GoString() string {
3182         return s.String()
3183 }
3184
3185 type DescribeSubscriptionFiltersInput struct {
3186         _ struct{} `type:"structure"`
3187
3188         // Will only return subscription filters that match the provided filterNamePrefix.
3189         // If you don't specify a value, no prefix filter is applied.
3190         FilterNamePrefix *string `locationName:"filterNamePrefix" min:"1" type:"string"`
3191
3192         // The maximum number of results to return.
3193         Limit *int64 `locationName:"limit" min:"1" type:"integer"`
3194
3195         // The log group name for which subscription filters are to be listed.
3196         //
3197         // LogGroupName is a required field
3198         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
3199
3200         // A string token used for pagination that points to the next page of results.
3201         // It must be a value obtained from the response of the previous request. The
3202         // token expires after 24 hours.
3203         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3204 }
3205
3206 // String returns the string representation
3207 func (s DescribeSubscriptionFiltersInput) String() string {
3208         return awsutil.Prettify(s)
3209 }
3210
3211 // GoString returns the string representation
3212 func (s DescribeSubscriptionFiltersInput) GoString() string {
3213         return s.String()
3214 }
3215
3216 // Validate inspects the fields of the type to determine if they are valid.
3217 func (s *DescribeSubscriptionFiltersInput) Validate() error {
3218         invalidParams := request.ErrInvalidParams{Context: "DescribeSubscriptionFiltersInput"}
3219         if s.FilterNamePrefix != nil && len(*s.FilterNamePrefix) < 1 {
3220                 invalidParams.Add(request.NewErrParamMinLen("FilterNamePrefix", 1))
3221         }
3222         if s.Limit != nil && *s.Limit < 1 {
3223                 invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
3224         }
3225         if s.LogGroupName == nil {
3226                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
3227         }
3228         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
3229                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
3230         }
3231         if s.NextToken != nil && len(*s.NextToken) < 1 {
3232                 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3233         }
3234
3235         if invalidParams.Len() > 0 {
3236                 return invalidParams
3237         }
3238         return nil
3239 }
3240
3241 type DescribeSubscriptionFiltersOutput struct {
3242         _ struct{} `type:"structure"`
3243
3244         // A string token used for pagination that points to the next page of results.
3245         // It must be a value obtained from the response of the previous request. The
3246         // token expires after 24 hours.
3247         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3248
3249         SubscriptionFilters []*SubscriptionFilter `locationName:"subscriptionFilters" type:"list"`
3250 }
3251
3252 // String returns the string representation
3253 func (s DescribeSubscriptionFiltersOutput) String() string {
3254         return awsutil.Prettify(s)
3255 }
3256
3257 // GoString returns the string representation
3258 func (s DescribeSubscriptionFiltersOutput) GoString() string {
3259         return s.String()
3260 }
3261
3262 // A cross account destination that is the recipient of subscription log events.
3263 type Destination struct {
3264         _ struct{} `type:"structure"`
3265
3266         // An IAM policy document that governs which AWS accounts can create subscription
3267         // filters against this destination.
3268         AccessPolicy *string `locationName:"accessPolicy" min:"1" type:"string"`
3269
3270         // ARN of this destination.
3271         Arn *string `locationName:"arn" type:"string"`
3272
3273         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3274         // 00:00:00 UTC specifying when this destination was created.
3275         CreationTime *int64 `locationName:"creationTime" type:"long"`
3276
3277         // Name of the destination.
3278         DestinationName *string `locationName:"destinationName" min:"1" type:"string"`
3279
3280         // A role for impersonation for delivering log events to the target.
3281         RoleArn *string `locationName:"roleArn" min:"1" type:"string"`
3282
3283         // ARN of the physical target where the log events will be delivered (eg. ARN
3284         // of a Kinesis stream).
3285         TargetArn *string `locationName:"targetArn" min:"1" type:"string"`
3286 }
3287
3288 // String returns the string representation
3289 func (s Destination) String() string {
3290         return awsutil.Prettify(s)
3291 }
3292
3293 // GoString returns the string representation
3294 func (s Destination) GoString() string {
3295         return s.String()
3296 }
3297
3298 // Represents an export task.
3299 type ExportTask struct {
3300         _ struct{} `type:"structure"`
3301
3302         // Name of Amazon S3 bucket to which the log data was exported.
3303         Destination *string `locationName:"destination" min:"1" type:"string"`
3304
3305         // Prefix that was used as the start of Amazon S3 key for every object exported.
3306         DestinationPrefix *string `locationName:"destinationPrefix" type:"string"`
3307
3308         // Execution info about the export task.
3309         ExecutionInfo *ExportTaskExecutionInfo `locationName:"executionInfo" type:"structure"`
3310
3311         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3312         // 00:00:00 UTC. Events with a timestamp prior to this time are not exported.
3313         From *int64 `locationName:"from" type:"long"`
3314
3315         // The name of the log group from which logs data was exported.
3316         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string"`
3317
3318         // Status of the export task.
3319         Status *ExportTaskStatus `locationName:"status" type:"structure"`
3320
3321         // Id of the export task.
3322         TaskId *string `locationName:"taskId" min:"1" type:"string"`
3323
3324         // The name of the export task.
3325         TaskName *string `locationName:"taskName" min:"1" type:"string"`
3326
3327         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3328         // 00:00:00 UTC. Events with a timestamp later than this time are not exported.
3329         To *int64 `locationName:"to" type:"long"`
3330 }
3331
3332 // String returns the string representation
3333 func (s ExportTask) String() string {
3334         return awsutil.Prettify(s)
3335 }
3336
3337 // GoString returns the string representation
3338 func (s ExportTask) GoString() string {
3339         return s.String()
3340 }
3341
3342 // Represents the status of an export task.
3343 type ExportTaskExecutionInfo struct {
3344         _ struct{} `type:"structure"`
3345
3346         // A point in time when the export task got completed.
3347         CompletionTime *int64 `locationName:"completionTime" type:"long"`
3348
3349         // A point in time when the export task got created.
3350         CreationTime *int64 `locationName:"creationTime" type:"long"`
3351 }
3352
3353 // String returns the string representation
3354 func (s ExportTaskExecutionInfo) String() string {
3355         return awsutil.Prettify(s)
3356 }
3357
3358 // GoString returns the string representation
3359 func (s ExportTaskExecutionInfo) GoString() string {
3360         return s.String()
3361 }
3362
3363 // Represents the status of an export task.
3364 type ExportTaskStatus struct {
3365         _ struct{} `type:"structure"`
3366
3367         // Status code of the export task.
3368         Code *string `locationName:"code" type:"string" enum:"ExportTaskStatusCode"`
3369
3370         // Status message related to the code.
3371         Message *string `locationName:"message" type:"string"`
3372 }
3373
3374 // String returns the string representation
3375 func (s ExportTaskStatus) String() string {
3376         return awsutil.Prettify(s)
3377 }
3378
3379 // GoString returns the string representation
3380 func (s ExportTaskStatus) GoString() string {
3381         return s.String()
3382 }
3383
3384 type FilterLogEventsInput struct {
3385         _ struct{} `type:"structure"`
3386
3387         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3388         // 00:00:00 UTC. If provided, events with a timestamp later than this time are
3389         // not returned.
3390         EndTime *int64 `locationName:"endTime" type:"long"`
3391
3392         // A valid CloudWatch Logs filter pattern to use for filtering the response.
3393         // If not provided, all the events are matched.
3394         FilterPattern *string `locationName:"filterPattern" type:"string"`
3395
3396         // If provided, the API will make a best effort to provide responses that contain
3397         // events from multiple log streams within the log group interleaved in a single
3398         // response. If not provided, all the matched log events in the first log stream
3399         // will be searched first, then those in the next log stream, etc.
3400         Interleaved *bool `locationName:"interleaved" type:"boolean"`
3401
3402         // The maximum number of events to return in a page of results. Default is 10,000
3403         // events.
3404         Limit *int64 `locationName:"limit" min:"1" type:"integer"`
3405
3406         // The name of the log group to query.
3407         //
3408         // LogGroupName is a required field
3409         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
3410
3411         // Optional list of log stream names within the specified log group to search.
3412         // Defaults to all the log streams in the log group.
3413         LogStreamNames []*string `locationName:"logStreamNames" min:"1" type:"list"`
3414
3415         // A pagination token obtained from a FilterLogEvents response to continue paginating
3416         // the FilterLogEvents results. This token is omitted from the response when
3417         // there are no other events to display.
3418         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3419
3420         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3421         // 00:00:00 UTC. If provided, events with a timestamp prior to this time are
3422         // not returned.
3423         StartTime *int64 `locationName:"startTime" type:"long"`
3424 }
3425
3426 // String returns the string representation
3427 func (s FilterLogEventsInput) String() string {
3428         return awsutil.Prettify(s)
3429 }
3430
3431 // GoString returns the string representation
3432 func (s FilterLogEventsInput) GoString() string {
3433         return s.String()
3434 }
3435
3436 // Validate inspects the fields of the type to determine if they are valid.
3437 func (s *FilterLogEventsInput) Validate() error {
3438         invalidParams := request.ErrInvalidParams{Context: "FilterLogEventsInput"}
3439         if s.Limit != nil && *s.Limit < 1 {
3440                 invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
3441         }
3442         if s.LogGroupName == nil {
3443                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
3444         }
3445         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
3446                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
3447         }
3448         if s.LogStreamNames != nil && len(s.LogStreamNames) < 1 {
3449                 invalidParams.Add(request.NewErrParamMinLen("LogStreamNames", 1))
3450         }
3451         if s.NextToken != nil && len(*s.NextToken) < 1 {
3452                 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3453         }
3454
3455         if invalidParams.Len() > 0 {
3456                 return invalidParams
3457         }
3458         return nil
3459 }
3460
3461 type FilterLogEventsOutput struct {
3462         _ struct{} `type:"structure"`
3463
3464         // A list of FilteredLogEvent objects representing the matched events from the
3465         // request.
3466         Events []*FilteredLogEvent `locationName:"events" type:"list"`
3467
3468         // A pagination token obtained from a FilterLogEvents response to continue paginating
3469         // the FilterLogEvents results. This token is omitted from the response when
3470         // there are no other events to display.
3471         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3472
3473         // A list of SearchedLogStream objects indicating which log streams have been
3474         // searched in this request and whether each has been searched completely or
3475         // still has more to be paginated.
3476         SearchedLogStreams []*SearchedLogStream `locationName:"searchedLogStreams" type:"list"`
3477 }
3478
3479 // String returns the string representation
3480 func (s FilterLogEventsOutput) String() string {
3481         return awsutil.Prettify(s)
3482 }
3483
3484 // GoString returns the string representation
3485 func (s FilterLogEventsOutput) GoString() string {
3486         return s.String()
3487 }
3488
3489 // Represents a matched event from a FilterLogEvents request.
3490 type FilteredLogEvent struct {
3491         _ struct{} `type:"structure"`
3492
3493         // A unique identifier for this event.
3494         EventId *string `locationName:"eventId" type:"string"`
3495
3496         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3497         // 00:00:00 UTC.
3498         IngestionTime *int64 `locationName:"ingestionTime" type:"long"`
3499
3500         // The name of the log stream this event belongs to.
3501         LogStreamName *string `locationName:"logStreamName" min:"1" type:"string"`
3502
3503         // The data contained in the log event.
3504         Message *string `locationName:"message" min:"1" type:"string"`
3505
3506         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3507         // 00:00:00 UTC.
3508         Timestamp *int64 `locationName:"timestamp" type:"long"`
3509 }
3510
3511 // String returns the string representation
3512 func (s FilteredLogEvent) String() string {
3513         return awsutil.Prettify(s)
3514 }
3515
3516 // GoString returns the string representation
3517 func (s FilteredLogEvent) GoString() string {
3518         return s.String()
3519 }
3520
3521 type GetLogEventsInput struct {
3522         _ struct{} `type:"structure"`
3523
3524         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3525         // 00:00:00 UTC.
3526         EndTime *int64 `locationName:"endTime" type:"long"`
3527
3528         // The maximum number of log events returned in the response. If you don't specify
3529         // a value, the request would return as many log events as can fit in a response
3530         // size of 1MB, up to 10,000 log events.
3531         Limit *int64 `locationName:"limit" min:"1" type:"integer"`
3532
3533         // The name of the log group to query.
3534         //
3535         // LogGroupName is a required field
3536         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
3537
3538         // The name of the log stream to query.
3539         //
3540         // LogStreamName is a required field
3541         LogStreamName *string `locationName:"logStreamName" min:"1" type:"string" required:"true"`
3542
3543         // A string token used for pagination that points to the next page of results.
3544         // It must be a value obtained from the nextForwardToken or nextBackwardToken
3545         // fields in the response of the previous GetLogEvents request.
3546         NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3547
3548         // If set to true, the earliest log events would be returned first. The default
3549         // is false (the latest log events are returned first).
3550         StartFromHead *bool `locationName:"startFromHead" type:"boolean"`
3551
3552         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3553         // 00:00:00 UTC.
3554         StartTime *int64 `locationName:"startTime" type:"long"`
3555 }
3556
3557 // String returns the string representation
3558 func (s GetLogEventsInput) String() string {
3559         return awsutil.Prettify(s)
3560 }
3561
3562 // GoString returns the string representation
3563 func (s GetLogEventsInput) GoString() string {
3564         return s.String()
3565 }
3566
3567 // Validate inspects the fields of the type to determine if they are valid.
3568 func (s *GetLogEventsInput) Validate() error {
3569         invalidParams := request.ErrInvalidParams{Context: "GetLogEventsInput"}
3570         if s.Limit != nil && *s.Limit < 1 {
3571                 invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
3572         }
3573         if s.LogGroupName == nil {
3574                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
3575         }
3576         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
3577                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
3578         }
3579         if s.LogStreamName == nil {
3580                 invalidParams.Add(request.NewErrParamRequired("LogStreamName"))
3581         }
3582         if s.LogStreamName != nil && len(*s.LogStreamName) < 1 {
3583                 invalidParams.Add(request.NewErrParamMinLen("LogStreamName", 1))
3584         }
3585         if s.NextToken != nil && len(*s.NextToken) < 1 {
3586                 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3587         }
3588
3589         if invalidParams.Len() > 0 {
3590                 return invalidParams
3591         }
3592         return nil
3593 }
3594
3595 type GetLogEventsOutput struct {
3596         _ struct{} `type:"structure"`
3597
3598         Events []*OutputLogEvent `locationName:"events" type:"list"`
3599
3600         // A string token used for pagination that points to the next page of results.
3601         // It must be a value obtained from the response of the previous request. The
3602         // token expires after 24 hours.
3603         NextBackwardToken *string `locationName:"nextBackwardToken" min:"1" type:"string"`
3604
3605         // A string token used for pagination that points to the next page of results.
3606         // It must be a value obtained from the response of the previous request. The
3607         // token expires after 24 hours.
3608         NextForwardToken *string `locationName:"nextForwardToken" min:"1" type:"string"`
3609 }
3610
3611 // String returns the string representation
3612 func (s GetLogEventsOutput) String() string {
3613         return awsutil.Prettify(s)
3614 }
3615
3616 // GoString returns the string representation
3617 func (s GetLogEventsOutput) GoString() string {
3618         return s.String()
3619 }
3620
3621 // A log event is a record of some activity that was recorded by the application
3622 // or resource being monitored. The log event record that CloudWatch Logs understands
3623 // contains two properties: the timestamp of when the event occurred, and the
3624 // raw event message.
3625 type InputLogEvent struct {
3626         _ struct{} `type:"structure"`
3627
3628         // Message is a required field
3629         Message *string `locationName:"message" min:"1" type:"string" required:"true"`
3630
3631         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3632         // 00:00:00 UTC.
3633         //
3634         // Timestamp is a required field
3635         Timestamp *int64 `locationName:"timestamp" type:"long" required:"true"`
3636 }
3637
3638 // String returns the string representation
3639 func (s InputLogEvent) String() string {
3640         return awsutil.Prettify(s)
3641 }
3642
3643 // GoString returns the string representation
3644 func (s InputLogEvent) GoString() string {
3645         return s.String()
3646 }
3647
3648 // Validate inspects the fields of the type to determine if they are valid.
3649 func (s *InputLogEvent) Validate() error {
3650         invalidParams := request.ErrInvalidParams{Context: "InputLogEvent"}
3651         if s.Message == nil {
3652                 invalidParams.Add(request.NewErrParamRequired("Message"))
3653         }
3654         if s.Message != nil && len(*s.Message) < 1 {
3655                 invalidParams.Add(request.NewErrParamMinLen("Message", 1))
3656         }
3657         if s.Timestamp == nil {
3658                 invalidParams.Add(request.NewErrParamRequired("Timestamp"))
3659         }
3660
3661         if invalidParams.Len() > 0 {
3662                 return invalidParams
3663         }
3664         return nil
3665 }
3666
3667 type LogGroup struct {
3668         _ struct{} `type:"structure"`
3669
3670         Arn *string `locationName:"arn" type:"string"`
3671
3672         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3673         // 00:00:00 UTC.
3674         CreationTime *int64 `locationName:"creationTime" type:"long"`
3675
3676         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string"`
3677
3678         // The number of metric filters associated with the log group.
3679         MetricFilterCount *int64 `locationName:"metricFilterCount" type:"integer"`
3680
3681         // Specifies the number of days you want to retain log events in the specified
3682         // log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180,
3683         // 365, 400, 545, 731, 1827, 3653.
3684         RetentionInDays *int64 `locationName:"retentionInDays" type:"integer"`
3685
3686         StoredBytes *int64 `locationName:"storedBytes" type:"long"`
3687 }
3688
3689 // String returns the string representation
3690 func (s LogGroup) String() string {
3691         return awsutil.Prettify(s)
3692 }
3693
3694 // GoString returns the string representation
3695 func (s LogGroup) GoString() string {
3696         return s.String()
3697 }
3698
3699 // A log stream is sequence of log events from a single emitter of logs.
3700 type LogStream struct {
3701         _ struct{} `type:"structure"`
3702
3703         Arn *string `locationName:"arn" type:"string"`
3704
3705         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3706         // 00:00:00 UTC.
3707         CreationTime *int64 `locationName:"creationTime" type:"long"`
3708
3709         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3710         // 00:00:00 UTC.
3711         FirstEventTimestamp *int64 `locationName:"firstEventTimestamp" type:"long"`
3712
3713         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3714         // 00:00:00 UTC.
3715         LastEventTimestamp *int64 `locationName:"lastEventTimestamp" type:"long"`
3716
3717         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3718         // 00:00:00 UTC.
3719         LastIngestionTime *int64 `locationName:"lastIngestionTime" type:"long"`
3720
3721         LogStreamName *string `locationName:"logStreamName" min:"1" type:"string"`
3722
3723         StoredBytes *int64 `locationName:"storedBytes" type:"long"`
3724
3725         // A string token used for making PutLogEvents requests. A sequenceToken can
3726         // only be used once, and PutLogEvents requests must include the sequenceToken
3727         // obtained from the response of the previous request.
3728         UploadSequenceToken *string `locationName:"uploadSequenceToken" min:"1" type:"string"`
3729 }
3730
3731 // String returns the string representation
3732 func (s LogStream) String() string {
3733         return awsutil.Prettify(s)
3734 }
3735
3736 // GoString returns the string representation
3737 func (s LogStream) GoString() string {
3738         return s.String()
3739 }
3740
3741 // Metric filters can be used to express how CloudWatch Logs would extract metric
3742 // observations from ingested log events and transform them to metric data in
3743 // a CloudWatch metric.
3744 type MetricFilter struct {
3745         _ struct{} `type:"structure"`
3746
3747         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3748         // 00:00:00 UTC.
3749         CreationTime *int64 `locationName:"creationTime" type:"long"`
3750
3751         // A name for a metric or subscription filter.
3752         FilterName *string `locationName:"filterName" min:"1" type:"string"`
3753
3754         // A symbolic description of how CloudWatch Logs should interpret the data in
3755         // each log event. For example, a log event may contain timestamps, IP addresses,
3756         // strings, and so on. You use the filter pattern to specify what to look for
3757         // in the log event message.
3758         FilterPattern *string `locationName:"filterPattern" type:"string"`
3759
3760         MetricTransformations []*MetricTransformation `locationName:"metricTransformations" min:"1" type:"list"`
3761 }
3762
3763 // String returns the string representation
3764 func (s MetricFilter) String() string {
3765         return awsutil.Prettify(s)
3766 }
3767
3768 // GoString returns the string representation
3769 func (s MetricFilter) GoString() string {
3770         return s.String()
3771 }
3772
3773 type MetricFilterMatchRecord struct {
3774         _ struct{} `type:"structure"`
3775
3776         EventMessage *string `locationName:"eventMessage" min:"1" type:"string"`
3777
3778         EventNumber *int64 `locationName:"eventNumber" type:"long"`
3779
3780         ExtractedValues map[string]*string `locationName:"extractedValues" type:"map"`
3781 }
3782
3783 // String returns the string representation
3784 func (s MetricFilterMatchRecord) String() string {
3785         return awsutil.Prettify(s)
3786 }
3787
3788 // GoString returns the string representation
3789 func (s MetricFilterMatchRecord) GoString() string {
3790         return s.String()
3791 }
3792
3793 type MetricTransformation struct {
3794         _ struct{} `type:"structure"`
3795
3796         // (Optional) A default value to emit when a filter pattern does not match a
3797         // log event. Can be null.
3798         DefaultValue *float64 `locationName:"defaultValue" type:"double"`
3799
3800         // Name of the metric.
3801         //
3802         // MetricName is a required field
3803         MetricName *string `locationName:"metricName" type:"string" required:"true"`
3804
3805         // Namespace to which the metric belongs.
3806         //
3807         // MetricNamespace is a required field
3808         MetricNamespace *string `locationName:"metricNamespace" type:"string" required:"true"`
3809
3810         // A string representing a value to publish to this metric when a filter pattern
3811         // matches a log event.
3812         //
3813         // MetricValue is a required field
3814         MetricValue *string `locationName:"metricValue" type:"string" required:"true"`
3815 }
3816
3817 // String returns the string representation
3818 func (s MetricTransformation) String() string {
3819         return awsutil.Prettify(s)
3820 }
3821
3822 // GoString returns the string representation
3823 func (s MetricTransformation) GoString() string {
3824         return s.String()
3825 }
3826
3827 // Validate inspects the fields of the type to determine if they are valid.
3828 func (s *MetricTransformation) Validate() error {
3829         invalidParams := request.ErrInvalidParams{Context: "MetricTransformation"}
3830         if s.MetricName == nil {
3831                 invalidParams.Add(request.NewErrParamRequired("MetricName"))
3832         }
3833         if s.MetricNamespace == nil {
3834                 invalidParams.Add(request.NewErrParamRequired("MetricNamespace"))
3835         }
3836         if s.MetricValue == nil {
3837                 invalidParams.Add(request.NewErrParamRequired("MetricValue"))
3838         }
3839
3840         if invalidParams.Len() > 0 {
3841                 return invalidParams
3842         }
3843         return nil
3844 }
3845
3846 type OutputLogEvent struct {
3847         _ struct{} `type:"structure"`
3848
3849         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3850         // 00:00:00 UTC.
3851         IngestionTime *int64 `locationName:"ingestionTime" type:"long"`
3852
3853         Message *string `locationName:"message" min:"1" type:"string"`
3854
3855         // A point in time expressed as the number of milliseconds since Jan 1, 1970
3856         // 00:00:00 UTC.
3857         Timestamp *int64 `locationName:"timestamp" type:"long"`
3858 }
3859
3860 // String returns the string representation
3861 func (s OutputLogEvent) String() string {
3862         return awsutil.Prettify(s)
3863 }
3864
3865 // GoString returns the string representation
3866 func (s OutputLogEvent) GoString() string {
3867         return s.String()
3868 }
3869
3870 type PutDestinationInput struct {
3871         _ struct{} `type:"structure"`
3872
3873         // A name for the destination.
3874         //
3875         // DestinationName is a required field
3876         DestinationName *string `locationName:"destinationName" min:"1" type:"string" required:"true"`
3877
3878         // The ARN of an IAM role that grants CloudWatch Logs permissions to do Amazon
3879         // Kinesis PutRecord requests on the destination stream.
3880         //
3881         // RoleArn is a required field
3882         RoleArn *string `locationName:"roleArn" min:"1" type:"string" required:"true"`
3883
3884         // The ARN of an Amazon Kinesis stream to deliver matching log events to.
3885         //
3886         // TargetArn is a required field
3887         TargetArn *string `locationName:"targetArn" min:"1" type:"string" required:"true"`
3888 }
3889
3890 // String returns the string representation
3891 func (s PutDestinationInput) String() string {
3892         return awsutil.Prettify(s)
3893 }
3894
3895 // GoString returns the string representation
3896 func (s PutDestinationInput) GoString() string {
3897         return s.String()
3898 }
3899
3900 // Validate inspects the fields of the type to determine if they are valid.
3901 func (s *PutDestinationInput) Validate() error {
3902         invalidParams := request.ErrInvalidParams{Context: "PutDestinationInput"}
3903         if s.DestinationName == nil {
3904                 invalidParams.Add(request.NewErrParamRequired("DestinationName"))
3905         }
3906         if s.DestinationName != nil && len(*s.DestinationName) < 1 {
3907                 invalidParams.Add(request.NewErrParamMinLen("DestinationName", 1))
3908         }
3909         if s.RoleArn == nil {
3910                 invalidParams.Add(request.NewErrParamRequired("RoleArn"))
3911         }
3912         if s.RoleArn != nil && len(*s.RoleArn) < 1 {
3913                 invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
3914         }
3915         if s.TargetArn == nil {
3916                 invalidParams.Add(request.NewErrParamRequired("TargetArn"))
3917         }
3918         if s.TargetArn != nil && len(*s.TargetArn) < 1 {
3919                 invalidParams.Add(request.NewErrParamMinLen("TargetArn", 1))
3920         }
3921
3922         if invalidParams.Len() > 0 {
3923                 return invalidParams
3924         }
3925         return nil
3926 }
3927
3928 type PutDestinationOutput struct {
3929         _ struct{} `type:"structure"`
3930
3931         // A cross account destination that is the recipient of subscription log events.
3932         Destination *Destination `locationName:"destination" type:"structure"`
3933 }
3934
3935 // String returns the string representation
3936 func (s PutDestinationOutput) String() string {
3937         return awsutil.Prettify(s)
3938 }
3939
3940 // GoString returns the string representation
3941 func (s PutDestinationOutput) GoString() string {
3942         return s.String()
3943 }
3944
3945 type PutDestinationPolicyInput struct {
3946         _ struct{} `type:"structure"`
3947
3948         // An IAM policy document that authorizes cross-account users to deliver their
3949         // log events to associated destination.
3950         //
3951         // AccessPolicy is a required field
3952         AccessPolicy *string `locationName:"accessPolicy" min:"1" type:"string" required:"true"`
3953
3954         // A name for an existing destination.
3955         //
3956         // DestinationName is a required field
3957         DestinationName *string `locationName:"destinationName" min:"1" type:"string" required:"true"`
3958 }
3959
3960 // String returns the string representation
3961 func (s PutDestinationPolicyInput) String() string {
3962         return awsutil.Prettify(s)
3963 }
3964
3965 // GoString returns the string representation
3966 func (s PutDestinationPolicyInput) GoString() string {
3967         return s.String()
3968 }
3969
3970 // Validate inspects the fields of the type to determine if they are valid.
3971 func (s *PutDestinationPolicyInput) Validate() error {
3972         invalidParams := request.ErrInvalidParams{Context: "PutDestinationPolicyInput"}
3973         if s.AccessPolicy == nil {
3974                 invalidParams.Add(request.NewErrParamRequired("AccessPolicy"))
3975         }
3976         if s.AccessPolicy != nil && len(*s.AccessPolicy) < 1 {
3977                 invalidParams.Add(request.NewErrParamMinLen("AccessPolicy", 1))
3978         }
3979         if s.DestinationName == nil {
3980                 invalidParams.Add(request.NewErrParamRequired("DestinationName"))
3981         }
3982         if s.DestinationName != nil && len(*s.DestinationName) < 1 {
3983                 invalidParams.Add(request.NewErrParamMinLen("DestinationName", 1))
3984         }
3985
3986         if invalidParams.Len() > 0 {
3987                 return invalidParams
3988         }
3989         return nil
3990 }
3991
3992 type PutDestinationPolicyOutput struct {
3993         _ struct{} `type:"structure"`
3994 }
3995
3996 // String returns the string representation
3997 func (s PutDestinationPolicyOutput) String() string {
3998         return awsutil.Prettify(s)
3999 }
4000
4001 // GoString returns the string representation
4002 func (s PutDestinationPolicyOutput) GoString() string {
4003         return s.String()
4004 }
4005
4006 type PutLogEventsInput struct {
4007         _ struct{} `type:"structure"`
4008
4009         // A list of log events belonging to a log stream.
4010         //
4011         // LogEvents is a required field
4012         LogEvents []*InputLogEvent `locationName:"logEvents" min:"1" type:"list" required:"true"`
4013
4014         // The name of the log group to put log events to.
4015         //
4016         // LogGroupName is a required field
4017         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
4018
4019         // The name of the log stream to put log events to.
4020         //
4021         // LogStreamName is a required field
4022         LogStreamName *string `locationName:"logStreamName" min:"1" type:"string" required:"true"`
4023
4024         // A string token that must be obtained from the response of the previous PutLogEvents
4025         // request.
4026         SequenceToken *string `locationName:"sequenceToken" min:"1" type:"string"`
4027 }
4028
4029 // String returns the string representation
4030 func (s PutLogEventsInput) String() string {
4031         return awsutil.Prettify(s)
4032 }
4033
4034 // GoString returns the string representation
4035 func (s PutLogEventsInput) GoString() string {
4036         return s.String()
4037 }
4038
4039 // Validate inspects the fields of the type to determine if they are valid.
4040 func (s *PutLogEventsInput) Validate() error {
4041         invalidParams := request.ErrInvalidParams{Context: "PutLogEventsInput"}
4042         if s.LogEvents == nil {
4043                 invalidParams.Add(request.NewErrParamRequired("LogEvents"))
4044         }
4045         if s.LogEvents != nil && len(s.LogEvents) < 1 {
4046                 invalidParams.Add(request.NewErrParamMinLen("LogEvents", 1))
4047         }
4048         if s.LogGroupName == nil {
4049                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
4050         }
4051         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
4052                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
4053         }
4054         if s.LogStreamName == nil {
4055                 invalidParams.Add(request.NewErrParamRequired("LogStreamName"))
4056         }
4057         if s.LogStreamName != nil && len(*s.LogStreamName) < 1 {
4058                 invalidParams.Add(request.NewErrParamMinLen("LogStreamName", 1))
4059         }
4060         if s.SequenceToken != nil && len(*s.SequenceToken) < 1 {
4061                 invalidParams.Add(request.NewErrParamMinLen("SequenceToken", 1))
4062         }
4063         if s.LogEvents != nil {
4064                 for i, v := range s.LogEvents {
4065                         if v == nil {
4066                                 continue
4067                         }
4068                         if err := v.Validate(); err != nil {
4069                                 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LogEvents", i), err.(request.ErrInvalidParams))
4070                         }
4071                 }
4072         }
4073
4074         if invalidParams.Len() > 0 {
4075                 return invalidParams
4076         }
4077         return nil
4078 }
4079
4080 type PutLogEventsOutput struct {
4081         _ struct{} `type:"structure"`
4082
4083         // A string token used for making PutLogEvents requests. A sequenceToken can
4084         // only be used once, and PutLogEvents requests must include the sequenceToken
4085         // obtained from the response of the previous request.
4086         NextSequenceToken *string `locationName:"nextSequenceToken" min:"1" type:"string"`
4087
4088         RejectedLogEventsInfo *RejectedLogEventsInfo `locationName:"rejectedLogEventsInfo" type:"structure"`
4089 }
4090
4091 // String returns the string representation
4092 func (s PutLogEventsOutput) String() string {
4093         return awsutil.Prettify(s)
4094 }
4095
4096 // GoString returns the string representation
4097 func (s PutLogEventsOutput) GoString() string {
4098         return s.String()
4099 }
4100
4101 type PutMetricFilterInput struct {
4102         _ struct{} `type:"structure"`
4103
4104         // A name for the metric filter.
4105         //
4106         // FilterName is a required field
4107         FilterName *string `locationName:"filterName" min:"1" type:"string" required:"true"`
4108
4109         // A valid CloudWatch Logs filter pattern for extracting metric data out of
4110         // ingested log events.
4111         //
4112         // FilterPattern is a required field
4113         FilterPattern *string `locationName:"filterPattern" type:"string" required:"true"`
4114
4115         // The name of the log group to associate the metric filter with.
4116         //
4117         // LogGroupName is a required field
4118         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
4119
4120         // A collection of information needed to define how metric data gets emitted.
4121         //
4122         // MetricTransformations is a required field
4123         MetricTransformations []*MetricTransformation `locationName:"metricTransformations" min:"1" type:"list" required:"true"`
4124 }
4125
4126 // String returns the string representation
4127 func (s PutMetricFilterInput) String() string {
4128         return awsutil.Prettify(s)
4129 }
4130
4131 // GoString returns the string representation
4132 func (s PutMetricFilterInput) GoString() string {
4133         return s.String()
4134 }
4135
4136 // Validate inspects the fields of the type to determine if they are valid.
4137 func (s *PutMetricFilterInput) Validate() error {
4138         invalidParams := request.ErrInvalidParams{Context: "PutMetricFilterInput"}
4139         if s.FilterName == nil {
4140                 invalidParams.Add(request.NewErrParamRequired("FilterName"))
4141         }
4142         if s.FilterName != nil && len(*s.FilterName) < 1 {
4143                 invalidParams.Add(request.NewErrParamMinLen("FilterName", 1))
4144         }
4145         if s.FilterPattern == nil {
4146                 invalidParams.Add(request.NewErrParamRequired("FilterPattern"))
4147         }
4148         if s.LogGroupName == nil {
4149                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
4150         }
4151         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
4152                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
4153         }
4154         if s.MetricTransformations == nil {
4155                 invalidParams.Add(request.NewErrParamRequired("MetricTransformations"))
4156         }
4157         if s.MetricTransformations != nil && len(s.MetricTransformations) < 1 {
4158                 invalidParams.Add(request.NewErrParamMinLen("MetricTransformations", 1))
4159         }
4160         if s.MetricTransformations != nil {
4161                 for i, v := range s.MetricTransformations {
4162                         if v == nil {
4163                                 continue
4164                         }
4165                         if err := v.Validate(); err != nil {
4166                                 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricTransformations", i), err.(request.ErrInvalidParams))
4167                         }
4168                 }
4169         }
4170
4171         if invalidParams.Len() > 0 {
4172                 return invalidParams
4173         }
4174         return nil
4175 }
4176
4177 type PutMetricFilterOutput struct {
4178         _ struct{} `type:"structure"`
4179 }
4180
4181 // String returns the string representation
4182 func (s PutMetricFilterOutput) String() string {
4183         return awsutil.Prettify(s)
4184 }
4185
4186 // GoString returns the string representation
4187 func (s PutMetricFilterOutput) GoString() string {
4188         return s.String()
4189 }
4190
4191 type PutRetentionPolicyInput struct {
4192         _ struct{} `type:"structure"`
4193
4194         // The name of the log group to associate the retention policy with.
4195         //
4196         // LogGroupName is a required field
4197         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
4198
4199         // Specifies the number of days you want to retain log events in the specified
4200         // log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180,
4201         // 365, 400, 545, 731, 1827, 3653.
4202         //
4203         // RetentionInDays is a required field
4204         RetentionInDays *int64 `locationName:"retentionInDays" type:"integer" required:"true"`
4205 }
4206
4207 // String returns the string representation
4208 func (s PutRetentionPolicyInput) String() string {
4209         return awsutil.Prettify(s)
4210 }
4211
4212 // GoString returns the string representation
4213 func (s PutRetentionPolicyInput) GoString() string {
4214         return s.String()
4215 }
4216
4217 // Validate inspects the fields of the type to determine if they are valid.
4218 func (s *PutRetentionPolicyInput) Validate() error {
4219         invalidParams := request.ErrInvalidParams{Context: "PutRetentionPolicyInput"}
4220         if s.LogGroupName == nil {
4221                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
4222         }
4223         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
4224                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
4225         }
4226         if s.RetentionInDays == nil {
4227                 invalidParams.Add(request.NewErrParamRequired("RetentionInDays"))
4228         }
4229
4230         if invalidParams.Len() > 0 {
4231                 return invalidParams
4232         }
4233         return nil
4234 }
4235
4236 type PutRetentionPolicyOutput struct {
4237         _ struct{} `type:"structure"`
4238 }
4239
4240 // String returns the string representation
4241 func (s PutRetentionPolicyOutput) String() string {
4242         return awsutil.Prettify(s)
4243 }
4244
4245 // GoString returns the string representation
4246 func (s PutRetentionPolicyOutput) GoString() string {
4247         return s.String()
4248 }
4249
4250 type PutSubscriptionFilterInput struct {
4251         _ struct{} `type:"structure"`
4252
4253         // The ARN of the destination to deliver matching log events to. Currently,
4254         // the supported destinations are:
4255         //
4256         //    * An Amazon Kinesis stream belonging to the same account as the subscription
4257         //    filter, for same-account delivery.
4258         //
4259         //    * A logical destination (used via an ARN of Destination) belonging to
4260         //    a different account, for cross-account delivery.
4261         //
4262         //    * An Amazon Kinesis Firehose stream belonging to the same account as the
4263         //    subscription filter, for same-account delivery.
4264         //
4265         //    * An AWS Lambda function belonging to the same account as the subscription
4266         //    filter, for same-account delivery.
4267         //
4268         // DestinationArn is a required field
4269         DestinationArn *string `locationName:"destinationArn" min:"1" type:"string" required:"true"`
4270
4271         // A name for the subscription filter.
4272         //
4273         // FilterName is a required field
4274         FilterName *string `locationName:"filterName" min:"1" type:"string" required:"true"`
4275
4276         // A valid CloudWatch Logs filter pattern for subscribing to a filtered stream
4277         // of log events.
4278         //
4279         // FilterPattern is a required field
4280         FilterPattern *string `locationName:"filterPattern" type:"string" required:"true"`
4281
4282         // The name of the log group to associate the subscription filter with.
4283         //
4284         // LogGroupName is a required field
4285         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"`
4286
4287         // The ARN of an IAM role that grants CloudWatch Logs permissions to deliver
4288         // ingested log events to the destination stream. You don't need to provide
4289         // the ARN when you are working with a logical destination (used via an ARN
4290         // of Destination) for cross-account delivery.
4291         RoleArn *string `locationName:"roleArn" min:"1" type:"string"`
4292 }
4293
4294 // String returns the string representation
4295 func (s PutSubscriptionFilterInput) String() string {
4296         return awsutil.Prettify(s)
4297 }
4298
4299 // GoString returns the string representation
4300 func (s PutSubscriptionFilterInput) GoString() string {
4301         return s.String()
4302 }
4303
4304 // Validate inspects the fields of the type to determine if they are valid.
4305 func (s *PutSubscriptionFilterInput) Validate() error {
4306         invalidParams := request.ErrInvalidParams{Context: "PutSubscriptionFilterInput"}
4307         if s.DestinationArn == nil {
4308                 invalidParams.Add(request.NewErrParamRequired("DestinationArn"))
4309         }
4310         if s.DestinationArn != nil && len(*s.DestinationArn) < 1 {
4311                 invalidParams.Add(request.NewErrParamMinLen("DestinationArn", 1))
4312         }
4313         if s.FilterName == nil {
4314                 invalidParams.Add(request.NewErrParamRequired("FilterName"))
4315         }
4316         if s.FilterName != nil && len(*s.FilterName) < 1 {
4317                 invalidParams.Add(request.NewErrParamMinLen("FilterName", 1))
4318         }
4319         if s.FilterPattern == nil {
4320                 invalidParams.Add(request.NewErrParamRequired("FilterPattern"))
4321         }
4322         if s.LogGroupName == nil {
4323                 invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
4324         }
4325         if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
4326                 invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
4327         }
4328         if s.RoleArn != nil && len(*s.RoleArn) < 1 {
4329                 invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
4330         }
4331
4332         if invalidParams.Len() > 0 {
4333                 return invalidParams
4334         }
4335         return nil
4336 }
4337
4338 type PutSubscriptionFilterOutput struct {
4339         _ struct{} `type:"structure"`
4340 }
4341
4342 // String returns the string representation
4343 func (s PutSubscriptionFilterOutput) String() string {
4344         return awsutil.Prettify(s)
4345 }
4346
4347 // GoString returns the string representation
4348 func (s PutSubscriptionFilterOutput) GoString() string {
4349         return s.String()
4350 }
4351
4352 type RejectedLogEventsInfo struct {
4353         _ struct{} `type:"structure"`
4354
4355         ExpiredLogEventEndIndex *int64 `locationName:"expiredLogEventEndIndex" type:"integer"`
4356
4357         TooNewLogEventStartIndex *int64 `locationName:"tooNewLogEventStartIndex" type:"integer"`
4358
4359         TooOldLogEventEndIndex *int64 `locationName:"tooOldLogEventEndIndex" type:"integer"`
4360 }
4361
4362 // String returns the string representation
4363 func (s RejectedLogEventsInfo) String() string {
4364         return awsutil.Prettify(s)
4365 }
4366
4367 // GoString returns the string representation
4368 func (s RejectedLogEventsInfo) GoString() string {
4369         return s.String()
4370 }
4371
4372 // An object indicating the search status of a log stream in a FilterLogEvents
4373 // request.
4374 type SearchedLogStream struct {
4375         _ struct{} `type:"structure"`
4376
4377         // The name of the log stream.
4378         LogStreamName *string `locationName:"logStreamName" min:"1" type:"string"`
4379
4380         // Indicates whether all the events in this log stream were searched or more
4381         // data exists to search by paginating further.
4382         SearchedCompletely *bool `locationName:"searchedCompletely" type:"boolean"`
4383 }
4384
4385 // String returns the string representation
4386 func (s SearchedLogStream) String() string {
4387         return awsutil.Prettify(s)
4388 }
4389
4390 // GoString returns the string representation
4391 func (s SearchedLogStream) GoString() string {
4392         return s.String()
4393 }
4394
4395 type SubscriptionFilter struct {
4396         _ struct{} `type:"structure"`
4397
4398         // A point in time expressed as the number of milliseconds since Jan 1, 1970
4399         // 00:00:00 UTC.
4400         CreationTime *int64 `locationName:"creationTime" type:"long"`
4401
4402         DestinationArn *string `locationName:"destinationArn" min:"1" type:"string"`
4403
4404         // A name for a metric or subscription filter.
4405         FilterName *string `locationName:"filterName" min:"1" type:"string"`
4406
4407         // A symbolic description of how CloudWatch Logs should interpret the data in
4408         // each log event. For example, a log event may contain timestamps, IP addresses,
4409         // strings, and so on. You use the filter pattern to specify what to look for
4410         // in the log event message.
4411         FilterPattern *string `locationName:"filterPattern" type:"string"`
4412
4413         LogGroupName *string `locationName:"logGroupName" min:"1" type:"string"`
4414
4415         RoleArn *string `locationName:"roleArn" min:"1" type:"string"`
4416 }
4417
4418 // String returns the string representation
4419 func (s SubscriptionFilter) String() string {
4420         return awsutil.Prettify(s)
4421 }
4422
4423 // GoString returns the string representation
4424 func (s SubscriptionFilter) GoString() string {
4425         return s.String()
4426 }
4427
4428 type TestMetricFilterInput struct {
4429         _ struct{} `type:"structure"`
4430
4431         // A symbolic description of how CloudWatch Logs should interpret the data in
4432         // each log event. For example, a log event may contain timestamps, IP addresses,
4433         // strings, and so on. You use the filter pattern to specify what to look for
4434         // in the log event message.
4435         //
4436         // FilterPattern is a required field
4437         FilterPattern *string `locationName:"filterPattern" type:"string" required:"true"`
4438
4439         // A list of log event messages to test.
4440         //
4441         // LogEventMessages is a required field
4442         LogEventMessages []*string `locationName:"logEventMessages" min:"1" type:"list" required:"true"`
4443 }
4444
4445 // String returns the string representation
4446 func (s TestMetricFilterInput) String() string {
4447         return awsutil.Prettify(s)
4448 }
4449
4450 // GoString returns the string representation
4451 func (s TestMetricFilterInput) GoString() string {
4452         return s.String()
4453 }
4454
4455 // Validate inspects the fields of the type to determine if they are valid.
4456 func (s *TestMetricFilterInput) Validate() error {
4457         invalidParams := request.ErrInvalidParams{Context: "TestMetricFilterInput"}
4458         if s.FilterPattern == nil {
4459                 invalidParams.Add(request.NewErrParamRequired("FilterPattern"))
4460         }
4461         if s.LogEventMessages == nil {
4462                 invalidParams.Add(request.NewErrParamRequired("LogEventMessages"))
4463         }
4464         if s.LogEventMessages != nil && len(s.LogEventMessages) < 1 {
4465                 invalidParams.Add(request.NewErrParamMinLen("LogEventMessages", 1))
4466         }
4467
4468         if invalidParams.Len() > 0 {
4469                 return invalidParams
4470         }
4471         return nil
4472 }
4473
4474 type TestMetricFilterOutput struct {
4475         _ struct{} `type:"structure"`
4476
4477         Matches []*MetricFilterMatchRecord `locationName:"matches" type:"list"`
4478 }
4479
4480 // String returns the string representation
4481 func (s TestMetricFilterOutput) String() string {
4482         return awsutil.Prettify(s)
4483 }
4484
4485 // GoString returns the string representation
4486 func (s TestMetricFilterOutput) GoString() string {
4487         return s.String()
4488 }
4489
4490 const (
4491         // ExportTaskStatusCodeCancelled is a ExportTaskStatusCode enum value
4492         ExportTaskStatusCodeCancelled = "CANCELLED"
4493
4494         // ExportTaskStatusCodeCompleted is a ExportTaskStatusCode enum value
4495         ExportTaskStatusCodeCompleted = "COMPLETED"
4496
4497         // ExportTaskStatusCodeFailed is a ExportTaskStatusCode enum value
4498         ExportTaskStatusCodeFailed = "FAILED"
4499
4500         // ExportTaskStatusCodePending is a ExportTaskStatusCode enum value
4501         ExportTaskStatusCodePending = "PENDING"
4502
4503         // ExportTaskStatusCodePendingCancel is a ExportTaskStatusCode enum value
4504         ExportTaskStatusCodePendingCancel = "PENDING_CANCEL"
4505
4506         // ExportTaskStatusCodeRunning is a ExportTaskStatusCode enum value
4507         ExportTaskStatusCodeRunning = "RUNNING"
4508 )
4509
4510 const (
4511         // OrderByLogStreamName is a OrderBy enum value
4512         OrderByLogStreamName = "LogStreamName"
4513
4514         // OrderByLastEventTime is a OrderBy enum value
4515         OrderByLastEventTime = "LastEventTime"
4516 )